Главная страница
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.039 c
4-1122402858
VC15
2005-07-26 22:34
2005.09.18
Как узнать текущее разрешение экрана?


1-1125169052
rolex
2005-08-27 22:57
2005.09.18
Помогите переделать статистичн. вызов DLL в динамичный.


2-1123601748
Koala
2005-08-09 19:35
2005.09.18
Помогите правильно составить запрос.... FB 1.5


3-1123146084
Rentgen
2005-08-04 13:01
2005.09.18
Как в рантайме прописать (ADO) МастерФилдс?


1-1124915937
Ginger
2005-08-25 00:38
2005.09.18
Готовый парсер xml-документа в описание формы