Veröffentlicht 1. Oktober 200222 j Hallo, ich suche ein Beispiel Programm der eine Texdatein auslesen kann und in eine andere schreiben . Bitte um Hilfe
1. Oktober 200222 j 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
1. Oktober 200222 j 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]
1. Oktober 200222 j Autor 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"); /
1. Oktober 200222 j 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");
1. Oktober 200222 j Autor 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.
1. Oktober 200222 j 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
1. Oktober 200222 j Autor 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
1. Oktober 200222 j 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?
1. Oktober 200222 j Autor 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
1. Oktober 200222 j 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
1. Oktober 200222 j Autor 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 ;-)
1. Oktober 200222 j 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
1. Oktober 200222 j 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]
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.