bigpoint Geschrieben 1. Oktober 2002 Teilen Geschrieben 1. Oktober 2002 Hallo, ich suche ein Beispiel Programm der eine Texdatein auslesen kann und in eine andere schreiben . Bitte um Hilfe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 1. Oktober 2002 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 1. Oktober 2002 Autor Teilen Geschrieben 1. Oktober 2002 Vielen Dank, hat jemand auch ein kleines MFC Beispiel ? Danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 1. Oktober 2002 Teilen 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] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 1. Oktober 2002 Autor Teilen 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"); / Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 1. Oktober 2002 Teilen 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"); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 1. Oktober 2002 Autor Teilen 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 1. Oktober 2002 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 1. Oktober 2002 Autor Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 1. Oktober 2002 Teilen 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 1. Oktober 2002 Autor Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 1. Oktober 2002 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 1. Oktober 2002 Autor Teilen 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 ;-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 1. Oktober 2002 Teilen 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 1. Oktober 2002 Teilen 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] Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
bigpoint Geschrieben 1. Oktober 2002 Autor Teilen Geschrieben 1. Oktober 2002 Danke Klotzkopp hat mir geholfen :marine Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.