Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизDelphi 2011 и русский текст Найти похожие ветки
← →
Hgd1 (2012-02-13 22:43) [0]Подскажите, использую CodeGear™ Delphi® for Microsoft® Windows™ Version 11.
Код:
memo1.Lines.LoadFromFile("C:\Current.txt");
For I := 0 To Memo1.Lines.Count-1 do
begin
if pos("C=",Memo1.Lines[i])<>0 then
begin
Memo1.Lines[i]:="C="+("Вася");
break;
end;
end;
memo1.Lines.SaveToFile("C:\Current.txt");
Русские буквы Вася не сохраняются, вместо них пробел. Что такое?
← →
Германн © (2012-02-13 22:49) [1]
> Memo1.Lines[i]:="C="+("Вася");
Такое даже и не скомпилится.
← →
Hgd1 (2012-02-13 22:59) [2]Все нормал, но вопрос не в этом. Что по поводу русских букв?
← →
Ega23 © (2012-02-13 22:59) [3]
> Такое даже и не скомпилится.
Чё это вдруг? Всё скомпилится.
> Русские буквы Вася не сохраняются, вместо них пробел. Что
> такое?
У меня всё сохранилось.
Исходный файл:
A=11111
B=22222
C=33333
Код:procedure TForm18.FormCreate(Sender: TObject);
var
i: Integer;
begin
Memo1.Lines.LoadFromFile("C:\temp\1.txt");
for i := 0 to Memo1.Lines.Count - 1 do
if Pos("C=", Memo1.Lines[i]) <> 0 then
begin
Memo1.Lines[i] := "C=" + ("Вася");
Break;
end;
Memo1.Lines.SaveToFile("C:\temp\1.txt");
end;
Конечный файл:A=11111
B=22222
C=Вася
1. Ищи ошибку.
2. Посмотри в сторону TIniFile
← →
Hgd1 (2012-02-13 23:06) [4]Ega23 ©, спасибо!
Загвоздка в том, что изначально файл Current.txt в "странном формате" или кодировке. При сохранении русские буквы не сохраняются для данного кода. Что можно сделать?
← →
DVM © (2012-02-13 23:23) [5]
> Что можно сделать?
Кодировку при загрузке/сохранении файла указать? Там вроде бы последний параметр TEncoding.
← →
Hgd1 (2012-02-13 23:40) [6]Точно,
файл с кодировкой UTF8. Поступаю так, при загрузке:
memo1.Lines.Text:=Utf8ToAnsi(memo1.Lines.Text);
Но в memo первый символ ставится ? (знак вопроса). Он специально оставляет его?
← →
DVM © (2012-02-13 23:44) [7]
> Hgd1 (13.02.12 23:40) [6]
Memo1.Lines.LoadFromFile("C:\temp\1.txt", TEncoding.UTF8); то же и при Save
> Но в memo первый символ ставится ? (знак вопроса). Он специально
> оставляет его?
Это BOM
← →
Anatoly Podgoretsky © (2012-02-14 08:38) [8]После Д2010 был DXE, откуда 2011?
← →
brother © (2012-02-14 09:45) [9]> Memo1.Lines[i]:="C="+("Вася");
по этому синтаксису можно подробнее?
← →
Dimka Maslov © (2012-02-14 10:16) [10]Если в текстовом файле правильно выставлена преамбула - никаких проблем при загрузке быть не должно и дополнительно конвертировать при чтении файла через потомка TStrings не надо. Всё будет сделано автоматически. Если преамбулы нет - значит надо кодировку при чтении указывать в явном виде. При сохранении же желательно кодировку также явно прописывать. При этом кодировку по умолчанию (ANSI) надо использовать тогда и только тогда, когда это требуется (например программа, в которой потом будет использоваться текст не поддерживает utf-8). В остальных случаях - utf-8.
← →
Ega23 © (2012-02-14 10:43) [11]
> по этому синтаксису можно подробнее?
А что с ним не так?
← →
brother © (2012-02-14 10:53) [12]я скобок не понял...
← →
app © (2012-02-14 11:00) [13]Можно любые выражение врать в любое количество скобок. Основы Паскаля, можно и без скобок и даже без конкатенации.
← →
brother © (2012-02-14 11:02) [14]понял
← →
Ega23 © (2012-02-14 11:13) [15]
> я скобок не понял...i := ++++-+-(++----2-----++(23));
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.071 c