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

Вниз

Сохранить файл в юникоде   Найти похожие ветки 

 
YDS   (2005-12-24 16:24) [0]

Никак не получается сохранить в файл строку в юникоде, содержащую символ перевода каретки $ 0A 00 – на нем все обрывается. Делаю, к примеру, так:

AssignFile(f, Form1.SaveDialog1.FileName);
Rewrite(f);

// перевод строки в строку pw в юникоде
_txt := ‘Hello’#13#10’Word’;
iSize := Length(_txt);
iNewSize := iSize * 2;
pw := AllocMem(iNewSize);
MultiByteToWideChar(CP_ACP, 0, PChar(_txt), iSize, pw, iNewSize);

// записываю в файл
write(f, pw);

И получаю в нем только ‘Hello’.


 
YDS   (2005-12-24 16:57) [1]

Все, сам разобрался. Использовал такую конструкцию:

var
 _txt: String;
 ws : WideString;
 FF: TFileStream;

begin
 try
 if btn = 1 then _txt := Form1.Memo1.Text else _txt := Form1.RichEdit1.Text ;
 if Form1.SaveDialog1.Execute then
   if Form1.SaveDialog1.FileName <> "" then
   begin
   FF := TFileStream.Create(Form1.SaveDialog1.FileName, fmCreate or fmOpenReadWrite);
   if (Form1.CheckBox1.Checked = true) and (((btn=1) and (Form1.RadioGroup1.ItemIndex = 0)) or ((btn=2) and (Form1.RadioGroup1.ItemIndex = 1))) then
     if MessageDlg("Сохранить текст окна в Unicode?", mtConfirmation, [mbYes, mbNo], 0) = mrYes then
       begin
         ws := _txt;
         FF.Write(ws[1], Length(ws)*2);
       end
     else
       FF.Write(_txt[1], Length(_txt))
   else FF.Write(_txt[1], Length(_txt));
   FF.Free;
   MessageBoxA(0,PCHar("Файл "+Form1.SaveDialog1.FileName+" сохранен"),"Сохранение",MB_ICONINFORMATION);
   end;
 except MessageBoxA(0,"Ошибка сохранения файла!","Ошибка",MB_ICONERROR);
 end;
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.05 c
14-1134678898
версия для печати
2005-12-15 23:34
2006.01.15
Чем народ.РУ притягивает?


14-1134682783
аматор
2005-12-16 00:39
2006.01.15
компилятор на паскале


2-1135659572
DimonS
2005-12-27 07:59
2006.01.15
Подскажите по SQL


6-1128069223
antoxa2005
2005-09-30 12:33
2006.01.15
ПОМОГИТЕ ! Как передать данные от одного приложения по сети друго


2-1135454569
mixa
2005-12-24 23:02
2006.01.15
пустая папка