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

Вниз

Проблема с поддержкой латышских букв в программе   Найти похожие ветки 

 
Антипов В.А.   (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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.006 c
15-1389881868
Drowsy
2014-01-16 18:17
2014.08.24
Проблема загрузки.


2-1380406476
Энтони
2013-09-29 02:14
2014.08.24
Вопрос по case of


11-1251813475
AndreyRus
2009-09-01 17:57
2014.08.24
Нужна ли FileClose в KOL?


2-1380744070
Антипов В.А.
2013-10-03 00:01
2014.08.24
Проблема с поддержкой латышских букв в программе


15-1390592076
Дмитрий СС
2014-01-24 23:34
2014.08.24
Выдача сдачи наличными.