Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

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

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]

  • 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"); /

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");

  • 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

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?

  • 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

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

  • 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 ;-)

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.