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

Iván Mesa imo_mas en yahoo.es
Mar Sep 8 09:12:58 CEST 2009


Gracias por tu respuesta y por el buen camino encontrado.
Se pode hacer lo mismos de tantas formas diferentes....
Todo lo que me pasa se ha reducido a un pequeño descuido.
Después de estar toda la noche pegándome con el tema, he descubierto que:
nombrefichero := 'X:\Origen\File.ext' no lo interpreta correctamente.

La fórmula sería:
const
   barra ='\';
begin
...
nombrefichero := 'X:' + barra +'Origen'+barra+'File.ext';
...
end

Con esto, puedo usar la función FileCopy tanto en windows como en WindowsCE.

A lo mejor, es ahí donde todo el mundo choca.

Gracias.
Iván.





________________________________
De: JoshyFun <joshyfun en gmail.com>
Para: Spanish version of Lazarus List <lazarus-es en lists.lazarus.freepascal.org>
Enviado: lunes, 7 de septiembre, 2009 23:26:08
Asunto: Re: [Lazarus-es] problema con la barra de directorio "\"

Hello Iván,

Monday, September 7, 2009, 10:03:41 AM, you wrote:

IM> Bueno, mi desesperación y mi estado mental se intuir leyendo
IM> el post, pero voy a explicarme mejor.
IM> Lo que me ocurre es muy sencillo. He realizado un pequeño
IM> programa con una base de datos SQLite.
IM> La base de datos la quiero cargar en una PDA, usando el
IM> Async, en el que tengo una carpeta compartida.
IM> Pues mi problema es usando la función CopyFile no se copia la
IM> BBDD. He verificado que está cerrada, y que he puesto bien las
IM> rutas de origen y destino, pero nada. No me ha quedado más opción
IM> que realizar un bat que ejecute un copy del dos para poder hacer
IM> dicha operación.
IM> Pero, por si esto fuera poco, en la PDA me he encontrado el
IM> mismo problema: Una vez tengo la BBDD en la carpeta My Documents,
IM> quiero pasarla al directorio de datos de programas, para poder
IM> abrirla y trabajar desde la PDA. Pero aquí, además de no funcionar
IM> el CopyFile, me he encontrado que también me da un error el
IM> TProcess a ejecutar un bat con el correspondiente copy del s.o.
IM> Lo más cachondo es que el bat funciona, pues si lo ejecuto
IM> desde la opción ejecutar del WinCe, la copia se realiza. También
IM> si ejecuto desde la consola. Pero desde Lázarus me da el error 87.
IM> Tras un montón de pruebas, ya no se me ocurre qué puede estar pasando.
IM> En fin, espero que ahora esté el planteamiento más claro, y alguien pueda ayudarme.
IM> Gracias.

He visto por distintas páginas muchos problemas de WinCE y la función
FileCopy, incluido el mismo problema que tienes tu, sólo que en vez de
Lázarus con VB. Si el único problema es copiar un archivo hazlo a
"pedal" sin usar el FileCopy (ojo, no se si se puede, ya que no uso
WinCE ni tengo para probar ni nada). Una copia "a pedal" con Lázarus
sería algo como:

var
   FIn,FOut: TFileStream;
begin
   FIn:=TFileStream.Create('X:\Origen\File.ext',fmOpenRead or
        fmShareDenyWrite);
   FOut:=TFileStream.Create(W:\Destino\File.ext',fmCreate);
   FOut.CopyFrom(FIn,FIn.Size);
   FIn.Free;
   FOut.Free;
end;

Lo del error 87 es "Parámetro no válido", pero es un error del sistema
operativo (WinCE) y supongo que es un problema de permisos (supongo
que tendrás que pedir un permiso para usar cierto tipo de funciones,
como un FileCopy desde un dispositivo externo).

-- 
Best regards,
JoshyFun


_______________________________________________
Lazarus-es mailing list
Lazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es



      
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20090908/f8d1dcbb/attachment-0002.html>


More information about the Lazarus-es mailing list