Форум: "Начинающим";
Текущий архив: 2006.01.15;
Скачать: [xml.tar.bz2];
ВнизСохранить файл в юникоде Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.013 c