Dateien öffnen/schreiben mit C++

Zeradum

Cadet 2nd Year
Registriert
März 2007
Beiträge
16
Hallo,

ich hab mich vor kurzem mit File-Streams in C++ beschäftigt, weil ich Daten aus mehreren Dateien (die 1.Zeile) eines bestimmten Typs (z.b .doc) auslesen möchte und in einer neuen Texdatei ausgeben will. Leider komme ich nicht so vorran wie ich gerne möchte.

Also wer Lust und Zeit hat, ein kleines Beispiel-Listing zu posten ist hiermit auf höflich aufgefordert es zu tun :).

Gruß
Zeradum
 
Wie machst du es denn bisher bzw. was hast du schon versucht?
Und welche Fehlermeldung erhälst du?
 
Bei .doc-Dateien hast du schon das Problem, dass es keine Zeilen gibt. Die Dateien sind binär und die erste Zeile ist zu Ende, wenn ein Zeilenumbruchs-Character in der Datei vorkommt, der jedoch mit einer für den Menschen lesbaren Zeile nichts zu tun hat.
 
Konkret möchte ich mehrere .idx Dateien auslesen. Und dort speziell die erste Zeile in der sich eine Webadresse befindet. Diese Adressen sollen dann zusammengefasst in einer neuen Datei ausgegeben werden.

Gruß
Zeradum
 
Ich schreib dann mal einfach... Der Code ist ungetestet und braucht vielleicht noch einiges an Verbesserung ;)

Code:
#include <fstream>
#include <iostream>

using namespace std;

int main() {

char buffer[1024]; //etwas groß aber wer weiß was du für daten hast...

fstream file;
fstream.open( "Datei.txt" , fstream::in ); //öffne die Datei.txt zum lesen

int i = 1;

while(fstream.getline( buffer, 1024 )) {
cout << "Zeile #" << i << ": " << buffer << endl;
++i;
}

return 0;
}

Das erledigt nicht deine Aufgabe (das sollst du ja machen ;)), zeigt aber wie man mit fstreams umgeht. Ich hoffe ich konnte ein wenig helfen.

Das hier hat Google zum Thema directory listing gefunden:

Code:
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <dirent.h>
using namespace std;

int main(int argc, char *argv[])
{
  DIR *dirp;
  struct dirent *entry;
  if(dirp = opendir("C:\\"))
  {
    while(entry = readdir(dirp))
      printf("%s\n", entry->d_name);
    closedir(dirp);
  }     
    system("PAUSE");
    return EXIT_SUCCESS;
}
Ich finde den Code komisch und habe ihn nur kopiert. Aber wenn du die beiden Code Fragmente in diesem Post richtig zusammenfügst hast du was du willst...
 
Zuletzt bearbeitet:
Zurück
Oben