Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 12:08

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Чтение настроек
СообщениеДобавлено: Сб апр 28, 2007 15:51 
Не в сети

Зарегистрирован: Вс окт 15, 2006 13:05
Сообщения: 149
Откуда: Украина, Киев
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Необходимо сделать файл конфигурации. За пример взял sp4.ini Все понятно, в случае числовых параметров, а как быть со строковыми?

Более конкретно. В программе открывается коннект на БД. Ее параметрами являются: назване ODBC источника, логин и пароль доступа.
Код:
StartSQL NOT IF ." ! Don't start ODBC driver " CR THEN
   TO fodbc
   S" ALFA" S" SIEBEL" S" SIEBEL" fodbc ConnectSQL


Пробовал делать через слова, примерно так:
Код:
StartSQL NOT IF ." ! Don't start ODBC driver " CR THEN
   TO fodbc
   ODBC_NAME ODBC_USER ODBC_PASS fodbc ConnectSQL

а в файле настроек писал так
Код:
: ODBC_NAME S" ALFA" ;
: ODBC_USER S" SIEBEL" ;
:  ODBC_PASS S" SIEBEL" ;

файл подключаю так:
Код:
S" show_tbl.f" INCLUDED

Но столкнулся с:
1) для компиляции необходимо определять заранее слова ODBC_NAME ODBC_USER ODBC_PASS ;
2) переопределенные слова не подхватываются словом, устанавливающего соединение..


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 28, 2007 16:23 
Не в сети

Зарегистрирован: Чт май 04, 2006 18:18
Сообщения: 456
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Самый простой вариант для строк - ~ac/lib/str5.f - автоматическое выделение памяти под строку и представление одним адресом.
Тогда
Файл настроек :
Цитата:
" ALFA" TO odbc.name
" SIEBEL" TO odbc.user
" SIEBEL" TO odbc.pass

Код :
Цитата:
\ значения по умолчанию
" несотворённое_пространство" VALUE odbc.name
" anonymous" VALUE odbc.user
"" VALUE odbc.pass
\ подключение настроек пользователя
S" settings.f" INCLUDED


Предпочтительней было бы разработать лексикон для такой задачи, с хранением всех настроек в одной структуре, сериализацией/десериализацией, упрощённое задание, автоматический контроль обязательных и необязательных параметров итп.

_________________
http://forth.org.ru/~ygrek


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 28, 2007 16:48 
Не в сети

Зарегистрирован: Вс окт 15, 2006 13:05
Сообщения: 149
Откуда: Украина, Киев
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Спасибо. Подошло.

Стандартного функционала с головой хватает для этой задачи. Здесь и проявилось хорошее преимущество Форта. Я в уже настройках набросал пару, скажем так, макросов... Так что программа зажила :)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт май 04, 2007 21:57 
Не в сети

Зарегистрирован: Сб янв 27, 2007 22:00
Сообщения: 106
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
А еще проще вызвать системные функции работы с INI-файлами.

Если извращаться с отдельным языком, то проще вынести все его ключевые слова в отдельный словарь и грузить настройки через INCLUDE.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс май 06, 2007 15:51 
Не в сети

Зарегистрирован: Вс окт 15, 2006 13:05
Сообщения: 149
Откуда: Украина, Киев
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Нет, не проще. Проще делать все средствами самого языка тем более, в данном случае, это не так сложно. В этом случае нет смыслового развития.

В данном случае, была изменена архитектура и в настройках прописывалачь сразу функция подключения к ODBC с нужными параметрами. Где-то так:
Код:
: t
S" alfa" S" user" S" pass" ConnectToODBC ;


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вс май 06, 2007 18:04 
Не в сети

Зарегистрирован: Сб янв 27, 2007 22:00
Сообщения: 106
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
AlexF писал(а):
Проще делать все средствами самого языка

Сомнительное утверждение. В таком случае и ODBC не надо использовать.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB