Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1390669236
antonn
2014-01-25 21:00
2014.08.24
немного кривой order by в mssql


2-1380108417
Вася
2013-09-25 15:26
2014.08.24
Это фишка или баг фрипаскаля?


2-1380528742
12345
2013-09-30 12:12
2014.08.24
не вызывается событие OnBeforePost


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


15-1390664723
Novicer
2014-01-25 19:45
2014.08.24
Как использовать строковую переменную в SQL-запросе?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский