Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

Не получается работать с UTF-8   Найти похожие ветки 

 
Ji ©   (2005-08-24 22:49) [0]

Возникла необходимость обрабатывать файл, созданный программой написанной на Java, в котором чередуются строки в формате UTF-8 и числа Int. Начал писать код, но все время получал ошибку при завершении программы.
В итоге пришел к следующей ситуации.

Вот такой код:

procedure TForm1.Button1Click(Sender: TObject);
var
       UTFStr, UTFStr2: UTF8String;
       f: file;
       Str,Str2: String;
       err: Integer;
begin
       Str := "Мама мыла раму";
       UTFStr := UTF8Encode(Str);
       
       AssignFile(f,"123");
       ReWrite(f,1);
       BlockWrite(f,UTFStr,Length(UTFStr),err);
       CloseFile(f);

       Reset(f,1);
       BlockRead(f,UTFStr2,Length(UTFStr),err);
       CloseFile(f);

       Str2 := UTF8Decode(UTFStr2);
       Memo1.Text := Str2;
end;


Если выполняю по F9, то: "privileged instruction at 0x008d3611. Process Stopped."
Пошаговое выполнение: та же ошибка, на строке "end;"
Если запускаю скомпилированный exe: Завершается без сообщений.
Все строки выполняются корректно и в конце Str2 = Str;


 
Турист   (2005-08-24 23:21) [1]

Ошибки выделены

procedure TForm1.Button1Click(Sender: TObject);
var
      UTFStr, UTFStr2: UTF8String;
      f: file;
      Str,Str2: String;
      err: Integer;
begin
      Str := "Мама мыла раму";
      UTFStr := UTF8Encode(Str);

      AssignFile(f,"123");
      ReWrite(f,1);
      BlockWrite(f, UTFStr[1], Length(UTFStr),err);
      CloseFile(f);

      Reset(f,1);
      SetLength(UTFStr2, Length(UTFStr));
      BlockRead(f,UTFStr2[1],Length(UTFStr),err);
      CloseFile(f);

      Str2 := UTF8Decode(UTFStr2);
      Memo1.Text := Str2;
end;


 
Anatoly Podgoretsky ©   (2005-08-24 23:24) [2]

Объяснение - ты портишь память, записываешь не туда куда надо.


 
Ji ©   (2005-08-24 23:33) [3]

Премного благодарен



Страницы: 1 вся ветка

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.463 c
4-1122497895
SpyBoy
2005-07-28 00:58
2005.09.18
Шрифт


14-1124463219
TStas
2005-08-19 18:53
2005.09.18
Насколько это кривой способ?


3-1123501238
Aleksandr.
2005-08-08 15:40
2005.09.18
В чем проблема обращения к TPFibDataBase по указателю в Dll?


14-1124136607
Almaz
2005-08-16 00:10
2005.09.18
А как насчет SPbMP ?


9-1116573150
LEGIONER75
2005-05-20 11:12
2005.09.18
организации базиса системы в сцене