Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Aus einer Datei in eine Verkettete Liste lesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.02.2007, 14:15 Uhr
~FREE
Gast


Hi, ich hab hier ein Problem
Und zwar schreiben wir in der schule ein Telefonbuch als Projekt.
Die Daten kommen in folgende Struktur.


C++:
struct daten
{
    char nname [50];
    char vname [50];
    char telenr [50];
    char stadt [50];
    char addr [50];
};



Um eingebene Einträge zu speichern hab ich mit fopen ne txt datei gemacht wo die daten einfach hintereinander mit einem ";" als Trennzeichen gespeichert werden. Ein Eintrag pro Zeile.
Bsp:
nname1;vname1;telenr1;stadt1;addr1;\n
nname2;vname2;telenr2;stadt2;addr2;\n

Nun funktioniert die Ladefunktion aber nicht.
In der muss aus der Datei wieder eine verkettete Liste gemacht werden.
Dazu hab ich nen counter, der bei jedem ";" nen ++ bekommt, anhand der Counterzahl weiß der PC dann in welche Variable er das ausgelesene schreiben muss. Natürlich hört er bei jedem ";" auch erstmal mit dem Auslesen auf. Ist ein Datenelelement fertig erzeugt wird es zusammen mit dem Listenkopf an die funktion geschickt die die Daten in eine Liste hängt.
So weit der plan, aber irgendwie beachtet die fputc nur jedes 2. Zeichen, und so wirklich aufhören mitem lesen hört die funktion bei einem ";" auch ned
Wäre cool wenn mir da jemand weiterhelfen könnte.

thx

(In der CPP sind ne Menge Couts zur fehlersuche, ich hab sie mal drinne gelassen, vieleicht helfen sie ja auch euch bei der fehlersuche)


C++:
int load_tele(struct listenkopf*pkopf)
{cout<< "In der load 1"<<endl;

FILE* ptr=NULL;
int position=1,ret_value_EA, i=0;
struct daten* dat;

cout<< "In der Load 2"<<endl;

dat=DatenErzeugung(); //Gibt ein Malloc datenelement zurück
cout<< "In der Load 3"<<endl;

ptr=fopen("save.txt", "r");
cout<< "In der Load 4"<<endl;

if(ptr != NULL)
{

        while(fgetc(ptr) != EOF)
        {
        
         if(position==1)
         {
            i=0;
            while(fgetc(ptr) != ';')
            {
             dat->nname[i]=(char)fgetc(ptr);
             i++;
            }
            
            dat->nname[i]='\0';
cout<< "In der Load nname"<<dat->nname<<endl;
            
         }
        
         if(position==2)
         {
            i=0;
            while(fgetc(ptr) != ';')
            {
             dat->vname[i]=(char)fgetc(ptr);
             i++;
            }
          dat->vname[i]='\0';
cout<< "In der Load vname"<<dat->vname<<endl;
         }
        
         if(position==3)
         {
            i=0;
            while(fgetc(ptr) != ';')
            {
             dat->telenr[i]=(char)fgetc(ptr);
             i++;
            }
            dat->telenr[i]='\0';
cout<< "In der Load telenr"<<dat->telenr<<endl;
         }
        
         if(position==4)
         {    
            i=0;
            while(fgetc(ptr) != ';')
            {
             dat->stadt[i]=(char)fgetc(ptr);
             i++;
            }
             dat->stadt[i]='\0';
cout<< "In der Load stadt"<<dat->stadt<<endl;
         }
        
         if(position==5)
         {    
            i=0;
            while(fgetc(ptr) != ';')
            {
             dat->addr[i]=(char)fgetc(ptr);
             i++;
            }
             dat->addr[i]='\0';
cout<< "In der Load addr"<<dat->addr<<endl;
             position=0;
         }

         position++;
         ret_value_EA=ElementAnhaengen(pkopf, dat); //Daten werden in die Liste geängt
        }

    fclose(ptr);
    return 0;
}
else
{
     cout << "Das Telefonbuch konnte nicht geladen werden"<<endl;
     getch();
     return 1;
}
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.02.2007, 14:44 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


wirf mal nen blick in die stl... da gibt es sowas wie vector, list, string, die dir fast die komplette arbeit abnehmen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: