О применении библиотеки FastScript в своих проектах. Дополнение к Части-1 «Расширение функционала»

К вопросу о локализации программных объектов на уровне FS-скрипта.

На предыдущую страницу…



Возможности библиотеки FastScript (в контексте локализации программных объектов на уровне FS-скриптов) позволяют (в том числе) использовать и китайские иероглифы.

На рисунке ниже приведен иллюстрирующий пример.

Тексты FS-скриптов могут сохраняться как в файлах, так и в таблицах БД.
В обоих вариантах есть нюансы.
В разделах ниже рассмотрены оба этих варианта с практической точки зрения.


Примечание − к этой статье прилагаются исходные тексты соответствующего иллюстрирующего примера (ZIP-архив).


Хранение текстов FS-скриптов в файлах

Для корректного сохранения FS-скрипта в файл (в кодировке UTF-8) и последующего чтения из файла можно использовать следующие функции (их исходники см. по ссылкам):

//Сохранить FS-скрипт в файл
function FS_SaveToFile(fnScr:string;
                       ListScr: TStrings;
                       ItsUTF8:boolean=false
                      ):boolean;
//Загрузить FS-скрипт из файла
function FS_LoadFromFile(fnScr:string;
                         ListScr: TStrings;
                         ItsUTF8:boolean=false
                        ):boolean;

Хранение текстов FS-скриптов в таблицах БД

При хранении текстов FS-скриптов в таблицах БД есть некоторые нюансы, которые следует учитывать.
Так, например, СУБД SQLite корректно (по умолчанию) поддерживает UTF-8 при хранении текстов в полях типа TEXT.
А вот с PostgreSQL могут быть проблемы.
Например, если БД создана таким образом:

То при сохранении текста в UTF-8 – будут «кракозябры».
В этом случае, для сохранения и считывания FS-скриптов, можно использовать кодировку в Base64.

Для этого можно, например, использовать следующие функции (их исходники см. по ссылкам):

//Кодирование в Base64
function Str_to_StrBase64(S: string): string;

//Декодирование из Base64
function StrBase64_to_Str(S: string): string;

Пример применения

В иллюстрирующем примере приведены оба варианта хранения текстов FS-скриптов в кодировке UTF-8.
В качестве БД выбрана СУБД SQLite, где создана таблица следующей структуры (см. рисунок ниже).

На рисунке ниже приведен скрин главной формы Приложения (в RunTime), где виден результат применения указанных выше функций.

Здесь все прозрачно, пояснения вряд ли требуются.
Детали – см. в исходниках иллюстрирующего примера.



На предыдущую страницу…


Дата: 19.03.2024