Страница 2 из 2
Массив логических значений в число
Добавлено: 28 Декабрь 2015, 20:00
Yufil
Делал когда-то перехват GetIni-Putini с заменой оных на свои процедуры. Вместо автоматического сохранения в каталоге windows файл конфигурации копировался в недра %APPDATA% , при считывании исправлялись координаты окон xpos-ypos-width-height, дабы окна за край экрана не уползали. Ну и само хранение можно было написать по вкусу (я хранил в стандартном формате ini, но убирал пустые реквизиты). Есть желание-подниму...
Массив логических значений в число
Добавлено: 28 Декабрь 2015, 20:03
Игорь Столяров
RaFaeL писал(а): Быстрее читаются настройки -> быстрее запускается программа -> более радостные пользователи
Мне почему-то кажется, что время преобразования числа в массив и обратно, значительно уменьшит радость пользователей от увеличения скорости обмена. Мы храним такие матрицы настроек в строках и никаких заморочек с преобразованием. Ну или по крайне мере эти настройки читабельны при просмотре БД ...
Массив логических значений в число
Добавлено: 28 Декабрь 2015, 20:04
RaFaeL
Yufil писал(а): evaluate('0' & str & ''b') не преобразует ?
Можно попробовать. А обратно?
Про перехват интересно!
Массив логических значений в число
Добавлено: 28 Декабрь 2015, 20:06
RaFaeL
Игорь Столяров писал(а): Мне почему-то кажется, что время преобразования числа в массив и обратно, значительно уменьшит радость пользователей от увеличения скорости обмена.
Ой ну точно нет, преобразование целых чисел в памяти это быстрее быстрого
Массив логических значений в число
Добавлено: 28 Декабрь 2015, 20:15
Игорь Столяров
Я имел ввиду вариант с evaluate('0' & str & ''b') - он не будет быстрым. Хотя все нужно мерить и смотреть конечно.
Массив логических значений в число
Добавлено: 28 Декабрь 2015, 20:19
Yufil
Вынул из FreeAbc, сам когда-то пользовал
Код: Выделить всё
MODULE('C')
vsL2A (LONG, *CSTRING, ULONG), CSTRING, RAW, NAME('_ltoa')
vsA2L (*CSTRING), LONG, RAW, NAME('_atol')
END
Код: Выделить всё
LongToHex PROCEDURE(LONG pValue)
Temp CSTRING(32)
CODE
RETURN CLIP(UPPER(vsL2A(pValue,Temp,16)))
Сильное подозрение, что если 16 заменить на 2, то будет самое оно...
Массив логических значений в число
Добавлено: 28 Декабрь 2015, 20:29
kreator
RaFaeL писал(а):Вот такой пример - приложение хранит ini в каталоге с базой, база на сервере.
А зачем на сервере? Если это настройки для конкретного пользователя, то нужно хранить на машине пользователя. Если общие, то в самой базе.
Массив логических значений в число
Добавлено: 28 Декабрь 2015, 20:32
RaFaeL
kreator писал(а): А зачем на сервере? Если это настройки для конкретного пользователя, то нужно хранить на машине пользователя.
Идеология такая, что на компьютере пользователя вообще ничего не хранится, кроме ярлыка к программе. Всё на сервере
Вообще, конечно, хотелось бы уйти от ini файлов в принципе, но надо глобально всё переделывать... и не факт, что чтение/запись всех этих положений окон и т.п. в SQL будет быстрее в итоге, может и наборот быть
Массив логических значений в число
Добавлено: 28 Декабрь 2015, 20:34
Yufil
Фрагмент из действующей (скорее всего, помершей от старости) программы. В начале работы исполняется
setmyiniproc() , после чего GetIni и PutIni подменяются на процедуры MyGetIni и MyPutIni, а как их реализовать-дело хозяйское.
Массив логических значений в число
Добавлено: 29 Декабрь 2015, 6:55
kreator
RaFaeL писал(а):и не факт, что чтение/запись всех этих положений окон и т.п. в SQL будет быстрее в итоге, может и наборот быть
Да быстрее, факт. Но это, действительно, идеологически всё по-другому. И, думаю, найдутся проколы в этой схеме. INI-файл всё же довольно гибкая структура в отличии от таблиц БД.
Массив логических значений в число
Добавлено: 29 Декабрь 2015, 7:38
Admin
RaFaeL писал(а):не факт, что чтение/запись всех этих положений окон и т.п. в SQL
А вот тут подтверждаю. К примеру MAV. Были у меня процедуры GetOption и PutOption для SQL. На 40-50 опциях начинала тормозить загрузка программы. Пришлось добавить GetAllOptions которая одним селектом все грузит в очередь. А GetOption уже дергает оттуда.
Массив логических значений в число
Добавлено: 29 Декабрь 2015, 10:14
Yufil
Я бы хранил параметры в старом добром TPS. А SQL-баловство это...
Массив логических значений в число
Добавлено: 29 Декабрь 2015, 10:34
Admin
Yufil писал(а): Я бы хранил параметры в старом добром TPS. А SQL-баловство это...
У нас все мутно.
Настройки окон и формат бровзов хранится мавом в реестре.
Локальные настройки пользователя в INI файле в \Users\[username]\AppData\Local
Настройки подключения в INI файле в папке с программой.
Глобальные настройки конфигурации в SQL таблице.
У нас такая каша еще и из за того что пользователь может работать с кучей разных баз. При авторизации есть выбор базы, сервера и т.д.