[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