Szerző Téma: fdeleteline függvény  (Megtekintve 663 alkalommal)

fdeleteline függvény
« Dátum: 2011. december 27. - 18:50:12 »
0 Show voters
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.
« Utoljára szerkesztve: 2011. december 27. - 20:45:26 írta mauladam »

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
fdeleteline függvény
« Válasz #1 Dátum: 2011. december 28. - 00:03:41 »
0 Show voters
Frissítsd az sscanf-et!
http://sampforum.hu/index.php?topic=4331.msg204545#msg204545


A crash oka pedig az lehet, hogy egy olyan fájlot próbálsz megnyitni io_read móddal, ami nem létezik.
Vagy esetleg az sscanf-nél a string buffer méret kicsi a stringnek, amibe beletöltöd a sort. Akkor is crashel.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal