06.05.2014, 18:10
(
Последний раз редактировалось Swedky; 09.05.2014 в 21:05.
)
Hola.
En este tutorial estoy decidido a explicarle el uso de las funciones de los archivos. Con ellos se pueden hacer muchas cosas, y aprenderlo es muy ъtil. Por ejemplo, usarlos y adaptarlos a tu GM para cargar datos para el jugador, que es mucho mбs fбcil y mбs rбpido que usar cualquier otro .inc.
Tengan en cuenta que esto tiene 4 modos de usarlo, los cuales son:
Ahora en nuestro archivo:
Ahora escribiremos algo mбs en йl:
Y en nuestro archivo encontraremos:
Esta funciуn devuelve '1' si el archivo se borrу correctamente, caso contrario devuelve '0' si la ruta es invбlida o no tiene permisos para borrar dicho archivo.
Esta funciуn tiene 3 modos, los cuales son:
Imagen:
(palito negro = fichero).
En nuestra cadena almacenada encontraremos:
Si queremos quitar el '\r\n', bastarб con hacer esto:
Y ahora la cadena serб:
Para leer lнnea por lнnea, usamos 'fread'. Ejemplo:
Imagen:
Y en nuestro archivo encontraremos:
Bueno, creo que he explicado lo necesario como para entender. He tratado de resumirlo lo mas posible, asн que si encuentran algъn error o tienen alguna duda, estoy a su disposiciуn .
En este tutorial estoy decidido a explicarle el uso de las funciones de los archivos. Con ellos se pueden hacer muchas cosas, y aprenderlo es muy ъtil. Por ejemplo, usarlos y adaptarlos a tu GM para cargar datos para el jugador, que es mucho mбs fбcil y mбs rбpido que usar cualquier otro .inc.
- fopen
pawn Код:
public OnGameModeInit()
{
if(!fexist("Test.txt")) // Verificamos que en 'scriptfiles' no existe el archivo 'Test' con la extensiуn 'txt'.
{
// Recuerden que deben aсadirle el tag 'File'.
new File:INI = fopen("Test.txt", io_write); // Abrimos el archivo 'Test.txt'. Como en este caso no existe, se crearб.
fwrite(INI, "Password = Tutorial\r\n"); // El '\r\n' es para escribir una nueva lнnea en el archivo.
fclose(INI); // Cerramos el archivo.
}
return 1;
}
Tengan en cuenta que esto tiene 4 modos de usarlo, los cuales son:
- io_read - Abrirб el archivo para leer su contenido.
- io_write - Abrirб el archivo para escribir algo en йl. Tambiйn borrarб todo lo que tiene adentro (lo deja vacнo)
- io_readwrite - Lee el archivo o lo crea.
- io_append - Esto abrirб el archivo para escribir algo en йl, pero no dejarб vacнo al archivo, sino que seguirб escribiendo en йl.
- io_read
pawn Код:
// Supondremos que en el archivo 'Test.txt', la primera lнnea es: Password = Tutorial\r\n
public OnGameModeInit()
{
new File:INI = fopen("Test.txt", io_read);
if(INI) // Como 'fopen' devuelve '1' si el archivo abriу exitosamente, aquн verificaremos que lo hizo (en caso contrario devuelve '0').
{
new save[27]; // Estas variable almacenarб toda la lнnea.
fread(INI, string); // Luego explicarй sobre 'fread' - Ahora la variable 'save' serб 'Password = Tutorial\r\n'.
printf("* INI: %s", string);
// En la consola dirб: * INI: Password = Tutorial
}
return 1;
}
- io_write
pawn Код:
public OnGameModeInit()
{
new File:INI = fopen("Test.txt", io_write); // Al hacer esto, 'Password = Tutorial\r\n' serб borrado del archivo.
if(INI)
{
fwrite(INI, "Password = Tutorial\r\n");
fwrite(INI, "IP = 255.255.255\r\n");
// No es necesario aсadir '\r\n' a la ъltima lнnea del archivo.
fclose(INI);
}
return 1;
}
Код:
Password = Tutorial IP = 255.255.255
- io_append
Код:
Password = Tutorial IP = 255.255.255
pawn Код:
public OnGameModeInit()
{
new File:INI = fopen("Test.txt", io_append); // Abrirб la ъltima lнnea del archivo para escribir en ella.
if(INI)
{
fwrite("AdminLevel ="); // En el archivo: AdminLevel =
fwrite(" 10"); // Aquн seguiremos escribiendo en la lнnea que estб posicionado el fichero en el archivo.
fclose(INI);
}
return 1;
}
Код:
Password = Tutorial IP = 255.255.255 AdminLevel = 10
- fread
pawn Код:
public OnGameModeInit()
{
new File:INI = fopen("Test.txt", io_read);
if(INI)
{
new string[3][27];
fread(INI, string[0], 28); // Leemos la primera lнnea del archivo - 'save[0]' ahora es: Password = Tutorial\r\n - El '28' (tercer argumento/parбmetro) hace referencia a la cantidad de bytes que se leerб en la lнnea.
fread(INI, string[1]); // Leemos la segunda lнnea del archivo - 'save[1]' ahora es: IP = 255.255.255\r\n
fread(INI, string[2]); // Leemos la segunda lнnea del archivo - 'save[2]' ahora es: AdminLevel = 10
fclose(INI);
}
return 1;
}
- fwrite
- fremove
Esta funciуn devuelve '1' si el archivo se borrу correctamente, caso contrario devuelve '0' si la ruta es invбlida o no tiene permisos para borrar dicho archivo.
- fseek
Esta funciуn tiene 3 modos, los cuales son:
- seek_start - Ajustar el fichero desde el principio del archivo.
- seek_current -Ajustar el fichero desde la posiciуn actual que se estб leyendo en el archivo.
- seek_end - Ajustar el fichero al final del archivo.
pawn Код:
public OnGameModeInit()
{
new File:INI = fopen("Test.txt", io_read);
if(INI)
{
new string[11];
fseek(INI, 11, seek_start); // Posicionamos el fichero al caracter nъmero '11' de la prнmera lнnea. En este caso: (vean la imagen de abajo).
fread(INI, string); // Aquн leera toda la lнnea desde en donde posicionamos el fichero.
fclose(INI);
}
return 1;
}
(palito negro = fichero).
En nuestra cadena almacenada encontraremos:
Код:
Tutorial\r\n
pawn Код:
string[strlen(string)] = '\0'; // '\0' es para vaciar el carбcter - Limpiarб el ъltimo.
string[strlen(string)-1] = '\0'; // Limpiarб el ante-ъltimo.
// '\r' o '\n' ocupan un carбcter.
Y ahora la cadena serб:
Код:
Tutorial
pawn Код:
public OnGameModeInit()
{
new File:INI = fopen("Test.txt", io_read);
if(INI)
{
new string[11];
fread(INI, string); // Leemos la primera lнnea.
fread(INI, string); // Pasamos a la segunda lнnea.
fseek(INI, 13, seek_current); // Ahora el fichero estarб posicionado aquн: (vean la imagen de abajo).
fclose(INI);
}
return 1;
}
- Editar y guardar.
pawn Код:
public OnGameModeInit()
{
new File:INI = fopen("Test.txt", io_read); // Abrimos el archivo para leerlo.
if(INI)
{
new string[3][27];
fread(INI, string[0]); // Leemos la primera lнnea y guardamos su valor.
fread(INI, string[1]); // Pasamos a la segunda lнnea, la leemos y la guardamos.
fread(INI, string[2]); // Pasamos a la tercer lнnea, la leemos y la guardamos.
fclose(INI); // Aquн lo cerramos para volverlo a abrir, pero esta vez para escribir en йl.
strdel(string[1], 0, 27); // Vaciamos toda la cadena.
strins(string[1], "IP = 126.124.1.21\r\n", 0);ґ// Ahora la cadena 'string[1]' serб: IP = 126.124.1.21\r\n
INI = fopen("Test.txt", io_write); // Ahora escribiremos la informaciуn guardada.
fwrite(INI, string[0]);
fwrite(INI, string[1]);
fwrite(INI, string[2]);
fclose(INI);
}
return 1;
}
Y en nuestro archivo encontraremos:
Код:
Password = Tutorial IP = 126.124.1.21 AdminLevel = 10
Bueno, creo que he explicado lo necesario como para entender. He tratado de resumirlo lo mas posible, asн que si encuentran algъn error o tienen alguna duda, estoy a su disposiciуn .