їGuardar y Leer textos? -
The_Scripter_Zero - 01.03.2012
Pues la verdad es que no tengo ni la mбs mнnima idea de como leer un texto de un archivo :S
Lo que tengo pensado es aсadir algo a mi server de pruebas algo para guardar Flotantes, Integrales y Textos y despues Leerlos :S
Por ejemplo:
Guardar: "%s, %s, %f, %f, %f, %f, %d" ((Nombre, Pass, X, Y, Z, A, Skin))
y Leer lo mismo.. No encuentro nada que lo explique :S
Re: їGuardar y Leer textos? -
Harrinston - 01.03.2012
pawn Код:
SaveDate(playerid)
{
new File:handle = fopen("tuarchivo.txt", io_write);
new string[TAMAСO DE LO QUE VAS A GUARDAR], name[MAX_PLAYER_NAME], Float:x, Float:y, Float:z;
GetPlayerName(playerid, name, MAX_PLAYER_NAME);
GetPlayerPos(playerid, x, y, z);
format(string, sizeof(string), "%s, %s, %f, %f, %f, %d", name, variablepass, x, y, z, GetPlayerSkin(playerid));
fwrite(handle, string);
fclose(handle);
return 1;
}
Eso es para guardar, aunque hay mбs mйtodos de hacerlo por otros sistemas y demбs.
Y esto es para cargar:
pawn Код:
LoadMapIcons()
{
new File:handle = fopen("tuarchivo.txt", io_read);
if(fexist("tuarchivo.txt"))
{
new Float:x, Float:y, Float:z, line[256], CountAccounts = 0; // y mбs variables
while(fread(handle, line))
{
if(!unformat(line, "p<SEPARADO>tus variables", variables))
{
//Aquн cargas las variables del jugador asignandole a cada uno la variable determinada que separу el unformat
CountAccounts++;
}
}
fclose(handle);
printf("Fueron cargados %d cuentas desde el archivo 'tuarchivo.txt'.", CountAccounts);
return 1;
}
else return 0;
}
Asн cargaba yo las cosas y las guardaba aunque hace mucho que ya no toco file, estoy usando mбs MySQL. Me duele un poco la cabeza ahora, disculpas si lo hice desordenado o hay algъn error de ortografнa. Me pareciу mбs efectivo ayudarte que no responder nada.
Respuesta: Re: їGuardar y Leer textos? -
The_Scripter_Zero - 01.03.2012
Quote:
Originally Posted by Harrinston
pawn Код:
SaveDate(playerid) { new File:handle = fopen("tuarchivo.txt", io_write); new string[TAMAСO DE LO QUE VAS A GUARDAR], name[MAX_PLAYER_NAME], Float:x, Float:y, Float:z; GetPlayerName(playerid, name, MAX_PLAYER_NAME); GetPlayerPos(playerid, x, y, z); format(string, sizeof(string), "%s, %s, %f, %f, %f, %d", name, variablepass, x, y, z, GetPlayerSkin(playerid)); fwrite(handle, string); fclose(handle); return 1; }
Eso es para guardar, aunque hay mбs mйtodos de hacerlo por otros sistemas y demбs.
Y esto es para cargar:
pawn Код:
LoadMapIcons() { new File:handle = fopen("tuarchivo.txt", io_read); if(fexist("tuarchivo.txt")) { new Float:x, Float:y, Float:z, line[256], CountAccounts = 0; // y mбs variables while(fread(handle, line)) { if(!unformat(line, "p<SEPARADO>tus variables", variables)) { //Aquн cargas las variables del jugador asignandole a cada uno la variable determinada que separу el unformat CountAccounts++; } } fclose(handle); printf("Fueron cargados %d cuentas desde el archivo 'tuarchivo.txt'.", CountAccounts); return 1; } else return 0; }
Asн cargaba yo las cosas y las guardaba aunque hace mucho que ya no toco file, estoy usando mбs MySQL. Me duele un poco la cabeza ahora, disculpas si lo hice desordenado o hay algъn error de ortografнa. Me pareciу mбs efectivo ayudarte que no responder nada.
|
Gracias, pero al final.. їCуmo saco un texto?
Estбn los floatstr() strval() y demбs, pero del include string no se cual es para sacar textos :S
Re: їGuardar y Leer textos? -
LuisGraph - 01.03.2012
Te recomiendo usar djson es mas facil para leer o cargar archivos, y tambiйn contiene cachй a parta de que dispone de una wiki donde puedes ver como funciуna visita
www.dracoblue.net y mira en project, luego localiza djson.
El metodo que usa harriston es lo mismo que hace djson, pero djson te ahorra lineas.
Saludos.
Re: їGuardar y Leer textos? -
Harrinston - 01.03.2012
Para sacar un texto pasalo a una string.
pawn Код:
new string[TAMAСO];
format(string, sizeof(string), "%s", VariableQueAlmacenaElTexto);
Y en la string te queda el texto, si es que te entendн bien lo que querйs hacer es eso. Porque si vos querйs sacar un valor de una string hacйs:
pawn Код:
format(string, sizeof(string), "11424233");
Variable = strval(string);
Respuesta: їGuardar y Leer textos? -
The_Scripter_Zero - 01.03.2012
No quiero usar djson, ni zcmd, ni dcmd ni nada de eso que van sacando, no quiero includes, solo para usar el include de samp, el a_samp.inc, como explica Harrinston..
El problema es que creo que no me entendieron :S
Quiero sacar un texto..
Imaginense que archivo.ini contiene esto:
Код:
Esto es un texto|23|0.0000|0.0000|2.0000|90.0000
"Esto es un texto" es el texto a exportar, o sacar de archivo.ini.
"23" es el skin
Lo demбs son floats..
Pues el 23, que es un nъmero integral(integer) se saca con strval(), y los floats se sacan con floatstr()
Yo lo que busco es una funciуn para sacar "Esto es un texto" del "archivo.ini" y exportarlo a una variable.
Simplemente pido la funciуn o lo necesario, espero que me hayan entendido.
Respuesta: їGuardar y Leer textos? -
Jovanny - 01.03.2012
LOL, Harrinston te dejo el cуdigo nada mбs para que tu cambiaras unas cosas
pawn Код:
new File:handle = fopen("tuarchivo.txt", io_read);
if(fexist("tuarchivo.txt"))
{
new line[256],tmp[128],tmp2,Float:tmp3,Float:tmp4,Float:tmp5,Float:tmp6;
while(fread(handle, line))
{
if(!unformat(line, "p<|>s[256]dffff", tmp,tmp2,tmp3,tmp4,tmp5,tmp6))
{
//Aquн las variables tmp almacenan la info
// Donde tmp se guarda el texto, donde tmp2 se guarda el numero despuйs del texto y asн sucesivamente, estбn segun el orden del ejemplo que tu pusiste
}
}
fclose(handle);
}
EDIT: Aclaro que para que ese cуdigo funcione debes usar sscanf2
Re: їGuardar y Leer textos? -
Harrinston - 01.03.2012
Era mбs simple explicarlo asн desde el principio.
pawn Код:
new File:handle = fopen("archivo.txt", io_read);
if(fexist("archivo.txt"))
{
new line[128], text[128];
while(fread(handle, line))
{
if(!unformat(line, "p<|>s[128]", text))
{
//Acб hacйs lo que quieras, el texto ya estб en la variable text.
}
}
fclose(handle);
return 1;
}
Y si no querйs usar sscanf, simplemente lo spliteбs con split, pero te recomiendo usar sscanf porque es mбs rбpido y mбs efectivo.
EDIT: Como dijo Josta, estб mбs fбcil imposible, sуlo tienes que cambiarle el archivo a mi cуdigo y hacer lo que quieras con la variable que has sacado.
Re: їGuardar y Leer textos? -
LuisGraph - 01.03.2012
Ohhhh ya entendi xD, como te lo deja harriston es.
Respuesta: їGuardar y Leer textos? -
[Nikk] - 01.03.2012
De aca yo aprendi casi todo, es mas facil de lo que parece
https://sampwiki.blast.hk/wiki/File_Functions