Autor Thema: Problem beim Lesen einer großen Textdatei  (Gelesen 5875 mal)

Offline platzebo

  • Junior Mitglied
  • **
  • Beiträge: 58
Problem beim Lesen einer großen Textdatei
« am: 29.11.11 - 16:11:29 »
Hallo, ich habe eine Textdatei mit 2,7GB.
Ein Datensatz (Zeile) darin ist in etwa 1kb groß.
Nun starte ich einen Agent, der diese Datei Zeile für Zeile ausliest.
Das klappt auch bis zur Zeile 2.1xx.xxx.
Ab dann wird jede Zeile falsch gelesen - sprich - ich bekomme nicht die ganze Zeile geliefert sondern nur einen Teil. Es kommt an dieser Stelle kein 0D 0A vor. Gibt es da eine 2GB Grenze? Hatte dieses Problem schon jemand? Wie kann man das lösen? Vielen Dank
« Letzte Änderung: 29.11.11 - 16:29:24 von platzebo »
Ein König Mann ist, das Kindsein nicht vergisst

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: Problem beim Lesen einer großen Textdatei
« Antwort #1 am: 29.11.11 - 17:09:54 »
Mit welcher Methode liest du denn aus? Sequenzielles Input oder via Read/ReadText im NotesStream? Bei letzterem taucht so etwas wie eine 2GB-Grenze durchaus in der Hilfe auf...
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Problem beim Lesen einer großen Textdatei
« Antwort #2 am: 29.11.11 - 22:13:59 »
Das "wie" waere hier relevant. Wenn Du alles auf einmal liest, ist bei 2 GB endgueltig Schluss.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Problem beim Lesen einer großen Textdatei
« Antwort #3 am: 30.11.11 - 00:13:09 »
ich denke, dass die meisten Fileoperationen in Notes ein 2GB (bzw 4GB) Problem haben, da hier fast immer ein LONG als FilePos/FileSize etc verwendet werden.

Gruß
Roland
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Problem beim Lesen einer großen Textdatei
« Antwort #4 am: 30.11.11 - 00:24:18 »
Wir können / müssen jetzt abwarten, was der Namenlose (den Nick muss man wohl lesen als "ich werde gefallen / gemocht werden") zu seinem Verfahren genaueres schreibt. Ich tendiere auch dazu, dass die Grenzen aus den genannten Gründen erreicht werden.

Viel interessanter wäre es aber doch - wenn man zu einer wirklichen Lösung kommen will - wenn wir erfahren würden, was der Fragesteller eigentlich erreichen will. Was man deuten kann: Aus System x kommen Daten, mit denen Notes / Domino etwas anfangen soll. Und erst bei dieser Fragestellung beginnt es, wirklich interessant zu werden. Alles andere ist "klein klein", technisches Zeugs (was erst später bei der Suche nach Lösungen eine Rolle spielen darf) etc.

Also: "platzebo", sag an, was Du eigentlich willst. Dann lohnt es sich, Gedanken zu machen.

Bernhard

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Problem beim Lesen einer großen Textdatei
« Antwort #5 am: 30.11.11 - 03:18:01 »
Warum zerteilst du das File vorher nicht mit einer anderen Programmiersprache in 2 Teile?
http://stackoverflow.com/questions/546508/how-can-i-split-a-file-in-python
Oder mit einem Tool.
http://www.soft-ware.net/dateimanagement/datei-splitter/index.asp
« Letzte Änderung: 30.11.11 - 03:27:00 von Pitiyankee »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline platzebo

  • Junior Mitglied
  • **
  • Beiträge: 58
Re: Problem beim Lesen einer großen Textdatei
« Antwort #6 am: 30.11.11 - 07:29:12 »
Guten Morgen und vielen Dank für die zahlreichen Rückmeldungen :)

ich bekomme von einem Host die Daten geliefert und muß die auf x Datenbanken verteilen.

Wir lesen die Datei wie folgt aus:

Open "E:\Daten\adressg.txt" For Input Access Read As #fh
Line Input #fh, satz

Auf dem Server habe ich auch keine Möglichkeit einen Filesplitter zu installieren - an diese Möglichkeit dachte ich auch schon.

Ligrü aus Linz

Mike ;)
Ein König Mann ist, das Kindsein nicht vergisst

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Problem beim Lesen einer großen Textdatei
« Antwort #7 am: 30.11.11 - 11:41:33 »
Hallo Mike,

