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

JoshyFun joshyfun en gmail.com
Lun Sep 7 23:26:08 CEST 2009


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





More information about the Lazarus-es mailing list