Zeichen u. Zahlen aus Datei lesen!



  • Hallo,

    ich bin Anfänger hier und setzte mich seit kurzem mit dem Problem auseinander eine Zeile aus einer Txt-Datei zu lesen! Klappt bis auf die Zeichen!
    Hier erstmal die Datei:

    1234567 4 Textnachricht Musterstr. 5 B-dorf
    2456789 1 Nachricht nr.23 fällt aus
    3456789 2 Nachricht Anlage 5 wieder ok

    So nun habe ich über fopen den ersten Ausdruck ("1234567") und den zweiten Ausdruck ("4") erfolgreich über int eingelesen!
    Aber wie bekomme ich den 3. Ausdruck ("Textnachricht Musterstr. 5 B-dorf")
    nun ebenfalls eingelesen und auf eine Variable gelegt?

    Die Datei besteht aus mehreren solcher Zeilen und das Programm soll die 3 Ausdrücke aus jeder Zeile auf je drei verschiedenen Variablen speichern, die jedoch den gleichen Index haben, damit die Ausdrücke nicht einfach zwischen den einzelnen Zeilen vertauscht werden können.

    Wäre für jeden Tipp dankbar!
    Ich arbeite mit C++ 5.0?
    Danke, Gruß Michel



  • ich denke, du machst sowas in der Art

    ifstream file("datei.x");
    file >> nummer1 >> nummer2;
    

    dann brauchst du nur noch:

    string s;
    getline(file, s);
    
    cout << "Variable 1: " << nummer1 << "\nVariable 2: " << nummer2 << "\nDer Rest: " << s << '\n';
    

    Edit:
    btw was ist C++ 5.0?

    [ Dieser Beitrag wurde am 16.02.2003 um 19:01 Uhr von Noesis editiert. ]



  • Hallo,

    Danke erstmal für die Antwort, aber die ist mir schon fast zu Profi-haft. Das heißt ich kann nicht alle Befehle zuordnen!
    Ich hatte bis folgendes:

    #include <stdio.h>
    #define max 100
    int i=1,ausd1[max],ausd2[max];
    file *datei;
    datei=fopen("f:\datei.txt","r");
    if (datei==0)
      printf("Datei gefunden!");
    else printf("Nix gefunden!");
    while (fscanf (datei, "%d%d",&ausd1[i],ausd2[i])!=EOF)
     {
     printf("\n Ausdruck1: %5d Ausdruck2: %5d",ausd1[i],ausd2[i]);
     i=i+1;
     }
    fclose(datei);
    fflush(stdin);
    getchar();
    }
    

    Kannst Du mir sagen wie deinen Tipp da einbauen kann, vielleicht weißt du ja noch etwas leichteres wenn du jetzt meinen bisherigen Code siehst!
    Wie gesagt ich möchte den 3. Ausdruck der Text enthält da mit reinbringen!
    Danke wieder im voraus!
    Gruß Michel 😕

    [ Dieser Beitrag wurde am 19.02.2003 um 17:29 Uhr von Dimah editiert. ]



  • Hm, was du da machst, ist C, hast du dich vielleicht im Forum geirrt?
    Ich nehme an, mit C++ 5 meinst du Microsoft's Visual C++ 5.0?
    Da weiß ich nicht, ob der das schon kann:

    #include <string>
    #include <fstream>
    using namespace std;
    
    int main () {
       ifstream file("abc.def");
    
       while (file) {
          int nummer1, nummer2;
          file >> nummer1 >> nummer2;
    
          string zeile;
          getline (file, zeile);
    
          /*Mach was mit den Daten*/
       }
    }
    

    Das wäre C++



  • Ist mir schon etwas zu hoch.....

    also ich habe das Borland C++ 5.0
    und ich möchte gerne die obige Datei auslesen und später die längste ausgelesene Zeile (wobei hier nur die Länge des Textstrings zählt) mittels eines Emailbefehls versenden können, automatisch über irgend einen pop-account!
    Meine Frage:
    Kann ich das mit diesem Programmiertool überhaupt oder sollte ich besser eine andere Sprache wählen!? Ich hab leider nur in C bzw. C++ ein paar Grundkenntnisse 😞
    Das ganze soll kein heftiges Programm werden, es soll nur seinen Zweck erfüllen!
    Danke.
    Gruß Michel



  • ich finde dein Programm recht heftiger als meins...
    vielleicht kann dich ein Mod in das C Forum verschieben?

    bzw. reines C++ kennt sowieso kein Internet/ nicht mal Grafik oder Threads. Da musst du dann sowieso zu den Fachforen dafür



  • Ja, dann mach das mal. Vielleicht kann mir ja dort gehpolfen werden.
    Also wenn das schon heftig ist, dann .... 🙄
    Danke, Michel



  • Verschoben -> ANSI C


Anmelden zum Antworten