Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Como saca la extension? (https://www.clubdelphi.com/foros/showthread.php?t=55943)

sac 02-05-2008 12:59:37

Como saca la extension?
 
Hola gente...
Tengo un problema que parece sencillo de resolver pero todavía no pude.
Tengo que cargar en un label el nombre de un archivo desde un opendialog anteponiendole otro texto y sacándole la extension (en mi caso un .txt).
Utilice el extracfilename para sacarle el path y en el caption del label le asigné lo que voy a anteponer + el extractfilename(opendialog1.filename) pero no puedo quitarle la extensión.. siempre aparece lo que quiero mas '.txt' alguno me puede ayudar?

dec 02-05-2008 13:08:02

Hola,

Prueba a ver con algo más o menos como esto:

Código Delphi [-]
var
  fileName: string;
begin
  if OpenDialog1.Execute then
  begin
    fileName := ExtractFileName(OpenDialog1.FileName);
    fileName := ChangeFileExtension(fileName, '');
  end;
end;

Es decir, se trata de usar la función "ChangeFileExtension()", sólo que, en lugar de indicarle una extensión (para cambiarla en el nombre de archivo) le pasamos una cadena vacía, de modo que lo que se consigue es quitar la extensión del nombre del archivo. :)

sac 02-05-2008 13:31:04

probando
 
Ah buena idea dec... yo pense que había algun evento - atributo lo que fuera que lo haría directamente.
gracias ya estoy probando..
ah por favor lee mi siguiente pregunta please.

sac 02-05-2008 15:31:16

nop
 
Hola de nuevo dec... utilice tu codigo pero no funciona. No se por qué mi delphi7 for win 32 no toma la sintaxis del ChangeFileExtension, no lo reconoce

dec 02-05-2008 15:45:15

Hola,

Me parece que esa función está en la unidad "SysUtils". Asegúrate de añadir dicha unidad. ;)

ecfisa 05-05-2008 17:06:02

Sacar ext
 
Así lo extrae:

procedure TForm1.Label1DblClick(Sender: TObject);
begin
with OpenDialog1 do
begin
if Execute then
Label1.Caption:= copy(ExtractFileName(FileName), 1,
Pos('.',ExtractFileName(FileName))-1);
end;
end
;

dec 05-05-2008 17:21:51

Hola,

Pero eso puede tener el problema de que un archivo incluya un punto (.) en su nombre. No estoy seguro, pero, me parece que la función "ChangeFileExt()" (por cierto, acaso por eso no se encontraba, creo que no es "ChangeFileExtension()", sino "ChangeFileExt()") tiene eso en cuenta. :)

roman 05-05-2008 17:22:49

Este código no serviría en el caso de archivos con nombres como:

iniciar.sesion.php

Aquí el nombre de archivo buscado sería

iniciar.sesion

mientras que el código lo que obtiene es

iniciar

La función que menciona dec (que creo que se llama ChangeFileExt) ya toma en cuenta este tipo de nombres.

Agrego:

Veo que se me adelantó dec. Pues eso mismo queria decir aunque lo dije mucho más largo. :)

// Saludos

ecfisa 05-05-2008 19:15:29

Es cierto
 
Tienen razón, se me escapo la tortuga... no pensé en los puntos.
( y no conocia la función ChangeFileExt...) :(


La franja horaria es GMT +2. Ahora son las 11:47:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi