File unutar File

Započeo Goku ^, Februar 22, 2024, 20:07:19 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Pitanje/savet: Kako mogu napraviti da kada admin dodeli permisiju adminu da server kreira folder (imam uradjeno preko dir_create) sa imenom igraca i da unutra kreira posebno falj za za svaku permisiju dodeljenu?
Opširnije: Zelim napraviti komandu /lastset id za gledanje davanja/skidanja permisija adminima, gde kada admin ukuca /lastset id da mu izbaci primer ako je dozvolio "Permisija Dozvolio Admin Vreme" ako je skinuo "Permisija Skinuto Admin Vreme Razlog" i tu ce pisati istorija setanja permisija igracu i samim tim kada izabere neki da mu otvori novi dialog gde ce mu pisati isto to i skroz dole ce imati ne znam dodeli/oduzmi. I zbog toga zelim da napravim da kreira file sa imenom admina i da unutar za svako setanje permisija kreira fail nzm 0.ini i unutra ispise sve podatke to je jest "Vreme, Permisija, Dovolio/Oduzeo Datum" itd itd.

Pa samo kreiraj file sa nazivom u tom njegovom folderu i upisi parametre ?

Citat: naithdefacto poslato Februar 22, 2024, 21:07:24 POSLE PODNE
Pa samo kreiraj file sa nazivom u tom njegovom folderu i upisi parametre ?
Da mogu i kada bi htelo ne bi kacio ovde?

samo mysql
Upwork Skills
Back-end:
• PHP Frameworks (Laravel, Symfony,Codeigniter)
• Python/Django
• Node.js

Front-end:
• HTML
• CSS pre-processing (SASS, LESS)
• Javascript (JQuery, Ajax, Vue, Angular, React, etc.)
• Bootstrap

CMS
• Wordpress (Woocommerce)
• Shopify, Magento


[pawn]CMD:addtext(playerid, params[])
{
    new text[128]; // Povećao sam veličinu za slučaj dužih ulaznih tekstova
    new playername[25];
    GetPlayerName(playerid, playername, sizeof(playername));

    if(sscanf(params, "s[128]", text))
    {
        SendClientMessage(playerid, -1, "(KORISCENJE) {FFFFFF}/addtext (text)");
        return 0; // Izlazimo iz funkcije jer nije unesen tekst
    }

    // Dodajemo novi red na kraju teksta da bi svaki sledeci bio ispod
    new finalText[128];
    format(finalText, sizeof(finalText), "%s\n", text);

    // Kreiramo ili ažuriramo .ini datoteku
    new filename[25];
    format(filename, sizeof(filename), "%s.ini", playername);

    new filehandle = fopen(filename, io_append); // Otvaramo datoteku u načinu dodavanja
    if(filehandle != -1)
    {
        // Upisujemo tekst u datoteku
        fwrite(filehandle, finalText);

        // Zatvaramo datoteku
        fclose(filehandle);

        // Obaveštavamo igrača da je tekst dodat
        SendClientMessage(playerid, -1, "Vaš tekst je uspešno dodat u .ini datoteku!");
    }
    else
    {
        // Ako datoteka nije uspela da se otvori
        SendClientMessage(playerid, -1, "Došlo je do greške prilikom pristupanja .ini datoteci!");
    }
    return 1;
}[/pawn]

ovako na ovaj način jedino da pokušaš ovo je samo kao test da se kreira fajl na ime onoga ko je koristio komandu i unosi text koji je napisao svaki jedan ispod drugoga, mada mjesta ima mnogo za bolje ali ovo je neki pravac

ugavnom testirano radi
Poslednja Izmena: Februar 23, 2024, 00:25:58 PRE PODNE od sexeniiosi
Upwork Skills
Back-end:
• PHP Frameworks (Laravel, Symfony,Codeigniter)
• Python/Django
• Node.js

Front-end:
• HTML
• CSS pre-processing (SASS, LESS)
• Javascript (JQuery, Ajax, Vue, Angular, React, etc.)
• Bootstrap

