Programación Específica => Matlab => Mensaje iniciado por: Ciklope en Domingo 18 de Enero de 2009, 14:31
Título: Entrada de fichero
Publicado por: Ciklope en Domingo 18 de Enero de 2009, 14:31
Necesito crear un programa que pida al usuario el nombre de un fichero previamente creado por él, para posteriormente cargar el fichero en una matriz y trabajar sobre ella.
Mi problema es que me gustaría mostrar un mensaje de error en caso de que el usuario teclee un nombre incorrecto, y darle la oportunidad de volver a intentarlo, pero no sé cómo hacerlo.
Estaré muy agradecido por cualquier pequeña ayuda. Un saludo a todos
Título: Re: Entrada de fichero
Publicado por: Ciklope en Miércoles 21 de Enero de 2009, 19:13
Si no se puede hacer de esa forma, podría obligar al usuario a que el fichero de entrada tenga un determinado nombre. Per aún así, tengo un problema: si el usuario escribe uno solo de los caraceres del nombre del fichero, Matlab lo da por válido. Os pego un trozo del programa para que lo veáis:
chivato='ficheroentrada.txt' entrada=input('Escriba el nombre del fichero'); while entrada~=chivato entrada=input('Escriba el nombre del fichero'); end
De esta forma, si el usuario escribe "f" el programa sale del lazo while y continúa.
Título: Re: Entrada de fichero
Publicado por: Geo en Jueves 29 de Enero de 2009, 22:55
Para comparar cadenas de texto se debe utilizar la función strcmp o strcmpi, la primera distingue entre mayúsculas y la segunda no. Estas funciones comparan dos cadenas de texto y devuelven 1 en el caso de que sean iguales, 0 si no. Usarías algo como esto:
Código: Text
esperado = 'archivo.txt';
recibido = '';
while ( strcmpi( esperado, recibido ) ~= 1 )
recibido = input( 'Introduzca nombre de archivo: ', 's' );
end
Si deseas mostrar un error si el archivo no corresponde, podrías hacerlo así:
Código: Text
esperado = 'archivo.txt';
recibido = input( 'Introduzca nombre de archivo: ', 's' );
while ( strcmpi( esperado, recibido ) ~= 1 )
recibido = input( 'Error en nombre de archivo, introduzca de nuevo: ', 's' );
end
No entendí muy bien si deseas restringir el nombre del archivo o si deseas evitar que se introduzca uno que no existe :p.
Suerte :).
Título: Re: Entrada de fichero
Publicado por: Ciklope en Viernes 30 de Enero de 2009, 19:20