toribio

toribio

Apr 8th, 2009
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1.                                                                             /*
  2.     EditFileLine function
  3.     Copyright© 2007-2009 Infernus' Group
  4.     All Rights Reserved
  5.    
  6.     Special Thanks: DracoBlue
  7.                                                                             */
  8.  
  9. #include <a_samp>
  10.  
  11. forward fcopy(oldname[], newname[]);
  12. forward EditFileLine(filename[], line, new_content[]);
  13.  
  14. public fcopy(oldname[], newname[]) { // By DracoBlue
  15.     new File:ohnd,File:nhnd;
  16.     if (!fexist(oldname)) return false;
  17.     ohnd=fopen(oldname,io_read);
  18.     nhnd=fopen(newname,io_write);
  19.     new buf2[1];
  20.     new i;
  21.     for (i=flength(ohnd);i>0;i--) {
  22.         fputchar(nhnd, fgetchar(ohnd, buf2[0],false),false);
  23.     }
  24.     fclose(ohnd);
  25.     fclose(nhnd);
  26.     return true;
  27. }
  28.  
  29. public EditFileLine(filename[], line, new_content[])
  30. {
  31.     if(!fexist(filename)) return false;
  32.     new tmp[0x100];
  33.     new partfilename[0x28];
  34.     format(partfilename, 0x28, "%s.part", filename);
  35.     new File:fpr = fopen(filename, io_read);
  36.     new File:fpw = fopen(partfilename, io_write);
  37.     new g_line = 0;
  38.     while(fread(fpr, tmp, 0x100))
  39.     {
  40.         g_line++;
  41.         if(g_line == line) fwrite(fpw, new_content);
  42.         else fwrite(fpw, tmp);
  43.     }
  44.     fclose(fpw);
  45.     fclose(fpr);
  46.     fcopy(partfilename, filename);
  47.     fremove(partfilename);
  48.     if(g_line < line) return false;
  49.     return true;
  50. }
  51.  
Add Comment
Please, Sign In to add comment