Hey Community,
1. ich speichere ein Wert, hier "Hallo", in einer Datei ab.
2. ich frage ab, ob ein Eintrag namens "Hallo" schon in der Datei vorhanden ist:
public CheckLine(playerid, filename[], inputtext[])
{
if(IsPlayerConnected(playerid))
{
new Data[256];
new File: hFile = fopen(filename, io_read);
if( hFile )
{
while( fread( hFile, Data, sizeof(Data)))
{
StripNewLine( Data );
if(strfind(Data, inputtext, true) == 0)
{
LineThere[playerid] = 1;
}
else
{
LineThere[playerid] = 0;
}
}
fclose( hFile );
}
}
return 1;
}
Wenn der Eintrag vorhanden ist, wird LineThere[playerid] auf 1 gesetzt. Wenn nicht, dann auf 0.
Das Problem ist aber jetzt, dass ich 10 Einträge habe, die in der Datei so aussehen:
Hallo
Hallo1
Hallo2
Hallo
Hallo1
Hallo2
Hallo
Hallo1
Hallo2
Hallo
Mein Problem ist jetzt, das NUR die letzte Zeile ausgelesen und verglichen wird.
Das heißt, wenn ich abfragen will ob "inputtext" dem Wort in der Datei "Hallo" entspricht und in der Datei als LETZTE Zeile "Hallo" steht, klappt es und mir wird gesagt, dass der Eintrag vorhanden ist.
ABER, wenn ich jetzt "Hallo1" in die Datei ergänze und dann abfrage, ob der Eintrag "Hallo" bereits in der Datei vorhanden ist, wird mir geschrieben, dass sich so ein Eintrag in der Datei NICHT befindet, obwohl er über dem Eintrag "Hallo1" als vorletzte Zeile steht.
Meine Frage nun, was mache ich falsch ? Ich habs nach dem wiki Code gescriptet, jedoch klappt es nicht.