Jump to content
  • 0

pomoc čitanie file


Firess0

Dotaz

čau učím sa teraz ukládat cez file.inc a mam taky problem keď zapišem niečo do suboru a chcem to cez format načitať, tak to nejde.  

 

tu mam ukládanie cez dialog inputtext.

if(dialogid == 9951)
{
if(response == 1)
{
new File:subor = fopen("subor.txt", io_write);
if (subor)
{
	fwrite(subor, inputtext);
	fclose(subor);
}
}
else if(response == 0)
{
}
}

toto ešte ide ale ak chcem načitať to čo som zapisal cez toto:

if(dialogid == 9952)
{
if(response == 1)
{
if(listitem == 0)
{
new File:subor = fopen("subor.txt", io_read);
new string[128];
new ab;
fread(subor, string);
format(ab, sizeof(ab), "Napisal si: %s %s", string, fgetchar(subor, false));
SendClientMessage(playerid, 1, ab);
fclose(subor);
}
}
}

tak mi vyhodi tieto chyby.

 : error 035: argument type mismatch (argument 1)

: error 035: argument type mismatch (argument 1)
Chyba je v   format(ab, sizeof(ab), "Napisal si: %s %s", string, fgetchar(subor, false));
Edited by Firess0
Link to comment
Share on other sites

9 odpovědí na tuto otázku

Recommended Posts

  • 0


new File:subor = fopen("subor.txt", io_read);
new string[128];
new ab[128];
if(soubor)
{
while(fread(subor, string))
{
format(ab, sizeof(ab), "Napsal si: %s", string);
SendClientMessage(playerid, 1, ab);
}
}
fclose(subor);

 

Edited by MackoLuky
Link to comment
Share on other sites

  • 0

diky a neporadil by si mi ešte ako mam urobiť toto aby mi pisalo v tomu subore.txt info o hračovi napr.

 

money = 1000

vehicleXYZ = 1, 154, 156

VIP = 1

 

Chcem vedieť to ako pridať pred napr. suradice vozidla vehicle = + ešte ako načitať určity riadok napr. keby som chcel načitať vehicleXYZ 

Link to comment
Share on other sites

  • 0

To je tzv. INI zapisovanie:

 

key (name) = value

 

No bohužiaľ, s includom File samotným to nemôžeš urobiť, no môžeš si urobiť stále vlastné funkcie, ktoré by takto vedeli pracovať, no myslím, že by si mal jednoduchšie, keby si si rovno nejaký INI includ stiahol, je ich niekoľko, napr Y_INI, DOF2, dini...

Edited by Sanios
Link to comment
Share on other sites

  • 0

Aha ok diky ja použivam file lebo najmenej zaťažuje server

Aha ok diky ja použivam file lebo najmenej zaťažuje server

A nepreformoval by si mi ten kod na ukladanie z file do y_ini aby som mal niejaky priklad že to y_ini pochopim.

 

Ďakujem.

Link to comment
Share on other sites

  • 0

Nedá sa to len tak preformovať :d, y_ini má svoj kód napísaný a všetky svoje funkcie sú urobené tak aby vedeli prečítať/zapisovať podľa toho INI formátu súboru pomocou includu File.

 

Jediný spôsob, ako môžeš zistiť ako to funguje, pozri návod na SA:MP fóre:

http://forum.sa-mp.com/showthread.php?t=570957

Edited by Sanios
Link to comment
Share on other sites

  • 0

Ok diky

A keby si bol taky dobry tak mi prosim urob to ukladanie (priklad) na to že mi to do suboru uloži tak:

Money = 100

Vip = 1

 

A potom jak mam načitať ten riadok z vip

 

Ja sa pokusim pochopitbten navod

Link to comment
Share on other sites

  • 0

if(subor)
{
while(fread(subor, string))
{
if(!strcmp(string, "money", true, 5)) // zistím či riadok začína slovom MONEY (na velkosti písmen nezáleží, ak chceš aj velkosť písmen tak miesto TRUE daj FALSE)

{

strdel(string, 0, 6); // zo stringu obsahujúceho "money=500" (500 je príklad) zmažem znaky na pozíciach 0 až 6 (6 je "=")

// teraz premenná string obsahuje "500"... čo dokážeš pomocou strval premeniť na integer

}
}
}

 

 

PS: Ale úprimne, nemyslím si že je toto to najlepšie riešenie, pretože pokial tam budeš mať 50 dát ktoré budeš chcieť čítať, tak budeš musieť tento postup zopakovať 50*50 čo máš cyklus o 2500 počte, pre každého hráča :d a to počítam len príklad s najrýchlejším riešením, ktoré ma napadlo no teba nemusí

Edited by Quiter
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...