Stdin komplett einlesen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Antworten
rubens
Beiträge: 3
Registriert: Sa 29. Sep 2012, 14:48

Stdin komplett einlesen

Beitrag von rubens »

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.

Heinrich Wolf
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

Beitrag von Heinrich Wolf »

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.

rubens
Beiträge: 3
Registriert: Sa 29. Sep 2012, 14:48

Re: Stdin komplett einlesen

Beitrag von rubens »

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 ...

Benutzeravatar
m.fuchs
Lazarusforum e. V.
Beiträge: 2641
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

Beitrag von m.fuchs »

Könnte dir TIOStream (http://lazarus-ccr.sourceforge.net/docs ... tream.html) weiterhelfen?
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de


rubens
Beiträge: 3
Registriert: Sa 29. Sep 2012, 14:48

Re: Stdin komplett einlesen

Beitrag von rubens »

@theo: Danke für den Link - dort habe ich gefunden, was ich gesucht habe.

Antworten