Probleme beim Lesen aus ini-Datei
-
Hallo,
ich will aus einer ini-Datei Daten lesen und hab folgendes Problem: muss ungefähr 10.000 mal jeweils 2 Datensätze aus der ini-Datei lesen, aber ich bekomme immer eine Fehlermeldung, dass er die Daten aus Sektion 271 nicht findet. Wenn ich nun nicht 10.000 sondern 270 mal die 2 Datensätze lesen will, läuft das Programm einwandfrei.
Funktion, die ich benutze:
int getString ( char * myString, char * fileName, char * secName, char * keyName, char * functionName ) {
char dummy [LAENGE_BUFFER]; // Buffer, der den auszulesenden String aufnimmt
GetPrivateProfileString ( secName, keyName, "-1", dummy, sizeof ( dummy ), fileName );
if ( atoi ( dummy ) < 0 ) { // wurde String gefunden?sonst mit -1 initialisiert
printf ( "\nFEHLER in %s: %s \nwurde nicht in Sektion %s in ini-Datei %s gefunden\n", functionName, keyName, secName, fileName );
exit ( 2 );
}strcpy (myString, dummy);
return ( 0 );
}
Frage: Hat jemand eine Ahnung, ob man nur eine gewisse Anzahl an Daten aus einer ini-Datei lesen kann, bzw. wo der Fehler liegen könnte und was man ändern sollte?
Danke!
Urs
-
würd mir die funktion:
GetPrivateProfileString ( secName, keyName, "-1", dummy, sizeof ( dummy ), fileName );mal gnau anschauen, ob sie auch wirklich die datei wieder zumacht
mfg
-
sorry, hab die tags vergessen...
Also hier nochmal mit tags:Hallo,
ich will aus einer ini-Datei Daten lesen und hab folgendes Problem: muss ungefähr 10.000 mal jeweils 2 Datensätze aus der ini-Datei lesen, aber ich bekomme immer eine Fehlermeldung, dass er die Daten aus Sektion 271 nicht findet. Wenn ich nun nicht 10.000 sondern 270 mal die 2 Datensätze lesen will, läuft das Programm einwandfrei.
Funktion, die ich benutze:
int getString ( char * myString, char * fileName, char * secName, char * keyName, char * functionName ) { char dummy [LAENGE_BUFFER]; // Buffer, der den auszulesenden String aufnimmt GetPrivateProfileString ( secName, keyName, "-1", dummy, sizeof ( dummy ), fileName ); if ( atoi ( dummy ) < 0 ) { // wurde String gefunden?sonst mit -1 initialisiert printf ( "\nFEHLER in %s: %s \nwurde nicht in Sektion %s in ini-Datei %s gefunden\n", functionName, keyName, secName, fileName ); exit ( 2 ); } strcpy (myString, dummy); return ( 0 ); }
Frage: Hat jemand eine Ahnung, ob man nur eine gewisse Anzahl an Daten aus einer ini-Datei lesen kann, bzw. wo der Fehler liegen könnte und was man ändern sollte?
Danke!
Urs
-
Hallo,
ich glaub ich weiss jetzt, woran es liegt: Hab gelesen, dass eine ini-Datei höchstens 64 KB gross sein darf und meine ist ca. 250 KB gross
Werd dann wohl ne Textdatei nehmen und die Prozeduren, um aus dieser auszulesen, selber schreiben (die, um aus ner ini-Datei zu lesen hatte ich schon, deshalb auch die ini).
Kann mir jemand einen Tipp geben, mit welchen Funktionen ich am besten Daten aus einer Textdatei lesen kann ( und wie ich sie vorher geeigneter Weise hineinschreiben sollte ). Muss immer wieder einen gewissen Datensatz auslesen: kann ich mit einer Funktion in gewisse Zeilen springen oder muss ich immer von Beginn an alle durchlaufen ( mit while oder so )?
Danke!
Urs
-
ich würde einfach fscanf() - verwenden
Urs24 schrieb:
kann ich mit einer Funktion in gewisse Zeilen springen oder muss ich immer von Beginn an alle durchlaufen ( mit while oder so )?
bin mir nicht sicher, aber ich glaube es gibt so etwas wie fseek oder so - die Funktion erwartet einen Offset und ließt dann, ab einer bestimmten Stelle die Daten ein - weiß ich nicht ob man nicht einfach den Filepointer (den man durch fopen) bekommt nicht einfach "manipulieren" kann und damit etwas in der Datei überspringen kann - glaub eher nicht