CMS
• Wordpress (Woocommerce)
• Shopify, Magento

Citat: sexeniiosi poslato Februar 23, 2024, 00:22:13 PRE PODNE
[pawn]CMD:addtext(playerid, params[])
{
    new text[128]; // Povećao sam veličinu za slučaj dužih ulaznih tekstova
    new playername[25];
    GetPlayerName(playerid, playername, sizeof(playername));

    if(sscanf(params, "s[128]", text))
    {
        SendClientMessage(playerid, -1, "(KORISCENJE) {FFFFFF}/addtext (text)");
        return 0; // Izlazimo iz funkcije jer nije unesen tekst
    }

    // Dodajemo novi red na kraju teksta da bi svaki sledeci bio ispod
    new finalText[128];
    format(finalText, sizeof(finalText), "%s\n", text);

    // Kreiramo ili ažuriramo .ini datoteku
    new filename[25];
    format(filename, sizeof(filename), "%s.ini", playername);

    new filehandle = fopen(filename, io_append); // Otvaramo datoteku u načinu dodavanja
    if(filehandle != -1)
    {
        // Upisujemo tekst u datoteku
        fwrite(filehandle, finalText);

        // Zatvaramo datoteku
        fclose(filehandle);

        // Obaveštavamo igrača da je tekst dodat
        SendClientMessage(playerid, -1, "Vaš tekst je uspešno dodat u .ini datoteku!");
    }
    else
    {
        // Ako datoteka nije uspela da se otvori
        SendClientMessage(playerid, -1, "Došlo je do greške prilikom pristupanja .ini datoteci!");
    }
    return 1;
}[/pawn]

ovako na ovaj način jedino da pokušaš ovo je samo kao test da se kreira fajl na ime onoga ko je koristio komandu i unosi text koji je napisao svaki jedan ispod drugoga, mada mjesta ima mnogo za bolje ali ovo je neki pravac

ugavnom testirano radi
Napravio sam da kreira folder preko dir_create i napravio sam unutar tog dira file_create u sustini napravio sam to sto sam hteo znaci kreira od 0 do klk god u svaki falj znaci sam taj kod da kreira file unutar file radi ALI kada sada udjem ig da proverim ispise mi i moje i tudje (SVE) testirao sam sa mog i preko sand box drugi acc i radi lepo kreira falj na moje ime i na njegovo i nzm kod mene ima od 0 do 8 kod njega 0 15 lupam ali kada sad pregledam ispise mi i mojih 15 i njegovih 8 i ako treba samo mojih 8 da prikaze. Trenutno mi je to problem sto ne prikazuje samo moj nego i tudji .
Poslednja Izmena: Februar 23, 2024, 01:38:37 PRE PODNE od Goku ^

da kreira file unutar file radi //ti si uradio nešto što niko nije svaka čast
Upwork Skills
Back-end:
• PHP Frameworks (Laravel, Symfony,Codeigniter)
• Python/Django
• Node.js

Front-end:
• HTML
• CSS pre-processing (SASS, LESS)
• Javascript (JQuery, Ajax, Vue, Angular, React, etc.)
• Bootstrap

CMS
• Wordpress (Woocommerce)
• Shopify, Magento

Citat: sexeniiosi poslato Februar 23, 2024, 13:06:21 POSLE PODNE
da kreira file unutar file radi //ti si uradio nešto što niko nije svaka čast

Tehnicki nije pogresno rekao, termin file in file se koristi za .file za genericno cuvanje fajlova.

Citat: naithdefacto poslato Februar 23, 2024, 13:20:13 POSLE PODNE
Tehnicki nije pogresno rekao, termin file in file se koristi za .file za genericno cuvanje fajlova.

