Sziasztok!
Próbáltam írni egy fdeleteline függvényhez hasonlító függvényt, aminek az lenne a lényege, hogyha a fájlban van olyan sor, aminek az elsõ karakterlánca megegyezik a keresett sztringgel, akkor azt a sort törölje ki, és a többit tartsa meg.
Így próbálkoztam:
[pawn]stock fdeletekey(fajlnev[], kulcs[])
{
if(!fexist(fajlnev)) return 0;
new valu[32], val, Float:v;
new File:tmpfajl;
fajl1 = fopen(fajlnev, io_read);
tmpfajl = fopen(\"tmpfajl.tmp\", io_write);
while(fread(fajl1, sor)){
if(sscanf(sor, \"s[32]s[32]\", k,valu) && sscanf(sor, \"s[32]i\", k,val) && sscanf(sor, \"s[32]f\", k,v) && sscanf(sor, \"s[32]l\", k,valu)){
if(strcmp(kulcs, k)){
fwrite(tmpfajl, sor);
}
}
}
fclose(fajl1);
fremove(fajlnev);
fclose(tmpfajl);
fajl1 = fopen(fajlnev, io_write);
tmpfajl = fopen(\"tmpfajl.tmp\", io_read);
while(fread(tmpfajl, sor)){
fwrite(fajl1, sor);
}
fclose(tmpfajl);
fremove(\"tmpfajl.tmp\");
fclose(fajl1);
return 1;
}
[/pawn]
Az a gond vele, hogyha egy másik függvényben használom, és azt a függvényt használom a filterscriptben, akkor crashel.
Pawn error nincs, tehát nem tudom mi lehet a baja.
Észrevettem egy dolgot, mégpedig, hogyha elindítom a szervert, a konzolba kapok egy sscanf errort:
[18:47:45] sscanf error: The current build ONLY supports 0.3d
AZ a furcsa ebben, hogy 0.3d-t használok.
Remélem valaki tud majd segíteni.