Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Delphi 10 чтение ini файла на иврите  [new]
ACLeo
Member

Откуда:
Сообщений: 558
Проблема следующая. Нужна программа на иврите. Я все названия кнопок (колонок и т.д.) считываю с ini файла.
В файл все сохраняется правильно (в блокноте открываю все ок), а вот считываю и получается такое - 'Ч”Ч•ЧЎЧЈ Ч¤ЧЁЧ™Ч'#$0098

Кто знает как это исправить? Заранее спасибо!
5 апр 21, 21:39    [22304800]     Ответить | Цитировать Сообщить модератору
 Re: Delphi 10 чтение ini файла на иврите  [new]
ACLeo
Member

Откуда:
Сообщений: 558
ACLeo,

Нашел решение сам.
Кому интересно: TIniFile не считывает UTF8. Поэтому надо так:

function TDM.getCaption(xForm, xComp: string): widestring;
var
appINI: TMemIniFile;
begin
appINI := TMemIniFile.Create(ExtractFileDir(ParamStr(0))+'\rus.lng', TEncoding.UTF8);
Result := appINI.ReadString(xForm, xComp, 'No caption');
appINI.Free;
end;
5 апр 21, 21:50    [22304804]     Ответить | Цитировать Сообщить модератору
 Re: Delphi 10 чтение ini файла на иврите  [new]
asutp2
Member

Откуда: Тюмень
Сообщений: 835
ACLeo,

ты открыл для себя справку в IDE?)
5 апр 21, 22:05    [22304812]     Ответить | Цитировать Сообщить модератору
 Re: Delphi 10 чтение ini файла на иврите  [new]
X11
Member

Откуда: Kharkiv, Ukraine
Сообщений: 15177
токо хтел написать про memini...
В общем, предупреждаю про маленький подводный камень: если захочешь оставлять комментарии в файле, то используй # (решетку), а не точку с запятой
6 апр 21, 08:34    [22304886]     Ответить | Цитировать Сообщить модератору
 Re: Delphi 10 чтение ini файла на иврите  [new]
GunSmoker
Member

Откуда:
Сообщений: 3205
Насколько я помню, TIniFile - это обёртка к WinAPI. А WinAPI UTF-8 в .ini файлах вполне себе поддерживает. Главное, чтобы .ini файл имел корректный BOM (Блокнот, к примеру, его не требует и может угадывать), а также - пустую строку в начале (иначе GetPrivateProfileString будет считать BOM частью имени секции/параметра).
7 апр 21, 15:26    [22305462]     Ответить | Цитировать Сообщить модератору
 Re: Delphi 10 чтение ini файла на иврите  [new]
Fr0sT-Brutal
Member

Откуда:
Сообщений: 674
Имхо, применять именно TiniFile есть ровно 0 причин.
7 апр 21, 16:16    [22305503]     Ответить | Цитировать Сообщить модератору
 Re: Delphi 10 чтение ini файла на иврите  [new]
defecator
Member

Откуда:
Сообщений: 39736
Fr0sT-Brutal
Имхо, применять именно TiniFile есть ровно 0 причин.


нужен свой велосипед !
7 апр 21, 20:49    [22305689]     Ответить | Цитировать Сообщить модератору
 Re: Delphi 10 чтение ini файла на иврите  [new]
fraks
Member

Откуда: Новосибирск
Сообщений: 1642
defecator
Fr0sT-Brutal
Имхо, применять именно TiniFile есть ровно 0 причин.


нужен свой велосипед !


Да зачем, просто брать TMemIniFile.

Я использую ini-файл для хранения настроек приложения.
Сейчас этот файл имеет размер 77кбайт и 2800 строк.
TIniFile на этих объемах очень хорошо тормозит. На сколько я понял, он на чтение/запись каждого параметра открывает/закрывает файл. Если нужно работать не с одним параметром - это это катастрофически медленно.

Решил переписать по другому, грузить все в StringList и работать в памяти. Придумал название класса. TMemIniFile :)
Накидал рыбу. При попытке скомпилить обнаружил что я со своим велосипедом в точности попал в уже существующий с таким же именем штатный инструмент. А если бы я не попал по имени??

:)
8 апр 21, 04:17    [22305765]     Ответить | Цитировать Сообщить модератору
 Re: Delphi 10 чтение ini файла на иврите  [new]
Fr0sT-Brutal
Member

Откуда:
Сообщений: 674
fraks
Решил переписать по другому, грузить все в StringList и работать в памяти. Придумал название класса. TMemIniFile :)
Накидал рыбу. При попытке скомпилить обнаружил что я со своим велосипедом в точности попал в уже существующий с таким же именем штатный инструмент. А если бы я не попал по имени??

:)

Вот что значит - надо изучать стандартную либу :)
8 апр 21, 10:27    [22305841]     Ответить | Цитировать Сообщить модератору
 Re: Delphi 10 чтение ini файла на иврите  [new]
ОперацияПингвин
Member

Откуда:
Сообщений: 648
Блог
ACLeo
ACLeo,

Нашел решение сам.


Проверь еще работоспособность функционала по субботам
8 апр 21, 13:16    [22305932]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить