![Cita]()
Escrito por
alfrosende
probe lo que me dijiste daltomi pero me dice que Dword y dwSize no estan declaradas, si me podes explicar un poco en que comnsiste el codigo que me pasaste o si va algo antes, incluso si hay que agregar alguna libreria especifica.
Lo siento, pero si bien lo hice funcionar en modo consola, no devuelve el Nombre de Usuario,
si lo hace un una Win32 Application, todo en lenguaje C++.
Bien, si puedes guardar los datos que necesitas en un archivo, te muestro como leer dicho archivo utilizando las librerias de C. Nota: el código lee todo el contenido del archivo, que para mi forma de ver es lo mejor, ya que despues puedes trabajar con los datos que están en memoria, que en este caso, se asigna dinámicamente. Muy útil cuando se tratan los archivos por campos con estructuras pre-asignadas.
Código:
//Definición.
long LeerArch(char**);
Ahora la declaración, que cuenta con el nombre del archivo ya definido y se encuentra en el mismo directorio de la aplicación.
Código:
long LeerArch(char** lptrArg)
{
FILE* fp;
long lsize = 0;
if(NULL==(fp=fopen("fichero.txt","r")))
{
//Mensaje Error;
return -1;
}else{
//pos. cursor al final.
fseek(fp,0,SEEK_END);
//tamaño total del archivo.
lsize = ftell(fp);
//pos. cursor al inicio.
rewind(fp);
if(lsize!=0)
{
*lptrArg = (char*)malloc(lsize);
fread(*lptrArg,1,lsize,fp);
}else{
fclose(fp);
return lsize;
}
fclose(fp);
return lsize;
}
return 0;
} Ejemplo de uso en el inicio de la aplicación.
Código:
int main(int argc, char *argv[])
{
char* lptrData=0;
long lsize;
lsize = LeerArch(&lptrData);
//Un tiempo después...
if(lptrData!=0)
{
free(lptrData);
}
return 0;
} La sintaxis de main puede ser diferente de acuerdo a la interfáz de desarrollo que estés utilizando y el compilador.
Los nombre de los encabezados son:
Código:
#include //para malloc
#include //para fopen
Si creas un formato de archivo: "fecha";"nombre", etc. la variable lptrData contendrá dicha cadena, será cuestión de separar la info en una estructura repetitiva. Para mi, es mejor leer de una sóla vez el archivo que hacer sucesivas llamadas de lectura al disco, caracter por caracter o línea por línea.
Saludos