mit Java in LotusNotes hast Du diese Probleme nicht. Vielleicht kannst Du diesen Agenten in Java umschreiben.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Problem beim Lesen einer großen Textdatei
« Antwort #8 am: 01.12.11 - 10:02:51 »
Moin,

wenn die Datensatzlänge bekannt und fix ist hilft dir vielleicht die Funktion/das Statement "Seek" weiter.

Damit kannst du dir die letzte "Dateiposition", die du ausgelesen hast speichern um zu einem späteren Zeitpunkt mit dem Auslesen ab dieser Stelle zu beginnen. Also kannst du so den auszulesenden Teil auf eine Größe von XY reduzieren pro Lauf.

Hier hatte ich damals Seek "entdeckt":
http://atnotes.de/index.php/topic,35763.0.html

Gruß
Demian
Gruß
Demian

Offline platzebo

  • Junior Mitglied
  • **
  • Beiträge: 58
Re: Problem beim Lesen einer großen Textdatei
« Antwort #9 am: 01.12.11 - 10:36:59 »
Danke für den Tip - leider ist die Satzlänge nicht konstant
Ein König Mann ist, das Kindsein nicht vergisst

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Problem beim Lesen einer großen Textdatei
« Antwort #10 am: 01.12.11 - 10:45:56 »
Wobei das mit der Satzlänge bei Line Input eigentlich auch keine Rolle spielt, wenn du dir danach die Dateiposition wegspeicherst.

Du hast ja dann immer den ganzen Satz eingelesen und kannst dir danach die "Position" speichern und beim nächsten Mal da anfangen.
Gruß
Demian

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Problem beim Lesen einer großen Textdatei
« Antwort #11 am: 01.12.11 - 11:28:43 »
Probier mal aus das Ganze statt mit File mit der NotesStream Klasse zu lösen.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline platzebo

  • Junior Mitglied
  • **
  • Beiträge: 58
Re: Problem beim Lesen einer großen Textdatei
« Antwort #12 am: 01.12.11 - 13:09:55 »
Hy Thomas,

vielen Danke - das war die Lösung *freu*

und ganz nebenbei ist es auch noch schneller :)

Testbasis = 1,8 GBDatei
Line Input -> 3:24
Stream -> 2:01

Schönen Tag noch

ligrü mike
Ein König Mann ist, das Kindsein nicht vergisst

Offline pram

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.170
  • Geschlecht: Männlich
    • Foconis Object Framework
Re: Problem beim Lesen einer großen Textdatei
« Antwort #13 am: 01.12.11 - 16:14:40 »
Achtung, ganz ist es noch nicht gelöst:
Zitat
Hallo, ich habe eine Textdatei mit 2,7GB....
Zitat
...Testbasis = 1,8 GBDatei
und bei NotesStream.readText steht in der Hilfe definitv was von einem 2GB Limit:
Zitat
Defaults to the entire stream to a maximum of 2GB.
(wobei hier nicht klar hervorgeht, ob der Stream max 2GB haben darf oder ein einzelner Lesevorgang nicht mehr als 2GB lesen kann)
Roland Praml

IBM Certified Application Developer - Lotus Notes and Domino 8
Ich verwende das Foconis Object Framework

Offline platzebo

  • Junior Mitglied
  • **
  • Beiträge: 58
Re: Problem beim Lesen einer großen Textdatei
« Antwort #14 am: 02.12.11 - 07:56:14 »
Guten Morgen,

doch - es ist gelöst - zumindest für mich ;)

Die 2GB Grenze gibt es nur, wenn man nicht zeilenweise liest. Beim zeilenweisen Lesen war das Lesen der 2,7GB Datei bis zur letzten Zeile kein Problem. Ich habe den Test auf der 2,7GB Datei durchgeführt. Da ab 2GB jedoch die besagten Probleme auftreten habe ich beim Performancetest nicht bis zum Ende der Datei gelesen um ein aussagekräftiges Ergebnis zu bekommen.

Ligrü Mike

Nachtrag:

Die Trennzeichen chr(10) und chr(13) müssen nach dem Einlesen extra weggschnippelt werden
« Letzte Änderung: 02.12.11 - 12:12:10 von platzebo »
Ein König Mann ist, das Kindsein nicht vergisst

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz