wann ist eine datei zu gross für ein array()

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • wann ist eine datei zu gross für ein array()

    hallo!

    ich möchte eine textdatei zeilenweise in ein array einlesen.

    nun stosse ich auf folgenden hinweis bei o'reilly:
    wenn die datei zu gross ist, um sie in ein array einzulesen...
    leider gibt es keine "eckpunkte".

    ist eine 10 kb datei, die ein array mit 100 elementen erzeugt, schon zu gross oder noch ganz klein?

    gibt es erfahrungswerte?

    danke für einen tip!

  • #2
    also 10 KB sollte durchaus okay sein. die begrenzung wird dein speicher sein. wenn der die nicht mehr bearbeiten kann, ist finito.
    ICH BIN ICH!!!

    Kommentar


    • #3
      Re: wann ist eine datei zu gross für ein array()

      Original geschrieben von baltic
      ich möchte eine textdatei zeilenweise in ein array einlesen.
      ich nehme an, dass du hier fopen(), fread()/fgets() usw verwendest.

      schaue dir mal file() an. das verkürzt deinen code ein wenig. ;-)

      und 100 datensätze sind ok für ein array. man sollte sich aber evtl überlegen nicht doch eine db zu nehmen, sofern vorhanden. ist sie nicht vorhanden, lohnt sich der 1 EUR/month auf jeden fall.
      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


      Kommentar


      • #4
        danke für den hinweis.

        ich hätte es trotzdem gern ein wenig konkreter (erfahrungswerte), denn wie wohl bei den meisten läuft mein script bei einem provider und da muss ich mir die resourcen teilen.

        Kommentar


        • #5
          @ Abraxax,

          überschneidung.

          natürlich benutze ich eine db.

          sorry, ich habe es nicht erwähnt, aber die routine soll query-errors in ein log-file schreiben, gerade wenn die db ärger macht.

          damit die log-datei nicht unendlich gross wird - liegt bestimmt nicht am code - möchte ich ab einer bestimmten anzahl meldungen die ältesten löschen, wenn eine vorgegebene max. anzahl überschreiten wird.

          textfile -> öfnen -> anzahl zeilen -> wenn grösser als vorgegeben -> in array einlesen -> file neu schreiben mit den neuesten (max) zeilen.

          vielleicht kann man das ja besser lösen?

          Kommentar


          • #6
            ich hätte es trotzdem gern ein wenig konkreter (erfahrungswerte)
            probiers aus! dann hast du erfahrungswerte! man.
            Die Zeit hat ihre Kinder längst gefressen

            Kommentar


            • #7
              Original geschrieben von baltic
              sorry, ich habe es nicht erwähnt, aber die routine soll query-errors in ein log-file schreiben, gerade wenn die db ärger macht.

              vielleicht kann man das ja besser lösen?
              schaue die mal bei fopen() das 'a' genauer an. ;-)
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                benutze ich, klar:
                'a' - Öffnet die Datei nur zum Schreiben. Positioniert den Dateizeiger auf das Ende der Datei. Wenn die Datei nicht existiert, wird versucht sie anzulegen.
                sorry, auf welches problem willst du mich aufmerksam machen?

                ich möchte eine datei, die mehr zeilen enthält als die vorgabe, um die 'zu vielen' zeilen erleichtern, da bringt 'a' nichts.

                Kommentar


                • #9
                  Original geschrieben von baltic
                  sorry, auf welches problem willst du mich aufmerksam machen?
                  einfach nur stur anhängen.

                  Original geschrieben von baltic
                  ich möchte eine datei, die mehr zeilen enthält als die vorgabe, um die 'zu vielen' zeilen erleichtern, da bringt 'a' nichts.
                  wieso nicht? nachts machst du einen logrotate. ;-)

                  das bedeutet:

                  - einfach die datei wegsichern/umbenennen und
                  - eine neue leere datei mit gleichen (alten) namen anlegen.
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    joo,
                    das ist sicher auch eine möglichkeit.
                    ich ziehe es allerdings vor, nur eine datei zu haben.

                    danke für die tips!

                    Kommentar


                    • #11
                      derHund,

                      durch deinen "beitrag" disqualifizierst du dich ganz klar.

                      ich habe eine höfliche frage gestellt und du gibst ein arrogantes allerwelt-statement ab.

                      die bemerkung
                      probiers aus! dann hast du erfahrungswerte! man.
                      passt grundsätzlich in jedes forum, zu jeder frage und in jeden zusammenhang.

                      ist also völlig sinnlos.

                      ich habe schon vor vielen jahren in einer hundeschule gelernt:
                      hunde, die kläffen, sollte man ignorieren.
                      aber glücklicherweise gibt es auch kompetente teilnehmer.

                      OffTopic:

                      für die mods diese forums:
                      ich verfolge seit ein paar wochen die inhalte dieses forums und finde immer wieder endlose threads der mods untereinander, die mit dem ursprünglichen thema rein gar nichts zu tun haben.
                      der hoffnungsvolle neu-nutzer glaubt, dass ein thread mit vielen antworten auch viel inhalt präsentiert, findet dann aber nur guten-morgen-wünsche und fröhliches-eis-essen und ähnlichen internen unsinn.

                      und teilnehmer, die offensichtlich nur ihren eigenen frust publizieren. ist das so gewollt?
                      weshalb greift ihr nicht ein?
                      es würde jede menge bandbreite sparen.



                      ich finde in ausländichen (englisch-sprachigen) foren höflichere hilfe ohne diesen ganzen interen mod-talk, und vor allen dingen ohne eine antwort wie "try it yourself! why do you post here? are you silly?"

                      warum geht das bei diesem forum nicht, das doch DAS FORUM IN DEUTSCHLAND sein möchte?

                      hat also doch etwas mit dem deutschen national-charakter zu tun?

                      Kommentar


                      • #12
                        ich habe eine höfliche frage gestellt und du gibst ein arrogantes allerwelt-statement ab.
                        und man hatte dir schon gesagt, daß 10kb kein problem darstellen. nee, du willst ja nen genauen wert haben. ist dir vielleicht mal in den sinn gekommen, daß das noch keiner bestimmt hat? weils jedesmal differiert, oder auch weils nicht wirklich interessiert.
                        EDIT:
                        sowieso, wegen 10kb speicher haben wir uns vor 10 jahren die haare gerauft ... ein 20-dimensionales array mit 200 einträgen in jede dimension läßt sich bei mir ohne probleme erstellen ... nur das dumpen sollte man unterlassen


                        hättest du mal probiert, was geht, zum beispiel mal nen 100-dimensionales array mit werten gefüllt, und wärst dann auf grenzen gestoßen, wär dein post imho viel sinnvoller gewesen.

                        bla bla bla. grundsatzdiskussionen sind ja so interessant.
                        Zuletzt geändert von derHund; 09.06.2004, 06:11.
                        Die Zeit hat ihre Kinder längst gefressen

                        Kommentar


                        • #13
                          Original geschrieben von baltic
                          die bemerkung
                          "probiers aus! dann hast du erfahrungswerte! man."
                          passt grundsätzlich in jedes forum, zu jeder frage und in jeden zusammenhang.
                          sie gilt ja auch immer :-)

                          grundsatz ist: frage erst, nachdem du selber was probiert hast.

                          und teilnehmer, die offensichtlich nur ihren eigenen frust publizieren. ist das so gewollt?
                          weshalb greift ihr nicht ein?
                          dann musste ich ja jetzt eingreifen, weil du hier grade deinen frust abläßt ...?

                          und betreffs des themas, warum es hier nun mal so und nicht anders abläuft, schau dir bitte diesen thread an.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar

                          Lädt...
                          X