Dateiinhalt in einen String kopieren
-
Hallo,
ich würde gerne den Inhalt einer Textdatei, die aus einer Liste von Suchbegriffen die untereinander stehen, in einen String schmeißen.
Getrennt werden können dann die Suchbegriffe zB durch ein Leerzeichen.Ist das denn irgendwie möglich? Denn mit fgets kann ich ja nur immer eine Zeile auslesen.
MfG
Denis
-
Du kannst ja die Datei Zeichen für Zeichen auslesen und auf den String speichern!
-
Hi Denis103, du hast zwei Möglichkeiten.
Die erste ist, die komplette Datei mit einmal einzulesen. Also Länge der Datei herausfinden (geht mit fseek in Verbindung mit ftell) und dann komplett alles mit einem fread einlesen. In diesem Fall sind die einzelnen Zeilen jeweils durch <cr><lf> (unter Windows) voneinander getrennt.
Die zweite Möglichkeit ist wie du schon sagtest Zeilenweise mit fgets. Hierbei könntest du einen großen Puffer erstellen und jede Zeile getrennt durch ein Zeichen deiner Wahl anhängen. Oder du erweiterst einen kleinen Puffer um die jeweis eingelesenen Zeichen.
-
Ich hab es auf die 2. Art gemacht:
while(feof(t2) != 1){ fgets(str_zeile,1000,t2); strcat(str_dateiinhalt,str_zeile); }
Ich hol eine Zeile und hänge die an den String an, solange bis EOF
Danke
-
dabei solltest du aufpassen das dein buffer str_dateiinhalt auch gross genug ist um zu verhindern das du nicht in speicher rumschreibst der dir nicht gehört