Pasalinimas is failo

Šiame forume rašomi vartotojų klausimai/problemos su kuriomis jie susidūrė kuriant pluginus.
Post Reply
InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Pasalinimas is failo

Post 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!")              }        }
ISVYKES

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Pasalinimas is failo

Post 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 );    }}
Palikau CS pasaulį ;/ . Nebepasiekiamas.

InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Re: Pasalinimas is failo

Post 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. :(
ISVYKES

User avatar
aaarnas
Vyr. diskusijų administratorius
Posts: 3891
Joined: 2010 Aug 31 13:21
Skype: fiarno
Contact:

Re: Pasalinimas is failo

Post 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.
Palikau CS pasaulį ;/ . Nebepasiekiamas.

InvIs
Gana aktyvus vartotojas
Posts: 421
Joined: 2011 Aug 13 11:12
Skype: pksoldierlt
Location: ATOSTOGOSE

Re: Pasalinimas is failo

Post 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.
ISVYKES

Post Reply

Who is online

Users browsing this forum: Bing [Bot] and 3 guests