Hallo,
ich habe mir eine kleine fread-Funktion im Command geschrieben, die ein Report Zeile für Zeile ausliest. Je nach Inhalt der Zeile soll einer bestimmten Variable dann der jeweilige Wert zugewiesen werden.
Der Code dabei ist der folgende:
do
{
i++;
exists = true;
format(path, 68, "/%s/%i.txt", dini_path, i);
if(fexist(path))
{
ID[count] = i;
count++;
new File:report = fopen(path, io_read);
while(fread(report, string))
{
if(strfind(string, "subject", true) != -1) { strdel(string, 0, 8); subject = string; }
if(strfind(string, "time", true) != -1) { strdel(string, 0, 5); date = string; }
if(strfind(string, "reason", true) != -1) { strdel(string, 0, 7); reason = string; }
if(strfind(string, "read", true) != -1) { strdel(string, 0, 5); read = strval(string); }
if(read) format(cat, 68, "{ED9E15}%s {FFFFFF}\t%s: %s\n", date, subject, reason);
else format(cat, 68,"{ED9E15}%s {ED1515}\t%s: %s\n", date, subject, reason);
strcat(msg, cat);
}
fclose(report);
}
}
while(i<50);
if(!exists) return ShowPlayerDialog(playerid, 104,
DIALOG_STYLE_MSGBOX, "Beschwerden", "Es sind aktuell keine Beschwerden
eingetragen.", "Okay", "Nicht okay");
ShowPlayerDialog(playerid, 104, DIALOG_STYLE_LIST, "Beschwerden", msg, "Auswählen", "Abbrechen");
Wenn ich den Command allerdings eingebe, erhalte ich folgenden Dialog:
Meine eigene Vermutung wäre natürlich, dass ich strdel am falschen Anfangs- und Endplatz nutze und damit eine neue Zeile mit in den String formatiere, aber ich sehe nicht wieso das so sein sollte.
Das Textdokument ist wie folgt aufgebaut:
Ich hoffe ihr könnt mir weiterhelfen.
Sollte dann auch erstmal meine letzte Scriptfrage sein, außer mit fread (glücklicherweise verwende ich sonst überall dini, MySQL o.Ä. mit denen ich umgehen kann) habe ich keine weiteren Probleme in meinem Script.
Mit freundl. Grüßen
Padarom