Viernes 15 de Noviembre de 2024, 03:09
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Re: Problema Al Cargar Texto De Un Fichero
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Re: Problema Al Cargar Texto De Un Fichero (Leído 2472 veces)
krouz
Nuevo Miembro
Mensajes: 11
Re: Problema Al Cargar Texto De Un Fichero
«
en:
Miércoles 28 de Abril de 2004, 13:40 »
0
Buenas a todos de nuevo;
Para los visitantes asiduos que me ayudaron en otra ocasión, quizá recuerden ese proyecto de ajedrez en "C" que empecé hace tiempo. Pues bien, el tema es que lo he llevado adelante y está bastante avanzado.
Pero no todo es tan fácil, y a la hora de meter en un fichero ".dat" el contenido de dos arrays, luego no consigo extraerlos apra su posterior uso. Ya sé que me explico mal, en resumen es esto:
Tengo un array de 8x8 numérico y quiero guardarlo en un fichero, y posteriormente poder cargarlo de nuevo en el mismo array. Si alguien me lo revisa se lo agradeceré. Adjunto el fichero:
PD: Cambien la ruta de guardado.
Un saludo, seguiré mirandolo detenidamente
.
El mensaje contiene
1 archivo adjunto
. Debes
ingresar
o
registrarte
para poder verlo y descargarlo.
Tweet
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
Re: Problema Al Cargar Texto De Un Fichero
«
Respuesta #1 en:
Miércoles 28 de Abril de 2004, 17:16 »
0
Código: Text
//creando fichero
if((fsave=fopen("c:/tc/unai/dats/save.dat","a+b"))==NULL)
{
printf("\nError de permiso de escritura en disco.");
getch();
exit(0);
}
fclose(fsave);
//sobreescribiendo fichero
fopen("c:/tc/unai/dats/save.dat","r+b");
Aca esta creando, cerrando y volviendo a abrir el archivo..
con hacer esto seria suficiente:
Código: Text
if((fsave=fopen("c:/tc/unai/dats/save.dat","a+b"))==NULL)
{
printf("\nError de permiso de escritura en disco.");
getch();
exit(0);
}
ya que en modo 'a' crea o sobrescribe un archivo.
por otro lado creo que no se coloca el '+' es decir solo queda 'ab'.
----
fread(&fsave,sizeof(rsave),1,fsave);
esto esta mal!!!
fsave es un apuntador al archivo asi que colocarlo al final esta bien..
pero al comienzo?.. para que lo unico que harias seria sobreescribir el apuntador del archivo ocn el contenido de si mismo!!!
para fread el primer parametro es el buffer es decir una variable donde almacenaras lo que leas desde el archivo:ejemplo:
---archivo plano de texto---jk.txt
hola
-------
Código: Text
int main()
{
FILE *f;
char p[4];
f=fopen("jk.txt","r");
fread(p,sizeof(char)*4,f);
printf("archivo: %s",p);
return 0;
}
deben de haber mas errores pero con esto es suficiente por el momento.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
krouz
Nuevo Miembro
Mensajes: 11
Re: Problema Al Cargar Texto De Un Fichero
«
Respuesta #2 en:
Miércoles 28 de Abril de 2004, 19:25 »
0
Primero de todo, muchas gracias por interesarte JuanK, te lo agradezco mucho, pues se trata de mi proyecto de fin de curso y estoy todos los días con él.
Por supuesto este es sólo el fragmento de salvado y cargado de partida, el resto de código es más sencillo.
Con los errores que he revisado y me has dicho creo que no he arreglado nada
. Resulta que le he mostrado el problema a mi profesora, ha estado hora y media cambiando el código, agregando fseek y demás opciones que comentabas, y ni aún así ella lo ha conseguido. Me parece extraño, pues la profesora debiera haberlo solucionado a mi parecer
.
Como veo que esto me traerá más quebraderos, y viendo que has leido mi código, te pediría por favor que me posteases un código lo más breve posible para guardar los datos de dos arrays en un fichero .dat y para cargarlos posteriormente en sus respectivas matrices. Pero no quiero abusar de su ayuda, con lo que con el pseudocódigo me sería suficiente, tengo ganas de que funcione prontito.
Un saludo, y gracias
.
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
Re: Problema Al Cargar Texto De Un Fichero
«
Respuesta #3 en:
Miércoles 28 de Abril de 2004, 20:05 »
0
ME EXTRAÑA QUE UN PROFESOR TENGA PROBLEMAS CON ESO!!!!!!!!
BUENO REALMENTE NO ME EXTRAÑA....
escribir
Código: Text
#include <stdio.h>
int main()
{
char ar[5]{'a','b','c','d'};
FILE *f;
if(f = fopen("file.txt","at+")!=NULL)
{
fwrite(ar,sizeof(ar),1,f);
fclose(f);
}
else
{
return 0;
}
return 1;
}
leer
Código: Text
#include <stdio.h>
int main()
{
char ar[5];
FILE *f;
memset(ar,'\0', sizeof(ar));
if(f = fopen("file.txt","t+")!=NULL)
{
fread(ar,sizeof(ar),1,f);
printf("esto se leyo del archivo : %s",ar);
getch();
fclose(f);
}
else
{
return 0;
}
return 1;
}
como se abrio el archivo con 'a'.. no se requiere usar fseek para mover el apuntador, ya que este siempre se reposiona al final del archivo... ademas cmomo solo vas a esacribiur una variable en el ejemplo.. pues menos se necesita fseek
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
krouz
Nuevo Miembro
Mensajes: 11
Re: Problema Al Cargar Texto De Un Fichero
«
Respuesta #4 en:
Jueves 29 de Abril de 2004, 21:50 »
0
Gracias por intentar ayudar de nuevo, me estudiaré esas líneas de código que me has escrito.
Espero solucionarlo en breve, nos vemos
.
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
Re: Problema Al Cargar Texto De Un Fichero
«
Respuesta #5 en:
Jueves 29 de Abril de 2004, 21:57 »
0
cometi un error en el codigo de leer , ya lo corregí.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io
Rataman
Miembro activo
Mensajes: 45
Re: Problema Al Cargar Texto De Un Fichero
«
Respuesta #6 en:
Viernes 30 de Abril de 2004, 01:47 »
0
tu problema es k usas mal tanto fwrite como fread.
seria algo asi:
Código: Text
FILE *puntero;
struct...
...
... //resto del codigo
fwrite(&rsave,sizeof(rsave),1,puntero);
//y en el caso de fread si k necesitas fseek.
fseek(puntero,posicion*sizeof(rsave),0);
fread(&rsave,posicion*sizeof(rsave),1,puntero);
//el valor de la variable posicion dependera d como tengas
//organizado tu fichero
un consejo, a la estructura no la llames tan parecida al puntero,te confundiras...
si necesitas ayuda, puedes contactar por email (
rtmpel@hotmail.com
)
yo tb estoy haciendo un proyecto con ficheros
AbBaDoN
Nuevo Miembro
Mensajes: 13
Re: Problema Al Cargar Texto De Un Fichero
«
Respuesta #7 en:
Sábado 15 de Mayo de 2004, 23:16 »
0
El problema que he visto en el codigo es que usas mal los modos de apertura de los archivos. Como regla simple, los modos en funcion de lo que se requiere serian:
"rb" - Solo lectura
"wb" - Creacion de archivo
"rb+" - Modificacion de un archivo existente
La "b" es para poder abrir sin importar si es un archivo de caracteres o en codigo ejecutable. La tercera opcion "rb+" es muy buena porque si el archivo no existe da error. Jamas he usado el modo "a" en ningun caso, ya que el inicio del archivo no puede ser modificado ni accesado, por lo que me parece un modo bastante inutil a los problemas que he tenido.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Re: Problema Al Cargar Texto De Un Fichero