Форум: "Начинающим";
Текущий архив: 2014.08.24;
Скачать: [xml.tar.bz2];
ВнизПроблема с поддержкой латышских букв в программе Найти похожие ветки
← →
Антипов В.А. (2013-10-03 00:01) [0]Здравствуйте! Подскажите пожалуйста,незнаю что делать. Написал клиенту из Латвии прогу для печати накладных. В ней клиент вносит свои реквизиты, данные для печати и печатает накладную. Проблема в том что в реквизитах всяко-разные латышские буквы, которых нет в английском алфавите. Вносить прога дает, а сохраняет неверно(при закрытии) реквизиты в текстовый файл(для последующей загрузки реквизитов,чтобы снова не вводить при выписке). При сохранении прога сама правит символы на англ.манер,например С(с верхней галкой) на просто С и т.д. Как это побороть?
← →
DVM © (2013-10-03 00:07) [1]
> Вносить прога дает, а сохраняет неверно
версию делфи и код сохранения в студию
← →
Туповатый © (2013-10-03 00:17) [2]Unicode разве не спасет?
← →
DVM © (2013-10-03 00:20) [3]
> Туповатый © (03.10.13 00:17) [2]
> Unicode разве не спасет?
У него перекодируется наверняка при сохранении в файл, т.к. TStringList, TStringStream и прочие по умолчанию используют TEncoding.Default, а это Ansi
← →
Антипов В.А. (2013-10-03 00:21) [4]Delphi 2010, а код простой:
var
F:TextFile;
begin
AssignFile(F,"rekviziti.lst");
Rewrite(F);
WriteLn(F,Edit1.Text);
WriteLn(F,Edit2.Text);
WriteLn(F,Edit3.Text);
CloseFile(F);
Как сохранять в юникоде?
← →
DVM © (2013-10-03 00:27) [5]
var
SL: TStringList;
begin
SL := TStringList.Create;
try
SL.Encoding := TEncoding.Unicode;
SL.Add(Edit1.Text);
...
SL.SaveToFile("rekviziti.lst");
finally
SL.Free;
end;
end;
← →
Антипов В.А. (2013-10-03 00:34) [6]>DVM Спасибо! Попробую...
← →
Антипов В.А. (2013-10-03 00:37) [7][DCC Error] Unit1.pas(70): E2003 Undeclared identifier: "Encoding"
← →
DVM © (2013-10-03 00:40) [8]
> Антипов В.А. (03.10.13 00:37) [7]
uses SysUtils;
← →
DVM © (2013-10-03 00:40) [9]
> Антипов В.А. (03.10.13 00:37) [7]
у тебя точно Delphi 2010?
← →
Anatoly Podgoretsky © (2013-10-03 00:45) [10]
> Антипов В.А. (03.10.13 00:21) [4]
> Delphi 2010, а код простой:varF:TextFile;
> в юникоде?
ТеxtFile не пойдет, он без поддержки Юникода. Используй TStringList
← →
Антипов В.А. (2013-10-03 00:47) [11]Delphi 2010 Могу скрин кинуть :)
← →
Антипов В.А. (2013-10-03 00:48) [12]Такие юниты юзаю:
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
← →
DVM © (2013-10-03 00:50) [13]
> Антипов В.А. (03.10.13 00:47) [11]
Тогда делай как я написал. Я не помню, есть ли в D2010 свойство Encoding у TStringList, если все же нету, тогда вызови метод так SL.SaveToFile("rekviziti.lst", TEncoding.Unicode);
← →
Антипов В.А. (2013-10-03 00:52) [14]http://s020.radikal.ru/i721/1310/ef/f75eb963aa6e.jpg
← →
Антипов В.А. (2013-10-03 00:56) [15]SL.SaveToFile("rekviziti.lst", TEncoding.Unicode); компилит без ошибок. Отправлю клиенту, пусть потестит... Спасибо!
← →
Антипов В.А. (2013-10-03 00:57) [16]Читать надо тоже по особому или обычный Read подойдет?
← →
DVM © (2013-10-03 10:19) [17]
> Антипов В.А. (03.10.13 00:57) [16]
> или обычный Read подойдет?
Не подойдет. И вообще забудь про этот анахронизм паскалевские файлы.
У TStringList есть метод LoadFromFile, пользоваться точно также как SaveToFile, там тоже кодировка есть. Кстати, это еще вопрос, какая кодировка нужна твоему клиенту. Имхо наилучший вариант - UTF8.
← →
Антипов В.А. (2013-10-03 10:26) [18]Понял. Спасибо! :) Попробую набросать загрузку файла через TStringList...
← →
Антипов В.А. (2013-10-03 11:48) [19]Получилось,все работает как надо! Спасибо всем за полезные советы!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2014.08.24;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.002 c