PDA

Ver la Versión Completa : Extensión de un fichero...


Elfoscuro
28-04-2005, 16:13:45
Hola.

Necesito saber si hay alguna función que le ponga la extensión a un nombre de archivo. Me explico:

Tengo un savedialog, con un filter con una extensión. El usuario escribe un nombre de fichero, pero sin escribir la extensión, y cuando sale del dialog, el savedialog1.filename que me devuelve es lo que el usuario haya escrito, pero si no ha escrito extensión, esta no viene.

La función que necesito es saber si esa extensión está puesta, y si no que la ponga. De momento lo que hago es recorrer el string hasta encontrar un '.' y luego comprobar con la extensión que debería de tener. Si no hay '.' o no coincide, la añade al final...

Funciona, pero si hubiera algo en delphi que ya lo hiciera, pues mejor, ¿no?

Y ya que estamos, os pregunto una cosa para asegurarme de verdad... Delphi no hace la función elevado? Es decir 2^2=4, 2^3=8... ¿Hay que hacersela cada uno a mano?

Saludos

delphi.com.ar
28-04-2005, 16:25:19
A ver si te gusta:

if ExtractFileExt(MiArchivo) = '' Then
MiAchivo := ChangeFileExt(MiArchivo, '.ext'); {Siendo .ext mi extensión por defecto}


Saludos!

delphi.com.ar
28-04-2005, 16:26:34
Y ya que estamos, os pregunto una cosa para asegurarme de verdad... Delphi no hace la función elevado? Es decir 2^2=4, 2^3=8... ¿Hay que hacersela cada uno a mano?
No lo había visto, pero te recomiendo no hacer dos preguntas de naturaleza diferentes en el mismo hilo.
Para averiguar la potencia de un nro, puedes utilizar la función Power definida en la unit Math.

Saludos!

Elfoscuro
28-04-2005, 21:02:31
Muchas Gracias por las respuestas... ahora para rizar el rizo... ¿como puedo saber si el resultado de

MiAchivo := ChangeFileExt(MiArchivo, '.ext');

es un nombre de archivo válido en Windows? Por ejemplo que no sea más largo de lo que permite el sistema...

Saludos

Lepe
29-04-2005, 09:57:23
Puedes usar un SaveDialog para que se encargue del problema. Solo tendrías que configurar la caja de dialogo para que acepte nombres largos.

Un saludo