Folgende Situation:
Über stdin ist ein textfile einzulesen, das aus mehreren (vielen) Zeilen besteht, also etwa so:
leseprog.exe < textfile.txt
Ich möchte dieses aber nicht zeilenweise mittels readln einlesen, sondern auf einen Rutsch alles auf einmal direkt in irgendeinen buffer, etwa ein array of char.
Alle meine Versuche waren bisher erfolglos in der Hinsicht, dass immer nach dem ersten EOL Schluss war mit dem Einlesen.
Bevor jetzt der Tipp kommt, ich könnte doch auf das Textfile direkt zugreifen: Nein, kann ich nicht. Im konkreten Anwendungsbezug wird das Programm über stdin gefüttert, die Datei, aus der die Daten kommen, ist nicht zugänglich.
Stdin komplett einlesen
-
- Beiträge: 323
- Registriert: Di 12. Apr 2011, 13:21
- OS, Lazarus, FPC: WinXP + VMWare Player mit Fedora14, L 1.1, FPC 2.7.1
- CPU-Target: 1core 1,8GHz 32Bit
- Wohnort: Fürth
- Kontaktdaten:
Re: Stdin komplett einlesen
Ich befürchte, Du kommst um eine readln Schleife nicht herum, wenn Du aus einer Pipe ( < ) liest. Es wird auch schwierig sein, das Ende der Eingabedaten zu erkennen. Denn ich nehme an, bei jeder Pause im Datenstrom kriegst Du vorübergehend ein EOF.
Re: Stdin komplett einlesen
Danke fürs erste.
Das Ende zu erkennen sollte kein Problem sein. Wenn ich z.B. in ein array of char einlese, das mit "\0" gefüllt ist und über stdin Daten einlese, die kein "\0" enthalten, dann lese ich eben bis zum "\0". Pausen im Datenstrom sind nicht zu erwarten.
Bisher mag ich nicht glauben, dass Pascal das komplette Einlesen via stdin nicht gestattet. Vielleicht hat ja noch jemand eine Idee ...
Das Ende zu erkennen sollte kein Problem sein. Wenn ich z.B. in ein array of char einlese, das mit "\0" gefüllt ist und über stdin Daten einlese, die kein "\0" enthalten, dann lese ich eben bis zum "\0". Pausen im Datenstrom sind nicht zu erwarten.
Bisher mag ich nicht glauben, dass Pascal das komplette Einlesen via stdin nicht gestattet. Vielleicht hat ja noch jemand eine Idee ...
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Stdin komplett einlesen
Könnte dir TIOStream (http://lazarus-ccr.sourceforge.net/docs ... tream.html" onclick="window.open(this.href);return false;) weiterhelfen?
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
Re: Stdin komplett einlesen
http://www.lazarus.freepascal.org/index ... pic=5881.0" onclick="window.open(this.href);return false;
Re: Stdin komplett einlesen
@theo: Danke für den Link - dort habe ich gefunden, was ich gesucht habe.