[Lazarus-es] problema con la barra de directorio "\"

Raistware raistware en gmail.com
Mar Sep 8 13:28:24 CEST 2009


JoshyFun escribió:
> Hello Iván,
>
> Tuesday, September 8, 2009, 9:12:58 AM, you wrote:
>
> IM> Gracias por tu respuesta y por el buen camino encontrado.
> IM> Se pode hacer lo mismos de tantas formas diferentes....
> IM> Todo lo que me pasa se ha reducido a un pequeño descuido.
> IM> Después de estar toda la noche pegándome con el tema, he descubierto que:
> IM> nombrefichero := 'X:\Origen\File.ext' no lo interpreta correctamente.
> IM> La fórmula sería:
> IM> const
> IM>    barra ='\';
> IM> begin
> IM> ...
> IM> nombrefichero := 'X:' + barra +'Origen'+barra+'File.ext';
> IM> ...
> IM> end
> IM> Con esto, puedo usar la función FileCopy tanto en windows como en WindowsCE.
>
> Pero aún así eso no tiene mucho sentido :-? Ya que ambas cosas
> deberían ser idénticas, vamos que:
>
> NombreFichero1:='X:\Origen\File.exe';
> NombreFichero2:='X:'+PathDelim+'Origen'+PathDelim+'File.ext';
> if NombreFichero1=NombreFichero2 then beep();
>
> Ese código debería hacer "beep" en cualquier versión de Windows,
> incluido WinCE :-?
>
> Me has dejado descolocado, la verdad.
>
>   
No, no es lo mismo: el caracter '\' es un caracter de escape. Y el 
caracter '\' , al concatenarlo a la cadena 'X:' + PathDelim + 'Origen' + 
PathDelim + 'File.ext' se convierte, realmente en 'X:\\Origen\\File.ext'.
Si quieres haz pruebas de mostrar por ShowMessage('X:\Origen\File.exe') 
y ShowMessage('X:'+PathDelim+'Origen'+PathDelim+'File.ext'). No debe de 
dar el mismo resultado.
Aparte, es bueno siempre tenerlo desarrollado independiente del sistema 
a tenerlo específico en windows, aunque solo lo vayas a utilizar en un 
sistema operativo, nunca sabes que va a pasar en un futuro.


__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 4405 (20090908) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com






More information about the Lazarus-es mailing list