:D :-[



[pawn]CMD:viewtext(playerid, params[])
{
    // Provjera je li uneseni parametri
    if (!strlen(params))
    {
        SendClientMessage(playerid, -1, "Upotrijebi: /viewtext [ImeIgraca]");
        return 0;
    }

    new filename[24];
    format(filename, sizeof(filename), "%s.ini", params);

    // Provjera postoji li datoteka
    if (!fexist(filename))
    {
        SendClientMessage(playerid, -1, "Datoteka nije pronađena za odabrano ime igrača.");
        return 0;
    }

    new filehandle = fopen(filename, io_read);
    if(filehandle != -1)
    {
        new dialogText[128];
        dialogText[0] = EOS;

        new line[128];
        new lines[10][128];
        new lineCount = 0;

        while (fread(filehandle, line, sizeof(line)) > 0 && lineCount < 10)
        {
            new lineLength = strlen(line);
            new i = 0;
            while(i < lineLength && i < 128) {
                lines[lineCount] = line;
                i++;
            }
            lines[lineCount] = EOS;
            lineCount++;
        }

        fclose(filehandle);

        for (new i = max(0, lineCount - 10); i < lineCount; i++)
        {
            strcat(dialogText, lines);
            strcat(dialogText, "\n");
        }

        ShowPlayerDialog(playerid, DIALOG_TEXT, DIALOG_STYLE_MSGBOX, "Posljednjih 10 linija teksta", dialogText, "Zatvori", "");
    }
    else
    {
        SendClientMessage(playerid, -1, "Došlo je do greške prilikom pristupanja .ini datoteci.");
    }
    return 1;
}[/pawn]

otprilike si ovo trazio napravljeno je za izvlacenje 10 linija iz fajla igraca cije ime uneses
Upwork Skills
Back-end:
• PHP Frameworks (Laravel, Symfony,Codeigniter)
• Python/Django
• Node.js

Front-end:
• HTML
• CSS pre-processing (SASS, LESS)
• Javascript (JQuery, Ajax, Vue, Angular, React, etc.)
• Bootstrap

CMS
• Wordpress (Woocommerce)
• Shopify, Magento

Prvo, mozes da koristis ini sistem za dozvole, a obican fajl da logujes sva skidanja/dodjeljivanja.

Drugo, koristi SQL, mocniji je i jako lako ces moci raditi bolesne stvari, tipa izbrisi sve izmjene koje je radio admin X u zadnjih XX dana...

Citat: Bit Frosty poslato Februar 23, 2024, 21:58:04 POSLE PODNE
Prvo, mozes da koristis ini sistem za dozvole, a obican fajl da logujes sva skidanja/dodjeljivanja.

Drugo, koristi SQL, mocniji je i jako lako ces moci raditi bolesne stvari, tipa izbrisi sve izmjene koje je radio admin X u zadnjih XX dana...
Znam da je SQL abnormno mocniji i da mogu raditi svakakve bolesne stvari ali onda realno cu morati 90% koda da reworkujem (kao da pravim novu) za sta treba dosta vremena a zbog fakulteta i ostalog nemam toliko, vec duze vreme zelim da predjem i razmisljam o tome al nikako da odvojim vreme :D zato se mucim.

Citat: Goku ^ poslato Februar 24, 2024, 00:03:40 PRE PODNE
Znam da je SQL abnormno mocniji i da mogu raditi svakakve bolesne stvari ali onda realno cu morati 90% koda da reworkujem (kao da pravim novu) za sta treba dosta vremena a zbog fakulteta i ostalog nemam toliko, vec duze vreme zelim da predjem i razmisljam o tome al nikako da odvojim vreme :D zato se mucim.
Da li je bolje da sve prebacis? Vjerovatno.
Da li moras? Naravno da ne...

Niko tebi ne brani da te stvari ucitavas iz SQL umjesto iz nekog ini ili textualnog fajla, dok sve ostalo da ti ostane kako jeste...

Sada prebacis samo accounte u SQL, a kad imas vise vremena i ostalo?

Potrazi ini to sql, mislim da je @bunta to skoro nasao, nisam siguran