file_str_read in einer Schleife....

Posted By: Clockmaster

file_str_read in einer Schleife.... - 07/08/07 11:15

Ich habe versucht mit file_str_read daten über eine Schleife in ein Struct Array zu schreiben. Wenn ich jedes Element einzeln angebe z.B.
Code:

tex_info[0].tex_name = " ";
file_str_read(file_handle_n,temp_str);
tex_info[0].tex_name = temp_str;



funktioniert es ohne Probleme. Schreibe ich aber

Code:

while(i < 10)
{
tex_info[i].tex_name = " ";
file_str_read(file_handle_n, temp_str);
if(temp_str == NULL) //überspringe leeren Bereich in der Datei
{
i = i + 1;
break;
}

tex_info[i].tex_name = temp_str;
str_cpy(temp_str, " ");
i += 1;
}



wird die Struktur nicht mehr mit den Daten gefüllt. Woran kann das liegen? Ich vermute mal, das file_str_handle in einer Schleife nicht funktioniert ,weil die funktion sich nicht merken kann, an welcher Position in einer Textdatei er beim letzten schleifenlauf war, aber das kann nur jemand von Conitec sagen. Wenn ich sonst einen Fehler gemacht habe, bitte darauf hinweisen.

Danke im Vorraus.

PS: Ich trenne die Daten in der Textdatei mit "komma".
Posted By: HeelX

Re: file_str_read in einer Schleife.... - 07/08/07 11:23

Was ist tex_name für ein Typ? Du musst, um den String, der von file_str_read gelesen wird, zu speichern, diesen in einen neuen kopieren (mit str_cpy)! Wenn du mit = arbeitest, weist du nur einen String pointer zu. Und da der String pointer der file_str_read Anweisung (wahrscheinlicherweise) ein static String ist, wirst du immer denselben Stringpointer speichern (in allen Elementen von tex_info). Also wenn du darauf zugreifst, steht dann der letzte gelesene String drin.
Posted By: Clockmaster

Re: file_str_read in einer Schleife.... - 07/08/07 13:46

tex_name ist ein String*. In einer anderen Funktion hat das zuweisen eines String* funktioniert, allerdings habe ich da nicht mit file_str_read oder einer Schleife verwendet. mit str_cpy konnte ich den Struktur String nicht füllen. Ich werde das mit dem zwischenspeichern ( str_cpy ) versuchen. Nochmals Danke für deine Hilfe...

Edit: Also an file_str_read liegt es nicht. Es liegt wirklich daran, das ich das Ergebnis nicht in meine Structur bekomme.
© 2024 lite-C Forums