Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2011-05

Win32 nombre de archivos utf16

5 messages · 2 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Luis Fernando Del Aguila Mejía

Me gustaria saber si Lazarus puede abrir archivos con nombre en utf16. Archivos con nombres parecidos a esto : ???.txt

OpenDialog1.Execute;
if OpenDialog1.FileName''
    then Begin
    SynEdit1.Lines.LoadFromFile(UTF8Encode(OpenDialog1.FileName));
End.

Al intentar hacerlo obtengo el siguient error:
Unable to open file : "C:\Users\Luis\Desktop\???.txt" Press Ok to ignore and risk data corruption.
Press cancel to kill program.
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20110527/4e069612/attachment-0001.html> ------------ pr�xima parte ------------
A non-text attachment was scrubbed...
Name: error.jpg
Type: image/jpeg
Size: 25789 bytes
Desc: no disponible
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20110527/4e069612/attachment-0001.jpg>

Reply by email

José Mejuto
to Luis Fernando Del Aguila Mejía

Hello Luis,

Saturday, May 28, 2011, 12:02:42 AM, you wrote:

LFDAM> Me gustaria saber si Lazarus puede abrir archivos con nombre en utf16. LFDAM> Archivos con nombres parecidos a esto : ???.txt LFDAM> OpenDialog1.Execute;
LFDAM> if OpenDialog1.FileName''
LFDAM> then Begin
LFDAM>
LFDAM> SynEdit1.Lines.LoadFromFile(UTF8Encode(OpenDialog1.FileName)); LFDAM> End.
LFDAM> Al intentar hacerlo obtengo el siguient error: LFDAM> Unable to open file : "C:\Users\Luis\Desktop\???.txt" LFDAM> Press Ok to ignore and risk data corruption. LFDAM> Press cancel to kill program.

No, no puede. Para hacerlo existe una unit que crea TFileStreams que usan Unicode y puedes usarlos con "LoadFromStream" en vez de "LoadFromFile". El "problema" es que no son compatibles con Win95,98,ME..., s�lo NT o mayor.

La mayor�a de funciones de manejo est�n en la unit "fileutil" en formato *wide. El TFileStream si no lo encuentras puedo hacerlo yo, se hace r�pido.

Best regards, Jos�

Reply by email

Luis Fernando Del Aguila Mejía
to José Mejuto

Gracias, podr�as decirme donde consigo informaci�n, sobre TFileStreams y como usarlo.
o en su defecto me lo puedes hacer, tal como me lo mencionas.

El 28/05/2011 05:58 a.m., Jos� Mejuto escribi�:

Show quoted text 26 lines
Hello Luis, Saturday, May 28, 2011, 12:02:42 AM, you wrote: LFDAM> Me gustaria saber si Lazarus puede abrir archivos con nombre en utf16. LFDAM> Archivos con nombres parecidos a esto : ???.txt LFDAM> OpenDialog1.Execute; LFDAM> if OpenDialog1.FileName'' LFDAM> then Begin LFDAM> LFDAM> SynEdit1.Lines.LoadFromFile(UTF8Encode(OpenDialog1.FileName)); LFDAM> End. LFDAM> Al intentar hacerlo obtengo el siguient error: LFDAM> Unable to open file : "C:\Users\Luis\Desktop\???.txt" LFDAM> Press Ok to ignore and risk data corruption. LFDAM> Press cancel to kill program. No, no puede. Para hacerlo existe una unit que crea TFileStreams que usan Unicode y puedes usarlos con "LoadFromStream" en vez de "LoadFromFile". El "problema" es que no son compatibles con Win95,98,ME..., s�lo NT o mayor. La mayor�a de funciones de manejo est�n en la unit "fileutil" en formato *wide. El TFileStream si no lo encuentras puedo hacerlo yo, se hace r�pido.

Reply by email

José Mejuto
to Luis Fernando Del Aguila Mejía

Hello Luis,

Saturday, May 28, 2011, 5:07:52 PM, you wrote:

LFDAM> Gracias, podr�as decirme donde consigo informaci�n, sobre TFileStreams y LFDAM> como usarlo.
LFDAM> o en su defecto me lo puedes hacer, tal como me lo mencionas.

B�sicamente un TFileStream encapsula un fichero con funciones read, write, seek, etc... Pero todas estas funciones son comunes a los streams, de modo que un stream puede ser un fichero, un socket tcp/ip, la consola, muchas cosas... Un ejemplo ser�a algo como:

var
  Las4Letras: array [0..3] of char;
  Stream: TFileStream;
begin
  Stream:=TFileStream.Create('fichero.txt',fmOpenRead);
  Stream.Read(Las4Letras[0],SizeOf(Las4Letras));
  Stream.Free;
end;

Esto abre el fichero "fichero.txt" y lee los 4 primeros bytes y los alamacena en un array. Al final libera el stream.

http://www.freepascal.org/docs-html/rtl/classes/tstream.html

Y un ejemplo de uso:

http://www.delphicorner.f9.co.uk/articles/op11.htm

Best regards, Jos�

Reply by email

Luis Fernando Del Aguila Mejía
to José Mejuto

Gracias

El 28/05/2011 10:28 a.m., Jos� Mejuto escribi�:

Show quoted text 31 lines
Hello Luis, Saturday, May 28, 2011, 5:07:52 PM, you wrote: LFDAM> Gracias, podr�as decirme donde consigo informaci�n, sobre TFileStreams y LFDAM> como usarlo. LFDAM> o en su defecto me lo puedes hacer, tal como me lo mencionas. B�sicamente un TFileStream encapsula un fichero con funciones read, write, seek, etc... Pero todas estas funciones son comunes a los streams, de modo que un stream puede ser un fichero, un socket tcp/ip, la consola, muchas cosas... Un ejemplo ser�a algo como: var Las4Letras: array [0..3] of char; Stream: TFileStream; begin Stream:=TFileStream.Create('fichero.txt',fmOpenRead); Stream.Read(Las4Letras[0],SizeOf(Las4Letras)); Stream.Free; end; Esto abre el fichero "fichero.txt" y lee los 4 primeros bytes y los alamacena en un array. Al final libera el stream. http://www.freepascal.org/docs-html/rtl/classes/tstream.html Y un ejemplo de uso: http://www.delphicorner.f9.co.uk/articles/op11.htm

Reply by email