Как загрузить юникоды в мемо?
procedure
LoadUnicodeFile(
const
filename:
string
; strings: TStrings);
procedure
SwapWideChars(p: PWideChar);
begin
while
p^ <>
#0000
do
begin
p^ := WideChar(Swap(Word(p^)));
Inc(p);
end
;
end
;
var
ms: TMemoryStream;
wc: WideChar;
pWc: PWideChar;
begin
ms := TMemoryStream.Create;
try
ms.LoadFromFile(filename);
ms.Seek(
0
, soFromend);
wc :=
#0000
;
ms.
Write
(wc, sizeof(wc));
pWC := ms.Memory;
if
pWc^ = #$FEFF
then
{normal byte order mark}
Inc(pWc)
else
if
pWc^ = #$FFFE
then
begin
{byte order is big-endian}
SwapWideChars(pWc);
Inc(pWc);
end
else
;
{no byte order mark}
strings.Text := WideChartoString(pWc);
finally
ms.free;
end
;
end
;
Использовать
LoadUnicodeFile(filename, memo1.lines);
Взято с
Delphi Knowledge Base
Смотреть свадьба онлайн. Коттедж свадьба.
Свадьба.