Datei einlesen, sortieren und getrennt abspeichern

clezi1988

Lt. Commander
Registriert
Jan. 2008
Beiträge
1.523
ich komm leider nicht weiter: dies ist die angabe

Ich habe jetzt ein Textdokument erstellt in dem folgendes steht
MR;SIEMENS;3;10;3;19990102
MR2;SIEMENS;4;11;2a;20000603
MR3;SIEMENSVAI;5;12;1;20010801
MR4;SIEMENSVAI;6;13;1m;20010415
------------------------------------------------------------------
struct datei
{
char bezeichnung[3];
char Hersteller[20];
char TN[10];
char SN[10];
char MPK[3];
char PD[8];
};
Jetzt möchte ich den String zerhacken immer bis zum Stichpunkt und den Teil jeweils einer variablen zuweisen.
MR -> geraet[1].bezeichnung
Siemens -> geraet[1].Hersteller
....
MR2 -> geraet[2].bezeichnung
...
wie funktioniert das jetzt?
hab schon gegoogelt, aber ich weiß nicht recht wie ich es nun schreibe
hab die funktion strstr gefunden, aber wie ich die anwenden muss weiß ich auch nicht recht.
wäre toll wenn mir wer den helfen könnte und zumindestens mal den anfang programmieren könnte
 
Zuletzt bearbeitet:
sry c. compiler ist dev c++
 
Fürs Zerhacken nimm strtok. Das ist genau für solche Aufgaben gedacht.
 
aber wie weiß ich jetzt den zerhackten string verschiedenen variablen zu? so wie oben beschrieben?
 
Bei dem Link von NullPointer ist doch sogar ein Beispiel dabei!
 
Ungefähr so, wenn in der Variablen zeile der String gespeichert ist, den du zerhacken willst:

Code:
char* token;

token = strtok(zeile, ";");
strncpy(geraet[1].bezeichnung, token, 3);

token = strtok(NULL, ";");
strncpy(geraet[1].Hersteller, token, 20);

// ...

token = strtok(NULL, ";");
strncpy(geraet[1].PD, token, 8);

Das Ganze dann für jede Zeile wiederholen mit geraet[2] usw. Durch die Benutzung von strncpy stellst du sicher, daß in die Felder von geraet keine überlangen Strings geschrieben werden, was schlecht wäre (Buffer Overrun).
 
thx @ nullpointer
 
Zurück
Oben