Page 1 of 2

Cum pot edita un fisier?[rezolvat!]

Posted: 31 Aug 2010, 17:36
by pigmy
Salutare, doresc un mic tutorial, ca nu prea inteleg, sau sa ma ajute cineva...stiu doar cam asa ceva... :(

Code: Select all

public func()
{
	new path[128], fh, cache[128]
	get_configsdir(path, 127)
	format(path, 127, "%s%s", path, "/maps.ini")

	fh = fopen(path, "rt")
	if(!fh)
	{
		log_amx("Could not open file (%s).", path)
		return
	}

	fclose(fh)
}
Ce vreau sa fac eu? Sa golesc maps.ini si sa includ altceva, prin aceasta comanda, cum pot face?
Nu am inteles nici cum...multumesc.

Re: Cum pot edita un fisier?

Posted: 01 Sep 2010, 11:55
by Ciprian
Deci am inteles ca vrei sa stergi ce e in fisier. Dar tot prin comanda asta vrei sa si adaugi sau cum?

Re: Cum pot edita un fisier?

Posted: 01 Sep 2010, 12:07
by pigmy
Ciprian: In fisier se afla manele serverului, nu? Bun, eu vreau sa sterg tot ce se afla in el si sa adaug altceva, asta doresc. Sper sa ma ajuti. Multumesc tare mult Ciprian.

Re: Cum pot edita un fisier?

Posted: 01 Sep 2010, 15:42
by Ciprian
pigmy wrote: Bun, eu vreau [...] sa adaug altceva
Prin comanda?

Re: Cum pot edita un fisier?

Posted: 02 Sep 2010, 00:03
by pigmy
Ciprian: Se va ezecuta la o anumita ora aceste setarii. Mersi ca incerci sa ma ajuti :X

Re: Cum pot edita un fisier?

Posted: 02 Sep 2010, 09:53
by Ciprian
Deci o sa ai asa:

Code: Select all

public func ( ) { 
Acum trebuie sa formatezi calea spre fisier:

Code: Select all

    new s_ConfigsDir[ 64 ], s_File[ 64 ];
    get_configsdir ( s_ConfigsDir, charsmax ( s_ConfigsDir ) );  // se ia calea spre folderul configs
    formatex ( s_File, charsmax ( s_File ), "%s/maps.ini", s_ConfigsDir );  // se formateaza calea spre fisier  
Verificam daca exista fisierul, daca exista il stergem.

Code: Select all

    if ( file_exists ( s_File ) )
        delete_file ( s_File );
 
In acest moment, ori ai fisierul sters, ori nu exista. Deci va trebui sa il cream din nou.

Code: Select all

    new fp = fopen ( s_File, "wt" ); // fp - file pointer ; "wt" inseamna write text      
Acum ca avem fisierul creat putem sa scriem in el ce dorim. Sa presupunem ca retii datele intr-un aray numit s_Arg[ NR_LINII ][ LUNGIME MAXIMA ]. Datele le vei scrie in fisier astfel:

Code: Select all

    if ( fp ) {
        for ( new i = 0; i < NR_LINII; i ++ )
                fputs ( fp, s_Arg[ i ] );  // Adaugi cate o linie in fisier
    }
 
Am terminat de lucrat cu fisierul, il inchidem.

Code: Select all

    fclose ( fp ); // salveaza si inchide fisierul  
Succes. Daca mai ai nelamuriti posteaza aici.
Alte functii pentru file handling gasesti aici.

Re: Cum pot edita un fisier?

Posted: 02 Sep 2010, 14:54
by pigmy
Singurul lucru, nu inteleg cum se scrie in el?

Code: Select all

    if ( fp ) {
        for ( new i = 0; i < NR_LINII; i ++ )
                fputs ( fp, s_Arg[ i ] );  // Adaugi cate o linie in fisier
    }
Cum vor fi adaugate? Ca asta nu inteleg...

Re: Cum pot edita un fisier?

Posted: 02 Sep 2010, 15:21
by Ciprian
pigmy wrote:Singurul lucru, nu inteleg cum se scrie in el?

Code: Select all

    if ( fp ) {
        for ( new i = 0; i < NR_LINII; i ++ )
                fputs ( fp, s_Arg[ i ] );  // Adaugi cate o linie in fisier
    }
Cum vor fi adaugate? Ca asta nu inteleg...
Una sub alta.

Re: Cum pot edita un fisier?

Posted: 02 Sep 2010, 15:33
by pigmy
Ar trebui sa fac asa:

Code: Select all

    if ( fp ) {
        for ( new i = 0; i < NR_LINII; i ++ )
                fputs ( fp, de_dust2);
                fputs ( fp, de_dust);
    }
Asa?

Re: Cum pot edita un fisier?

Posted: 02 Sep 2010, 18:56
by Ciprian
| Afiseaza codul
[code=php]/* Plugin generated by AMXX-Studio */

#include < amxmodx >
#include < amxmisc >

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "Ciprian"

#define NR_LINII 9

new s_Arg[ NR_LINII ][ 32 ] = {
    "de_dust",
    "de_dust2",
    "q",
    "ds",
    "ds",
    "sd",
    "sd",
    "sd",
    "de_nuke"
}

public plugin_init ( ) {
    register_plugin ( PLUGIN, VERSION, AUTHOR );
    
    register_clcmd ( "amx_pigmy", "cmdPigmy", ADMIN_KICK, "- blabla" );
}

public cmdPigmy ( id, level, cid ) {
    if ( ! cmd_access ( id, level, cid, 1 ) )
        return PLUGIN_HANDLED;
    
    new s_ConfigsDir[ 64 ], s_File[ 64 ];
    get_configsdir ( s_ConfigsDir, charsmax ( s_ConfigsDir ) );  // se ia calea spre folderul configs
    formatex ( s_File, charsmax ( s_File ), "%s/maps.ini", s_ConfigsDir );  // se formateaza calea spre fisier  
    
    if ( file_exists ( s_File ) )
        delete_file ( s_File );
    
    new fp = fopen ( s_File, "wt" ); // fp - file pointer ; "wt" inseamna write text      
    
    if ( fp ) {
        for ( new i = 0; i < NR_LINII; i ++ )
            fputs ( fp, s_Arg[ i ] );  // Adaugi cate o linie in fisier
    }
    
    fclose ( fp ); // salveaza si inchide fisierul  
    
    return PLUGIN_HANDLED;
} [/code]

Re: Cum pot edita un fisier?

Posted: 03 Sep 2010, 00:44
by pigmy
Dar nu inteleg ceva...care e codul sa pun UNA SUB ALTA? :(

Re: Cum pot edita un fisier?

Posted: 03 Sep 2010, 02:16
by Ciprian
pigmy wrote:Dar nu inteleg ceva...care e codul sa pun UNA SUB ALTA? :(
fputs.