From 0361aa3588b6eb0748705ab6d84d03caea97c572 Mon Sep 17 00:00:00 2001 From: alexs75 Date: Thu, 16 May 2019 07:40:56 +0000 Subject: [PATCH] RxFPC:rxstrutils add new function - FileToString git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@6914 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- components/rx/trunk/languages/rxconst.es.po | 12 +++++++++++ components/rx/trunk/languages/rxconst.pl.po | 12 +++++++++++ components/rx/trunk/languages/rxconst.ru.po | 12 +++++++++++ components/rx/trunk/languages/rxconst.uk.po | 13 +++++++++++- components/rx/trunk/languages/rxdconst.es.po | 13 +++++++++++- components/rx/trunk/languages/rxdconst.pl.po | 12 +++++++++++ components/rx/trunk/languages/rxdconst.ru.po | 12 +++++++++++ components/rx/trunk/languages/rxdconst.uk.po | 12 +++++++++++ components/rx/trunk/rxtools.lpk | 2 +- components/rx/trunk/rxtools/rxstrutils.pas | 22 +++++++++++++++++++- 10 files changed, 118 insertions(+), 4 deletions(-) diff --git a/components/rx/trunk/languages/rxconst.es.po b/components/rx/trunk/languages/rxconst.es.po index d33ace086..bf4422bba 100644 --- a/components/rx/trunk/languages/rxconst.es.po +++ b/components/rx/trunk/languages/rxconst.es.po @@ -45,6 +45,7 @@ msgid "Close" msgstr "" #: rxconst.scloseaftersec +#, object-pascal-format msgid "Close after %d sec" msgstr "" @@ -101,6 +102,7 @@ msgid "Not assigned task panel" msgstr "" #: rxconst.sexptcontrolnotfound +#, object-pascal-format msgid "Control not found in validate %s." msgstr "" @@ -121,6 +123,7 @@ msgid "Flat buttons" msgstr "Botones planos" #: rxconst.sfolderlistererr +#, object-pascal-format msgid "%s. Not assigned property MenuItem" msgstr "" @@ -141,6 +144,7 @@ msgid "Grab key" msgstr "" #: rxconst.shistorydesc +#, object-pascal-format msgid "History - \"%s\"" msgstr "" @@ -153,6 +157,7 @@ msgid "License" msgstr "" #: rxconst.sloadliberror +#, object-pascal-format msgid "Could not load '%s' library" msgstr "No se puede cargar la libreria '%s'" @@ -173,6 +178,7 @@ msgid "Options" msgstr "Opciones" #: rxconst.soutofrange +#, object-pascal-format msgid "Out of range %d %d %d %d" msgstr "" @@ -193,6 +199,7 @@ msgid "Question" msgstr "" #: rxconst.sreqvalue +#, object-pascal-format msgid "Error. Expected value for field %s." msgstr "" @@ -337,22 +344,27 @@ msgid "Transparent" msgstr "Transparente" #: rxconst.svariableisnotboolean +#, object-pascal-format msgid "Variable %s is not boolean" msgstr "" #: rxconst.svariableisnotdt +#, object-pascal-format msgid "Variable %s is not date/time" msgstr "" #: rxconst.svariableisnotfloat +#, object-pascal-format msgid "Variable %s is not float" msgstr "" #: rxconst.svariableisnotinteger +#, object-pascal-format msgid "Variable %s is not integer" msgstr "" #: rxconst.svariableisnotstring +#, object-pascal-format msgid "Variable %s is not string" msgstr "" diff --git a/components/rx/trunk/languages/rxconst.pl.po b/components/rx/trunk/languages/rxconst.pl.po index 65970b4c1..271629f77 100644 --- a/components/rx/trunk/languages/rxconst.pl.po +++ b/components/rx/trunk/languages/rxconst.pl.po @@ -53,6 +53,7 @@ msgid "Close" msgstr "Zamknij" #: rxconst.scloseaftersec +#, object-pascal-format msgid "Close after %d sec" msgstr "Zamknij po %d sek." @@ -109,6 +110,7 @@ msgid "Not assigned task panel" msgstr "Niepołączony panel zadań" #: rxconst.sexptcontrolnotfound +#, object-pascal-format msgid "Control not found in validate %s." msgstr "Nie znaleziono kontrolki w weryfikacji %s." @@ -129,6 +131,7 @@ msgid "Flat buttons" msgstr "Płaskie przyciski" #: rxconst.sfolderlistererr +#, object-pascal-format msgid "%s. Not assigned property MenuItem" msgstr "%s. Nie połączona właściwość MenuItem" @@ -149,6 +152,7 @@ msgid "Grab key" msgstr "Przechwyć klawisz" #: rxconst.shistorydesc +#, object-pascal-format msgid "History - \"%s\"" msgstr "Historia - \"%s\"" @@ -161,6 +165,7 @@ msgid "License" msgstr "Licencja" #: rxconst.sloadliberror +#, object-pascal-format msgid "Could not load '%s' library" msgstr "Nie można załadować biblioteki '%s'" @@ -181,6 +186,7 @@ msgid "Options" msgstr "Opcje" #: rxconst.soutofrange +#, object-pascal-format msgid "Out of range %d %d %d %d" msgstr "Poza zakresem %d %d %d %d" @@ -201,6 +207,7 @@ msgid "Question" msgstr "" #: rxconst.sreqvalue +#, object-pascal-format msgid "Error. Expected value for field %s." msgstr "Błąd. Spodziewano wartości dla pola %s." @@ -342,22 +349,27 @@ msgid "Transparent" msgstr "Przeźroczysty" #: rxconst.svariableisnotboolean +#, object-pascal-format msgid "Variable %s is not boolean" msgstr "" #: rxconst.svariableisnotdt +#, object-pascal-format msgid "Variable %s is not date/time" msgstr "" #: rxconst.svariableisnotfloat +#, object-pascal-format msgid "Variable %s is not float" msgstr "" #: rxconst.svariableisnotinteger +#, object-pascal-format msgid "Variable %s is not integer" msgstr "" #: rxconst.svariableisnotstring +#, object-pascal-format msgid "Variable %s is not string" msgstr "" diff --git a/components/rx/trunk/languages/rxconst.ru.po b/components/rx/trunk/languages/rxconst.ru.po index 7fac6610f..1d7ee2beb 100644 --- a/components/rx/trunk/languages/rxconst.ru.po +++ b/components/rx/trunk/languages/rxconst.ru.po @@ -53,6 +53,7 @@ msgid "Close" msgstr "Закрыть" #: rxconst.scloseaftersec +#, object-pascal-format msgid "Close after %d sec" msgstr "Будет закрыто через %d секунд" @@ -109,6 +110,7 @@ msgid "Not assigned task panel" msgstr "Не указана панель задач" #: rxconst.sexptcontrolnotfound +#, object-pascal-format msgid "Control not found in validate %s." msgstr "Элемент управления не найден в валидаторе %s" @@ -129,6 +131,7 @@ msgid "Flat buttons" msgstr "Плавающие кнопки" #: rxconst.sfolderlistererr +#, object-pascal-format msgid "%s. Not assigned property MenuItem" msgstr "%s. Не определено свойство MenuItem" @@ -149,6 +152,7 @@ msgid "Grab key" msgstr "Захватить клавишу" #: rxconst.shistorydesc +#, object-pascal-format msgid "History - \"%s\"" msgstr "История - \"%s\"" @@ -161,6 +165,7 @@ msgid "License" msgstr "Лицензия" #: rxconst.sloadliberror +#, object-pascal-format msgid "Could not load '%s' library" msgstr "Невозможно загрузить библиотеку '%s'" @@ -181,6 +186,7 @@ msgid "Options" msgstr "Параметры" #: rxconst.soutofrange +#, object-pascal-format msgid "Out of range %d %d %d %d" msgstr "За границами диапазона %d %d %d %d" @@ -201,6 +207,7 @@ msgid "Question" msgstr "Вопрос" #: rxconst.sreqvalue +#, object-pascal-format msgid "Error. Expected value for field %s." msgstr "Поле %s. Требуется значение" @@ -342,22 +349,27 @@ msgid "Transparent" msgstr "Прозрачно" #: rxconst.svariableisnotboolean +#, object-pascal-format msgid "Variable %s is not boolean" msgstr "Переменная %s не логического типа" #: rxconst.svariableisnotdt +#, object-pascal-format msgid "Variable %s is not date/time" msgstr "Переменная %s не дата/время" #: rxconst.svariableisnotfloat +#, object-pascal-format msgid "Variable %s is not float" msgstr "Переменная %s не число" #: rxconst.svariableisnotinteger +#, object-pascal-format msgid "Variable %s is not integer" msgstr "Переменная %s не целое число" #: rxconst.svariableisnotstring +#, object-pascal-format msgid "Variable %s is not string" msgstr "Переменная %s не строка" diff --git a/components/rx/trunk/languages/rxconst.uk.po b/components/rx/trunk/languages/rxconst.uk.po index 839643a68..12ca2d946 100644 --- a/components/rx/trunk/languages/rxconst.uk.po +++ b/components/rx/trunk/languages/rxconst.uk.po @@ -54,6 +54,7 @@ msgid "Close" msgstr "" #: rxconst.scloseaftersec +#, object-pascal-format msgid "Close after %d sec" msgstr "" @@ -112,6 +113,7 @@ msgid "Not assigned task panel" msgstr "" #: rxconst.sexptcontrolnotfound +#, object-pascal-format msgid "Control not found in validate %s." msgstr "Елемент управління не знайдений в валідаторі %s" @@ -132,6 +134,7 @@ msgid "Flat buttons" msgstr "Плаваючі кнопки" #: rxconst.sfolderlistererr +#, object-pascal-format msgid "%s. Not assigned property MenuItem" msgstr "" @@ -152,6 +155,7 @@ msgid "Grab key" msgstr "" #: rxconst.shistorydesc +#, object-pascal-format msgid "History - \"%s\"" msgstr "Історія - \"%s\"" @@ -164,6 +168,7 @@ msgid "License" msgstr "Ліцензія" #: rxconst.sloadliberror +#, object-pascal-format msgid "Could not load '%s' library" msgstr "Неможливо завантажити бібліотеку '%s'" @@ -184,6 +189,7 @@ msgid "Options" msgstr "Параметри" #: rxconst.soutofrange +#, object-pascal-format msgid "Out of range %d %d %d %d" msgstr "" @@ -204,7 +210,7 @@ msgid "Question" msgstr "" #: rxconst.sreqvalue -#, fuzzy +#, fuzzy, object-pascal-format #| msgid "Error. Expected value for filed %s." msgid "Error. Expected value for field %s." msgstr "Поле %s. Вимагається значення" @@ -350,22 +356,27 @@ msgid "Transparent" msgstr "Прозоро" #: rxconst.svariableisnotboolean +#, object-pascal-format msgid "Variable %s is not boolean" msgstr "" #: rxconst.svariableisnotdt +#, object-pascal-format msgid "Variable %s is not date/time" msgstr "" #: rxconst.svariableisnotfloat +#, object-pascal-format msgid "Variable %s is not float" msgstr "" #: rxconst.svariableisnotinteger +#, object-pascal-format msgid "Variable %s is not integer" msgstr "" #: rxconst.svariableisnotstring +#, object-pascal-format msgid "Variable %s is not string" msgstr "" diff --git a/components/rx/trunk/languages/rxdconst.es.po b/components/rx/trunk/languages/rxdconst.es.po index a3d14bdf5..0048577a0 100644 --- a/components/rx/trunk/languages/rxdconst.es.po +++ b/components/rx/trunk/languages/rxdconst.es.po @@ -6,6 +6,7 @@ msgid "All values" msgstr "Todos los valores" #: rxdconst.sapptitlelabel +#, object-pascal-format msgid "Application \"%s\"" msgstr "Aplicación \"%s\"" @@ -74,7 +75,7 @@ msgid "Data changed. Save?" msgstr "Dato cambiado. Salvar?" #: rxdconst.sdatabasename -#, fuzzy +#, fuzzy, object-pascal-format #| msgid "Database loocked: %s" msgid "Database locked: %s" msgstr "Base de Dato bloqueada: %s" @@ -84,6 +85,7 @@ msgid "Database" msgstr "" #: rxdconst.sdbcomboboxfieldnotassigned +#, object-pascal-format msgid "%s:TDBComboBox - DataField not assigned" msgstr "" @@ -165,6 +167,7 @@ msgid "Compare opertion needs field and const" msgstr "Operacion de comparación necesita campo y constante" #: rxdconst.sexprbadfield +#, object-pascal-format msgid "Field '%s' not used in filter expression" msgstr "Campo '%s' no usado en expresión de filtro" @@ -175,6 +178,7 @@ msgid "NULL-values enabled in '=' and '<>'" msgstr "Valor nulo habilitado en '=' y '<>'" #: rxdconst.sexprexpected +#, object-pascal-format msgid "Error %s" msgstr "Error %s" @@ -183,6 +187,7 @@ msgid "Error in filter expression" msgstr "Error en expresión de filtro" #: rxdconst.sexprinvalidchar +#, object-pascal-format msgid "Error symbol in expression: '%s'" msgstr "Error simbolo en expresión: '%s'" @@ -193,10 +198,12 @@ msgid "Error in filed name" msgstr "Error en nombre del fichero" #: rxdconst.sexprnorparen +#, object-pascal-format msgid "Error ')', error: %s" msgstr "Error ')', error: %s" #: rxdconst.sexprnotboolean +#, object-pascal-format msgid "Field '%s' is not boolean" msgstr "Campo '%s' no es boolean" @@ -209,14 +216,17 @@ msgid "Error in filter end" msgstr "Error en terminación del filtro" #: rxdconst.sfieldreadonly +#, object-pascal-format msgid "SFieldReadOnly %s" msgstr "SCampoSoloLectura %s" #: rxdconst.sfieldrequired +#, object-pascal-format msgid "Field '%s' must have a value" msgstr "Campo '%s' debe tener un valor" #: rxdconst.sfieldtypemismatch +#, object-pascal-format msgid "Type mismatch for field '%s', expecting: %s actual: %s" msgstr "Tipo no corresponde para el campo '%s', se esperaba: %s actual: %s" @@ -761,6 +771,7 @@ msgid "Top" msgstr "Inicio" #: rxdconst.sunknownfieldtype +#, object-pascal-format msgid "SUnknownFieldType %s" msgstr "Tipo Campo Desconocido %s" diff --git a/components/rx/trunk/languages/rxdconst.pl.po b/components/rx/trunk/languages/rxdconst.pl.po index 597be3f8d..f694b4c23 100644 --- a/components/rx/trunk/languages/rxdconst.pl.po +++ b/components/rx/trunk/languages/rxdconst.pl.po @@ -16,6 +16,7 @@ msgid "All values" msgstr "Wszystkie wartości" #: rxdconst.sapptitlelabel +#, object-pascal-format msgid "Application \"%s\"" msgstr "Aplikacja \"%s\"" @@ -81,6 +82,7 @@ msgid "Data changed. Save?" msgstr "Dane zostały zmienione? Zachować?" #: rxdconst.sdatabasename +#, object-pascal-format msgid "Database locked: %s" msgstr "Baza danych zablokowana: %s" @@ -89,6 +91,7 @@ msgid "Database" msgstr "Baza danych" #: rxdconst.sdbcomboboxfieldnotassigned +#, object-pascal-format msgid "%s:TDBComboBox - DataField not assigned" msgstr "" @@ -167,6 +170,7 @@ msgid "Compare opertion needs field and const" msgstr "Operacja porównania wymaga podania pola i wartości" #: rxdconst.sexprbadfield +#, object-pascal-format msgid "Field '%s' not used in filter expression" msgstr "Pole '%s' nie jest używane w wyrażeniu filtra" @@ -175,6 +179,7 @@ msgid "NULL-values enabled in '=' and '<>'" msgstr "Wartości NULL są włączone w '=' oraz '<>'" #: rxdconst.sexprexpected +#, object-pascal-format msgid "Error %s" msgstr "Błąd %s" @@ -183,6 +188,7 @@ msgid "Error in filter expression" msgstr "Błąd w wyrażeniu filtra" #: rxdconst.sexprinvalidchar +#, object-pascal-format msgid "Error symbol in expression: '%s'" msgstr "Błędny symbol w wyrażeniu: '%s'" @@ -191,10 +197,12 @@ msgid "Error in filed name" msgstr "Błąd w nazwie pola" #: rxdconst.sexprnorparen +#, object-pascal-format msgid "Error ')', error: %s" msgstr "Błąd ')', błąd: %s" #: rxdconst.sexprnotboolean +#, object-pascal-format msgid "Field '%s' is not boolean" msgstr "Pole '%s' nie jest typu logicznego" @@ -207,14 +215,17 @@ msgid "Error in filter end" msgstr "Błąd na końcu filtra" #: rxdconst.sfieldreadonly +#, object-pascal-format msgid "SFieldReadOnly %s" msgstr "" #: rxdconst.sfieldrequired +#, object-pascal-format msgid "Field '%s' must have a value" msgstr "Pole '%s' musi mieć wartość" #: rxdconst.sfieldtypemismatch +#, object-pascal-format msgid "Type mismatch for field '%s', expecting: %s actual: %s" msgstr "" @@ -744,6 +755,7 @@ msgid "Top" msgstr "Góra" #: rxdconst.sunknownfieldtype +#, object-pascal-format msgid "SUnknownFieldType %s" msgstr "" diff --git a/components/rx/trunk/languages/rxdconst.ru.po b/components/rx/trunk/languages/rxdconst.ru.po index dd5ddf3ea..ba679a78e 100644 --- a/components/rx/trunk/languages/rxdconst.ru.po +++ b/components/rx/trunk/languages/rxdconst.ru.po @@ -16,6 +16,7 @@ msgid "All values" msgstr "Все значения" #: rxdconst.sapptitlelabel +#, object-pascal-format msgid "Application \"%s\"" msgstr "Программа \"%s\"" @@ -81,6 +82,7 @@ msgid "Data changed. Save?" msgstr "Данные были изменены. Сохранить?" #: rxdconst.sdatabasename +#, object-pascal-format msgid "Database locked: %s" msgstr "База данных блокирована: %s" @@ -89,6 +91,7 @@ msgid "Database" msgstr "Имя базы данных" #: rxdconst.sdbcomboboxfieldnotassigned +#, object-pascal-format msgid "%s:TDBComboBox - DataField not assigned" msgstr "%s:TDBComboBox - Не присвоено свойство DataField" @@ -167,6 +170,7 @@ msgid "Compare opertion needs field and const" msgstr "Операции сравнения требуют наличия поля и константы" #: rxdconst.sexprbadfield +#, object-pascal-format msgid "Field '%s' not used in filter expression" msgstr "Поле '%s' не может быть использовано в выражении фильтрации" @@ -175,6 +179,7 @@ msgid "NULL-values enabled in '=' and '<>'" msgstr "NULL-значения разрешены только в выражениях '=' и '<>'" #: rxdconst.sexprexpected +#, object-pascal-format msgid "Error %s" msgstr "Ожидалось выражение, а встречено %s" @@ -183,6 +188,7 @@ msgid "Error in filter expression" msgstr "Ошибка в выражении фильтра" #: rxdconst.sexprinvalidchar +#, object-pascal-format msgid "Error symbol in expression: '%s'" msgstr "Ошибочный символ в выражении: '%s'" @@ -191,10 +197,12 @@ msgid "Error in filed name" msgstr "Ошибка в имени поля" #: rxdconst.sexprnorparen +#, object-pascal-format msgid "Error ')', error: %s" msgstr "Ожидалось ')', а встречено: %s" #: rxdconst.sexprnotboolean +#, object-pascal-format msgid "Field '%s' is not boolean" msgstr "Поле '%s' не логического типа" @@ -207,14 +215,17 @@ msgid "Error in filter end" msgstr "Ошибка в окончании выражения фильтра" #: rxdconst.sfieldreadonly +#, object-pascal-format msgid "SFieldReadOnly %s" msgstr "Поле %s только для чтения" #: rxdconst.sfieldrequired +#, object-pascal-format msgid "Field '%s' must have a value" msgstr "Поле '%s' ожидает значение" #: rxdconst.sfieldtypemismatch +#, object-pascal-format msgid "Type mismatch for field '%s', expecting: %s actual: %s" msgstr "Несоответсвие типов для поля '%s', необходимо: %s введено: %s" @@ -743,6 +754,7 @@ msgid "Top" msgstr "Сверху" #: rxdconst.sunknownfieldtype +#, object-pascal-format msgid "SUnknownFieldType %s" msgstr "Не определён тип данных для поля %s" diff --git a/components/rx/trunk/languages/rxdconst.uk.po b/components/rx/trunk/languages/rxdconst.uk.po index 8ced7df89..7d3e945ee 100644 --- a/components/rx/trunk/languages/rxdconst.uk.po +++ b/components/rx/trunk/languages/rxdconst.uk.po @@ -15,6 +15,7 @@ msgid "All values" msgstr "" #: rxdconst.sapptitlelabel +#, object-pascal-format msgid "Application \"%s\"" msgstr "Програма \"%s\"" @@ -81,6 +82,7 @@ msgid "Data changed. Save?" msgstr "Дані були змінені. Зберегти?" #: rxdconst.sdatabasename +#, object-pascal-format msgid "Database locked: %s" msgstr "База даних блокована: %s" @@ -89,6 +91,7 @@ msgid "Database" msgstr "" #: rxdconst.sdbcomboboxfieldnotassigned +#, object-pascal-format msgid "%s:TDBComboBox - DataField not assigned" msgstr "%s:TDBComboBox - Не присвоєно властивість DataField" @@ -170,6 +173,7 @@ msgid "Compare opertion needs field and const" msgstr "Операції порівняння вимагають наявності поля і константи" #: rxdconst.sexprbadfield +#, object-pascal-format msgid "Field '%s' not used in filter expression" msgstr "Поле '%s' не може бути використане в виразі фільтрації" @@ -178,6 +182,7 @@ msgid "NULL-values enabled in '=' and '<>'" msgstr "NULL-значення дозволені тільки у виразах '=' і '<>'" #: rxdconst.sexprexpected +#, object-pascal-format msgid "Error %s" msgstr "Очікували вираз, а зустріли %s" @@ -186,6 +191,7 @@ msgid "Error in filter expression" msgstr "Помилка у виразі фільтра" #: rxdconst.sexprinvalidchar +#, object-pascal-format msgid "Error symbol in expression: '%s'" msgstr "Помилковий символ у виразі: '%s'" @@ -194,10 +200,12 @@ msgid "Error in filed name" msgstr "Помилка в імені поля" #: rxdconst.sexprnorparen +#, object-pascal-format msgid "Error ')', error: %s" msgstr "Очікували ')', а зустріли: %s" #: rxdconst.sexprnotboolean +#, object-pascal-format msgid "Field '%s' is not boolean" msgstr "Поле '%s' не логічного типу" @@ -210,14 +218,17 @@ msgid "Error in filter end" msgstr "Помилка в закінченні виразу фільтра" #: rxdconst.sfieldreadonly +#, object-pascal-format msgid "SFieldReadOnly %s" msgstr "Поле %s лише для читання" #: rxdconst.sfieldrequired +#, object-pascal-format msgid "Field '%s' must have a value" msgstr "Поле '%s' очікує значення" #: rxdconst.sfieldtypemismatch +#, object-pascal-format msgid "Type mismatch for field '%s', expecting: %s actual: %s" msgstr "Неспівпадіння типів для стовпця '%s', необхідно: %s введено: %s" @@ -749,6 +760,7 @@ msgid "Top" msgstr "Вверх" #: rxdconst.sunknownfieldtype +#, object-pascal-format msgid "SUnknownFieldType %s" msgstr "Не визначений тип даних для поля %s" diff --git a/components/rx/trunk/rxtools.lpk b/components/rx/trunk/rxtools.lpk index 9be409b3d..cb1d7fa2c 100644 --- a/components/rx/trunk/rxtools.lpk +++ b/components/rx/trunk/rxtools.lpk @@ -14,7 +14,7 @@ - + diff --git a/components/rx/trunk/rxtools/rxstrutils.pas b/components/rx/trunk/rxtools/rxstrutils.pas index 10c54ecde..926c02907 100644 --- a/components/rx/trunk/rxtools/rxstrutils.pas +++ b/components/rx/trunk/rxtools/rxstrutils.pas @@ -232,7 +232,7 @@ function RomanToInt(const S: string): Longint; deprecated; //use this function f doesn't contain a valid roman numeric value, the 0 value is returned. } procedure StrToStrings(const S:string; const List:TStrings; const Delims:Char); - +function FileToString(const AFileName:string):string; const DigitChars = ['0'..'9']; Brackets = ['(',')','[',']','{','}']; @@ -1129,4 +1129,24 @@ begin end; end; +function FileToString(const AFileName: string): string; +var + F: TFileStream; +begin + if FileExists(AFileName) then + begin; + F:=TFileStream.Create(AFileName, fmOpenRead); + if F.Size>0 then + begin + SetLength(Result, F.Size); + F.ReadBuffer(Result[1], F.Size); + end + else + Result:=''; + F.Free; + end + else + Result:=''; +end; + end.