bigpoint Geschrieben 1. Oktober 2002 Geschrieben 1. Oktober 2002 Hallo, ich suche ein Beispiel Programm der eine Texdatein auslesen kann und in eine andere schreiben . Bitte um Hilfe
Guybrush Threepwood Geschrieben 1. Oktober 2002 Geschrieben 1. Oktober 2002 Hi, einfach mal so aus dem Bauch heraus: #include <stdio.h> FILE *datei1, *datei2; char text[100]; main() { datei1 = fopen("c:\\datei1.txt","r"); // r steht für nur lesen if (datei1 == NULL) { printf ("Konnte datei1 nicht öffnen!"); return 0; } datei2 = fopen ("c:\\einordner\\datei2.dat","a+"); //a+ steht für lesen und Daten anfügen if (datei2 == NULL) { //konnte datei nicht öffnen oder erstellen } while (!feof(datei1))//solange Dateiende nicht erreicht { fscanf(datei1,"%s",&text);//wort aus datei lesen fprintf(datei2,"%s",text);//wort in datei schreiben } fclose(datei1); fclose(datei2); //Dateien schließen return 0; } [/PHP] Gruß wasweißich
bigpoint Geschrieben 1. Oktober 2002 Autor Geschrieben 1. Oktober 2002 Vielen Dank, hat jemand auch ein kleines MFC Beispiel ? Danke
Klotzkopp Geschrieben 1. Oktober 2002 Geschrieben 1. Oktober 2002 CStdioFile datei1; if( !datei1.Open( "c:\\datei1.txt", CFile::modeRead ) ) { MessageBox( "Konnte datei1 nicht öffnen!" ); return; } CStdioFile datei2; if( !datei2.Open( "c:\\datei2.txt", CFile::modeWrite | CFile::modeCreate ) ) { MessageBox( "Konnte datei2 nicht öffnen!" ); return; } CString strZeile; while( datei1.ReadString( strZeile ) ) { datei2.WriteString( strZeile ); } datei1.Close(); datei2.Close(); [/CODE]
bigpoint Geschrieben 1. Oktober 2002 Autor Geschrieben 1. Oktober 2002 Original geschrieben von wasweißich Hi, einfach mal so aus dem Bauch heraus: #include <stdio.h> FILE *datei1, *datei2; char text[100]; main() { datei1 = fopen("c:\\datei1.txt","r"); // r steht für nur lesen if (datei1 == NULL) { printf ("Konnte datei1 nicht öffnen!"); return 0; } datei2 = fopen ("c:\\einordner\\datei2.dat","a+"); //a+ steht für lesen und Daten anfügen if (datei2 == NULL) { //konnte datei nicht öffnen oder erstellen } while (!feof(datei1))//solange Dateiende nicht erreicht { fscanf(datei1,"%s",&text);//wort aus datei lesen fprintf(datei2,"%s",text);//wort in datei schreiben } fclose(datei1); fclose(datei2); //Dateien schließen return 0; } [/PHP] Gruß wasweißich [/b] und wie kann ich den Pfad manuel eingeben so geht nicht: printf("Bitte geben Sie den Pfad ein\n"); scanf("%s",&pfad); datei1 = fopen("pfad","r"); /
Klotzkopp Geschrieben 1. Oktober 2002 Geschrieben 1. Oktober 2002 Original geschrieben von 007ski printf("Bitte geben Sie den Pfad ein\n"); scanf("%s",&pfad); datei1 = fopen("pfad","r"); / 1. Wenn pfad ein char-Array oder char* ist, dann darfst Du bei scanf nicht die Adresse angeben. 2. Wenn Du bei fopen pfad in Anführungszeichen setzt, hält der Compiler das für ein Literal, nicht für eine Variable. Also: scanf("%s", pfad); datei1 = fopen( pfad, "r");
bigpoint Geschrieben 1. Oktober 2002 Autor Geschrieben 1. Oktober 2002 Danke Klotzkopp, kannst Du mir noch sagen wie ich jetzt diesen string der in der Dateien ist überprüfen kann und nur das auslesen was ich will.
Guybrush Threepwood Geschrieben 1. Oktober 2002 Geschrieben 1. Oktober 2002 Du mußt den String erst auslesen, dann kanst du ihn überprüfen. Wenn du ihn dann nicht mehr brauchst kannst du die Variable ja wieder überschreiben. Gruß wasweißich
bigpoint Geschrieben 1. Oktober 2002 Autor Geschrieben 1. Oktober 2002 Original geschrieben von wasweißich Du mußt den String erst auslesen, dann kanst du ihn überprüfen. Wenn du ihn dann nicht mehr brauchst kannst du die Variable ja wieder überschreiben. Gruß wasweißich und was mache ich mit lerzeillen zB.: JUSPEPHI16196666500W 0002790 02705 JUSP
Klotzkopp Geschrieben 1. Oktober 2002 Geschrieben 1. Oktober 2002 Original geschrieben von 007ski und was mache ich mit lerzeillen zB.: JUSPEPHI16196666500W 0002790 02705 JUSP Du solltest uns wirklich mal sagen, was genau Du prüfen willst. Niemand wird anhand dieser Zeile erkennen können, was hier relevante Daten sind. Haben die Zeilen einen einheitlichen Aufbau, durch feste Feldgrößen, Delimiter oder Schlüsselworte?
bigpoint Geschrieben 1. Oktober 2002 Autor Geschrieben 1. Oktober 2002 Ja gerne und sorry : Also ich will erste 15 zahlen auslesen JUSPEPHI16196666500W 0002790 02705 JUSP Dann 17-20 auslesen JUSPEPHI16196666500W 0002790 02705 JUSP Dann 22-24 und dann 26-34 dann in eine Datei speichern und denn Rest in eine andere Datei speichern, dass will ich machen aber ob es mir gelange ist die andere Sache ;-( Vielen Dank
Klotzkopp Geschrieben 1. Oktober 2002 Geschrieben 1. Oktober 2002 JUSPEPHI16196666500W 0002790 02705 JUSP 123456789012345678901234567890123456789012 (Abzähl-Zeile)[/CODE] Habe ich das so richtig verstanden? 1 bis 15: JUSPEPHI1619666 17 bis 20: 500W 22 bis 24: [Leerzeichen]00 26 bis 34: 2790[Leerzeichen][Leerzeichen]027 Rest: 05[Leerzeichen][Leerzeichen]JUSP
bigpoint Geschrieben 1. Oktober 2002 Autor Geschrieben 1. Oktober 2002 Original geschrieben von Klotzkopp JUSPEPHI16196666500W 0002790 02705 JUSP 123456789012345678901234567890123456789012 (Abzähl-Zeile) Habe ich das so richtig verstanden? 1 bis 15: JUSPEPHI1619666 17 bis 20: 500W 22 bis 24: [Leerzeichen]00 26 bis 34: 2790[Leerzeichen][Leerzeichen]027 Rest: 05[Leerzeichen][Leerzeichen]JUSP Ja perfekt ;-)
Guybrush Threepwood Geschrieben 1. Oktober 2002 Geschrieben 1. Oktober 2002 versuchsmal mit fgetc. Die Funktion ließt immer ein Zeichen ein, dein Problem kannst du ja dann ganz einfach in Schleifen lösen. Bsp: char zeichen; zeichen = fgetc(datei1); Gruß wasweißich
Klotzkopp Geschrieben 1. Oktober 2002 Geschrieben 1. Oktober 2002 CStdioFile LesenDatei, SchreibenDatei, RestDatei; LesenDatei.Open( "c:\\datei1.txt", CFile::modeRead ); SchreibenDatei.Open( "c:\\datei2.txt", CFile::modeWrite | CFile::modeCreate ); RestDatei.Open( "c:\\datei3.txt", CFile::modeWrite | CFile::modeCreate ); CString strZeile; while( LesenDatei.ReadString( strZeile ) ) { CString strDaten = strZeile.Left( 15 ); strDaten += strZeile.Mid( 16, 4 ); strDaten += strZeile.Mid( 21, 3 ); strDaten += strZeile.Mid( 25, 9 ); SchreibenDatei.WriteString( strDaten ); CString strRest = strZeile.Mid( 34 ); RestDatei.WriteString( strRest ); } LesenDatei.Close(); SchreibenDatei.Close(); RestDatei.Close();[/CODE]
bigpoint Geschrieben 1. Oktober 2002 Autor Geschrieben 1. Oktober 2002 Danke Klotzkopp hat mir geholfen :marine
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden