Page 1 of 1

Pasalinimas is failo

Posted: 2012 Apr 02 14:52
by InvIs
Taigi, niekas nepadėjo su medkitu, teko darytis pačiam.... Pasidariau, bet dabar kaip padaryti, kad ištrintų eilutę iš failo?


Code: Select all

        new entity, hitpart;        get_user_aiming(id,entity,hitpart);         if(is_valid_ent(entity) && !is_user_connected(entity))        {           new classname[32];           entity_get_string(entity,EV_SZ_classname,classname,31);               if(equal(classname,"item_medkit"))              {                 client_printcolor(id, "/ctrSekmingai pasalinote vaistinele!")                 engfunc(EngFunc_RemoveEntity,entity)                 // Ką čia rašyti, kad ištrintų koordinates iš failo?(configs/medkits/mapname.ini)              }              else              {                      client_printcolor(id, "/ctrTai ne vaistinele!")              }        }

Re: Pasalinimas is failo

Posted: 2012 Apr 02 15:13
by aaarnas
Tai pats ir turi daryti.

Geriau yra ne failą trinti, o susitvarkyti duomenis atmintyje, o po to juos išsaugoti į failą, nes failo rašymas gana brangi procedūra. Stockas eilutės trynimui iš failo:

Code: Select all

DeleteLine( const szFilename[ ], const iLine ){    new iFile = fopen( szFilename, "rt" );    if( !iFile )    {        return;    }    static const szTempFilename[ ] = "delete_line.txt";    new iTempFile = fopen( szTempFilename, "wt" );        new szData[ 256 ], iLineCount, bool:bReplaced = false;    while( !feof( iFile ) )    {        fgets( iFile, szData, 255 );                if( iLineCount++ == iLine )        {            bReplaced = true;        }        else        {            fputs( iTempFile, szData );        }    }        fclose( iFile );    fclose( iTempFile );        if( bReplaced )    {        delete_file( szFilename );                while( !rename_file( szTempFilename, szFilename, 1 ) ) { }    }    else    {        delete_file( szTempFilename );    }}

Re: Pasalinimas is failo

Posted: 2012 Apr 02 15:16
by InvIs
Dieve tu mano, nieko aš čia nesuprantu :D

Man tiesiog reikia, kad pašalinus entity ir iš failo koordinates ištryntų. Nes medkitą pašalina, bet kitą roundą jis vėl būna, nes faile yra įrašytos koordinatės. O aš nemoku ieškoti tinkamos eilutės ir čia nesupratau ką davei. :(

Re: Pasalinimas is failo

Posted: 2012 Apr 02 15:35
by aaarnas
Ta prasme? Čia yra funkcija, kur nurodai konkretų failą ir eilutę ir ji ištrina ją iš failo. Kuri eilutė, tai reikės pačiam susirasti. Atsidarai failą ir po eilutę ieškai.

Re: Pasalinimas is failo

Posted: 2012 Apr 02 15:40
by InvIs
Ta prasme aš suprantu kokią funkciją tu davei, bet jos panaudoti aš nesugebu.
Nejaugi nėra paprastesnio metodo su for, kuris eitų per eilutes ir tikrintų koordinates? Jei sutampa, eilutė ištrinama.