• Viernes 1 de Noviembre de 2024, 09:34

Autor Tema:  Entrada de fichero  (Leído 1167 veces)

Ciklope

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Entrada de fichero
« en: Domingo 18 de Enero de 2009, 14:31 »
0
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

Ciklope

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Entrada de fichero
« Respuesta #1 en: Miércoles 21 de Enero de 2009, 19:13 »
0
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.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Entrada de fichero
« Respuesta #2 en: Jueves 29 de Enero de 2009, 22:55 »
0
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
  1.  
  2. esperado = 'archivo.txt';
  3. recibido = '';
  4.  
  5. while ( strcmpi( esperado, recibido ) ~= 1 )
  6.     recibido = input( 'Introduzca nombre de archivo: ', 's' );
  7. end
  8.  
  9.  
Si deseas mostrar un error si el archivo no corresponde, podrías hacerlo así:

Código: Text
  1.  
  2. esperado = 'archivo.txt';
  3. recibido = input( 'Introduzca nombre de archivo: ', 's' );
  4.  
  5. while ( strcmpi( esperado, recibido ) ~= 1 )
  6.     recibido = input( 'Error en nombre de archivo, introduzca de nuevo: ', 's' );
  7. end
  8.  
  9.  

No entendí muy bien si deseas restringir el nombre del archivo o si deseas evitar que se introduzca uno que no existe :p.

Suerte :).
La imaginación es el límite.
Hardware & Software | Mexchip

Ciklope

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Entrada de fichero
« Respuesta #3 en: Viernes 30 de Enero de 2009, 19:20 »
0
Perfecto, con eso me sirve :)

Muchas gracias!