Viernes 1 de Noviembre de 2024, 09:34
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 Específica
»
Matlab
»
por que me da error al intentar abrir el archivo??
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: por que me da error al intentar abrir el archivo?? (Leído 3175 veces)
Jessi
Nuevo Miembro
Mensajes: 15
por que me da error al intentar abrir el archivo??
«
en:
Jueves 30 de Abril de 2009, 09:56 »
0
me podeis ayudar con el siguiente codigo??
function suma
fid = fopen('archivo.m','r');
while feof(fid) == 0
filename = fgetl(fid);
disp(filename)
fid2=fopen('filename')
end
fclose(fid);
end
el archivo.m contiene lo siguiente:
'2006060200522900dBZ.vol.ascii'
'2006060201022900dBZ.vol.ascii'
lo que me pasa es q el segundo fopen (el de dentro del while) me devuelve un -1, es decir, un error y no se abre el archivo con nombre '2006060200522900dBZ.vol.ascii'.
Me podeis ayudar???
muchisimas gracias
Tweet
allisap
Miembro MUY activo
Mensajes: 259
Nacionalidad:
Re: por que me da error al intentar abrir el archivo??
«
Respuesta #1 en:
Jueves 30 de Abril de 2009, 17:35 »
0
si tu archivo .m solo tiene esas dos lineas de texto, ¿no es mas facil leerlar directamente?
es decir hacer esto
fid = fopen('2006060200522900dBZ.vol.ascii','r');
fid2 = fopen('2006060201022900dBZ.vol.ascii','r');
saludos
Victor Pasilla Campos
Jessi
Nuevo Miembro
Mensajes: 15
Re: por que me da error al intentar abrir el archivo??
«
Respuesta #2 en:
Jueves 30 de Abril de 2009, 17:52 »
0
Primero de todo, gracias por contestar.
Este es un ejemplo, el archivo seran unas 100 lineas. Lo q pasa q para hacer pruebas y ver si funciona solo he puesto 2. Por eso queria leerlas del archivo aparte, y asi hacer un bucle en el programa principal.
un saludo
allisap
Miembro MUY activo
Mensajes: 259
Nacionalidad:
Re: por que me da error al intentar abrir el archivo??
«
Respuesta #3 en:
Jueves 30 de Abril de 2009, 20:48 »
0
ah ok...
bueno, lo primero que veo es que el segundo fopen no tiene los atributos de lectura, segundo
dices que son 100 nombres de archivo diferentes, y la apertura de archivo la estas realizando dentro de un ciclo while
pero cierras el archivo fuera del ciclo por lo que solo vas a cerrar el ultimo, y los otros 99 van a seguir abiertos, esta no es
una buena practica, es mejor que abras un archivo operes sobre el, y luego lo cierres,
por ultimo el -1 indica que no pudo abrir el archivo primero verifica que esta en la misma carpeta y que el nombre de archivo sea correcto.
espero te sirva
Saludos
Victor Pasilla Campos
Jessi
Nuevo Miembro
Mensajes: 15
Re: por que me da error al intentar abrir el archivo??
«
Respuesta #4 en:
Viernes 1 de Mayo de 2009, 15:13 »
0
Gracias otra vez.
Miraré bien esas cosas, aunque creo que los nombres estan bien puestos.
Y una cosa: si cierro el archivo donde están los 100 nombres cada vez que corre el while, ¿puedo unsar la función fgtel? Porque esta función va línea a línea, ¿no?
Bueno, a ver si miro esas cositas y te comento. Me está volviendo loca esto, porque una vez que solucione esto el resto del programa que tengo que hacer es fácil (o eso creo, jeje).
Muchas gracias de verdad.
Saludos victor
Jessi
Nuevo Miembro
Mensajes: 15
Re: por que me da error al intentar abrir el archivo??
«
Respuesta #5 en:
Martes 5 de Mayo de 2009, 12:03 »
0
hola!
he comprobado que los nombres estan bien, he añadido los atributos correspondientes al fopen, ... y nada.
estoy un poco desesperada...
Jessi
Nuevo Miembro
Mensajes: 15
Re: por que me da error al intentar abrir el archivo??
«
Respuesta #6 en:
Martes 5 de Mayo de 2009, 12:06 »
0
el caso es que si lo pongo asi, no me da error:
function suma
fid = fopen('archivo.m','r');
while feof(fid) == 0
filename = fgetl(fid);
disp(filename)
fid2=fopen('2006060200522900dBZ.vol.ascii')
end
fclose(fid);
end
Jessi
Nuevo Miembro
Mensajes: 15
Re: por que me da error al intentar abrir el archivo??
«
Respuesta #7 en:
Martes 5 de Mayo de 2009, 12:07 »
0
el caso es que si lo pongo asi, no me da error:
function suma
fid = fopen('archivo.m','r');
while feof(fid) == 0
filename = fgetl(fid);
disp(filename)
fid2=fopen('2006060200522900dBZ.vol.ascii')
end
fclose(fid);
end
allisap
Miembro MUY activo
Mensajes: 259
Nacionalidad:
Re: por que me da error al intentar abrir el archivo??
«
Respuesta #8 en:
Miércoles 6 de Mayo de 2009, 04:00 »
0
hola , te coloco algunos comentarios en tu programa a ver si te pueden servir
function suma % si es el programa principal, no necesita ser una funcion
fid = fopen('archivo.m','r'); % aqui abres el primer archivo que contiene los demas nombres de archivos
while feof(fid) == 0
filename = fgetl(fid);
disp(filename)
fid2=fopen('2006060200522900dBZ.vol.ascii') % aqui abres otro archivo ,
%pero creo que querias abrir el obtenido en filename por lo que deberias tener
%fid2=fopen(filename)-,
% aqui deberias hacer algo con el archivo abierto
% y luego cerrarlo, porque si no lo cierras al terminar el while tendrias muchos archivos abiertos
%y solo estas cerrando el archivo principal fuera del while.
end
fclose(fid); % este close fid cierra el archivo principal
% otra opcion si realmente quieres tener todos los archivos abiertos, es cerrarlos al final
% usando fclose (all);
end
espero te sirva
Saludos
Victor Pasilla
Jessi
Nuevo Miembro
Mensajes: 15
Re: por que me da error al intentar abrir el archivo??
«
Respuesta #9 en:
Miércoles 6 de Mayo de 2009, 10:23 »
0
hola!
despues de darle unas vueltas al programa con un compañero, hemos decucido que puede dar error porque en "filename" no hay el valor que debe de haber. igual es que hay que poner "el contenido de la variable" como en el lenguaje de programacion C haciamos con el * (punteros).
puede ser algo asi???
un salduo
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Específica
»
Matlab
»
por que me da error al intentar abrir el archivo??