Показать сообщение отдельно
  #3  
Старый 30.08.2010, 18:45
zet_asm zet_asm вне форума
Прохожий
 
Регистрация: 29.08.2010
Сообщения: 2
Репутация: 10
По умолчанию

Нашёл решение проблемы.
Текст файла уже в utf8 и преобразование к utf16 не требуется.

Код:
  function ReadFromFile(FileName:String):UTF8String;
  const
    Error = 'File to large!';
  var
    Size: Int64Rec;
    hFile: Integer;
  begin
    hFile := FileOpen(FileName, fmOpenRead or fmShareDenyWrite);
    try
      Size.Lo := GetFilesize(hFile, @Size.Hi);
      if Int64(Size) > 1048576 then raise Exception.Create(Error); // Size > 1MB
      SetLength(Result, Size.Lo);
      FileRead(hFile, (PUTF8String(Result))^, Size.Lo);
    finally
      FileClose(hFile);
    end;
  end;
Ответить с цитированием