работа с unicode
От: Nimua Россия  
Дата: 27.10.05 21:02
Оценка:
Здравствуйте,

Есть файл с текстом в формате юникод, его надо прочесть и преобразовать в win1251. При выполнении кода получается то же самое как и в файле если открыть его в Windows.
Заранее спасибо.

var
           fst: TFileStream;
           c: widechar;
           c2: array [0..255] of char;
           sw: array [0..255] of widechar;
           s: string;
           i: integer;
begin
if OpenDialog1.Execute and FileExists(OpenDialog1.FileName) then
      try
        fst:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead);
        s:=''; i:=0;
        while fst.Position<fst.Size do
         begin
          fst.Read(sw[i],1);
          inc(i);
         if (i>255) or (i>=fst.Size) then begin
        WideCharToMultiByte(CP_ACP,
                  0,
                  sw,
                  -1,
                  c2,
                  256,
                  nil,
                  nil
                  );
                  i:=0;
                  s:=PCharToString( c2;
                end;
        end;
        Memo1.Lines.Clear;
        Memo1.Lines.Add(s);
        fst.Free;
      except
      end;
end;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.