[Lazarus-es] Error lazarus

Luis Del Aguila luis3000 en ec-red.com
Mar Jul 17 21:59:51 CEST 2012


El problema puede ser que en tu windows.
Estés usando un disco duro en ntfs, cuando se usa ntfs, windows usa 
UTF16 para los nombres de archivos y carpetas.

C:\Documents and Settings\usuario\Configuración local\Datos de programa

En la ruta que mencionas Configuración local, es probable que lazarus lo 
este interpretando mál.
Ya que lazarus y fpc aún usa rutinas para abrir archivos que usen nombre 
de archivos en ansi y no con unicode.
Tienes que crear tu tus propias rutinas para abrir dichas carpetas.
Por ejemplo para abrir, un archivo de texto y colocarlo en un TMemo, 
tendrías que usar algo parecido:

procedure TForm1.MenuAbrirClick(Sender: TObject);
Var arch:THandle;
        Flujo:THandleStream;
begin
      if OpenDialog1.Execute
           then Begin
arch:=FileOpen(UTF8Decode(OpenDialog1.FileName),fmOpenReadWrite);
                        Flujo:=THandleStream.Create(arch);
                        Memo1.Lines.LoadFromStream(Flujo);
                        FileClose(arch)
                   End
end;

La rutina file Open tienes que volverla a crearla y colocarla dentro de 
de la sección implementation de tu formulario

Function FileOpen(nombre:unicodestring;atributos:longint):THandle;
  const
   AccessMode: array[0..2] of Cardinal  = (GENERIC_READ,
     GENERIC_WRITE,
     GENERIC_READ or GENERIC_WRITE);
   ShareMode: array[0..4] of Integer = (
                0,
                0,
                FILE_SHARE_READ,
                FILE_SHARE_WRITE,
                FILE_SHARE_READ or FILE_SHARE_WRITE);
  Begin
FileOpen:=CreateFileW(PWidechar(nombre),dword(AccessMode[atributos and 
3]),dword(ShareMode[(atributos and $F0) shr 
4]),nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  End;

No se si esto sirva en el caso de una base de datos, Pero espero te 
sirva de ayuda.

El 17/07/2012 02:27 p.m., Maxi escribió:
> El día 17 de julio de 2012 15:38, Abraham <abraham.montano en gmail.com> escribió:
>> Hola a todos.
>>
>> tengo un error en Lazarus, al parecer es un problema de caracteres
>> especiales al momento de crear el archivo editormacros.xml, ya que este
>> archivo se crea en la siguiente ruta
>>
>> C:\Documents and Settings\usuario\Configuración local\Datos de programa
>>
>> el problema estaria que lazarus toma la siguiente ruta:
>>
>> D:\Documents and Settings\t640940\Configuraci?n local\Datos de programa
>>
>> estoy usando fpc y lazarus de sus respectivos svn
>>
>> PD: adjunto imagen del mensaje.
>>
>> Saludos.
>>
>> -------------------
>> Abraham Montaño
>> Chiclayo - Perú
>> ---------------------
>>
>>
>> _______________________________________________
>> Lazarus-es mailing list
>> Lazarus-es en lists.lazarus.freepascal.org
>> http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>>
>
> De seguro no has de tenr permisos para escribir en esa ruta o está mal
> escrita. el signo ? no es valido para una ruta de windows, el asento
> lo está convirtiendo a un caracter no valido. deberias revisar el tipo
> de cadena si es unicode.
>
>


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


More information about the Lazarus-es mailing list