Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   extraer nombre de fichero sin su path de un savedialog (https://www.clubdelphi.com/foros/showthread.php?t=47132)

zaryus 19-08-2007 03:06:27

extraer nombre de fichero sin su path de un savedialog
 
hola, ojala alguien sepa, quisiera saber si hay algun metodo , clase o comos e llame paara extraer solo el nombre de un fichero seleccionado por un usuario mediante un SaveDialog, y que se muestra en un textbox Edit1, pero la ruta larga no me sirve, asi que necesito mostrar solo el nombre del fichero me explico:
en vez de:

C:\archivos\noseque\archivo.txt

apareciera esto:

archivo.txt

Esto me facilitaria enormemente las cosas para el programa que estoy haciendo.

El codigo que uso es este:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
SaveDialog1->Execute();
Edit1->Text = SaveDialog1->FileTitle;
}
//------------------------------------------------------


Lo otro que aun tengo pendiente es esto:

system("copy \librl.jmp\ \ " Edit1->Text);

Me da errores el compilador :confused:, loq ue quiero es que la ruta de destino sea el contenido del edit1 pero por mas que intento no me resulta, esto accediendo mal a la propiedad del edit???
Muchas gracias (oajala alguien pueda ayudarme)
Apenas me empiecen a enseñar programacion en este semestre prometo ayudar a quienes sepan menos que yo .-:p:rolleyes::cool:
Zaryus.-

rcarrillom 19-08-2007 08:05:05

Hola, ya hace bastante que no uso Builder, pero en Delphi se usa la función ExtractFileName. En C si deseas usar rutas que incluyan backslash, debes de ponerlo doble ya que sencillo indica una secuencia de escape, p.e \n es salto de línea y si tienes algo como "c:\new folder", no anda con la ruta :rolleyes:

Código:

system("copy \\librl.jmp\\ \\ " Edit1->Text);
Espero no estar errado y ser de utilidad

zaryus 19-08-2007 17:13:19

muchas gracias
 
hola en otro foro yaq respondieron parte de la preguntaa asi que apenas soluccione el problema pongo la solucion aki, en todo casi si alguien sabe algo mas, bienvenido sea.:o
Saludos

zaryus 19-08-2007 20:59:55

holaps, en el otro foro me sugirieron hacer un puntero que recorra el savefile o el textbox hasta la ultima barra invertida de este modo "discriminar" el fichero de su path y poder procesarlo a posteriori, empero, el problema es que apenas se que es un fichero, y menos implementarlo en c++ builder :(.

gracias

ContraVeneno 20-08-2007 15:53:22

¿en builder no existe la función "ExtractNameFile" ?

Gabo 20-08-2007 16:21:24

Cita:

Empezado por ContraVeneno (Mensaje 224610)
¿en builder no existe la función "ExtractNameFile" ?

ExtractFileName si existe...
Cita:

Description
The resulting string is the rightmost characters of FileName, starting with the first character after the colon or backslash that separates the path information from the name and extension. The resulting string is equal to FileName if FileName contains no drive and directory parts.
Note: This function works for multi-byte character systems (MBCS).

ContraVeneno 20-08-2007 18:24:44

a esa función me refería :p

zaryus 20-08-2007 22:48:54

gracias por responder, aca el codigo que si me funciono :D:
Edit1->Text = ExtractFileName(SaveDialog1->FileName);

pero todavia me queda una duda, ojala me la puedan resolver, quiero copiar un archivo pero la primera vez me funco este codigo y la segunda, cuando lo cambie a otro envento no me funco :(, desde ahi no me funco mas, el compilador no da error alguno pero no copia el archivo :S.
system("copy librl.ejm \\RecFolder\\");

:mad:

Gracias:cool:

ContraVeneno 20-08-2007 23:01:24

Así lo hago en delphi, no debería haber mucha diferencia en builder; de cualquier manera puedes consultar la ayuda de builder para ver si tiene las mismas funciones que delphi:

Código Delphi [-]
if not FileExists(ExtractFilePath(ParamStr(0))+ExtractFileName(Archivo)) then begin
 try
  CopyFile(pchar(Archivo),pchar(ExtractFilePath(ParamStr(0))+ExtractFileName(Archivo)),True);
  except on E:Exception do begin
     Raise;
  end; //except
 end; //try
end; //if fileexists

"Archivo" es de tipo cadena y contiene la ruta completa al archivo que quiero copiar


La franja horaria es GMT +2. Ahora son las 18:21:20.

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