powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / текстовый файл +FoxPRO
10 сообщений из 10, страница 1 из 1
текстовый файл +FoxPRO
    #34180531
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
помогите:
как написать в проге, чтобы путь к базам-брал из текстового файла, который располагался бы в той же директории что и exe файл?
и если такого файла в этой директории нет, то выдавать ошибку
...
Рейтинг: 0 / 0
текстовый файл +FoxPRO
    #34180585
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Этот файл должен иметь имя CONFIG.FPW Путь доступа в нем прописывается такими командами

Код: plaintext
PATH=C:\MyFolder1,\\ShareResource\Folder2,ChildFolder3

В самой проге проверяешь текущую настройку

SET("PATH")

Если пустая, то ругаешся нехорошими словами
...
Рейтинг: 0 / 0
текстовый файл +FoxPRO
    #34180629
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь, что после моего ответа у вас возникнет больше вопросов, чем было а ясность не наступит, но все равно попробую:

В начале программы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
#DEFINE		INIFILE				"CONFIG.INI"
*-- Определяю DLL
DECLARE INTEGER GetPrivateProfileString IN Win32API  AS GetPrivStr ;
	STRING cSection, STRING cKey, STRING cDefault, STRING @cBuffer, ;
	INTEGER nBufferSize, STRING cINIFile

LOCAL m.MyFile
*-- Читаю из CONFIG.INI значение параметра Таблица1
m.MyFile = GetPrivStr("Таблица1", "СПИСОК ТАБЛИЦ")
IF !FILE(m.MyFile)
    *-- Нет файла, ошибка
    MESSAGEBOX("НЕТ ФАЙЛА: " + m.MyFile,  16 , "ОШИБКА!")
    *-- Обработка ошибки
ENDIF
USE (m.MyFile1) IN  0 
*-- Читаю из CONFIG.INI значение параметра Таблица2
m.MyFile = GetPrivStr("Таблица2", "СПИСОК ТАБЛИЦ")
IF !FILE(m.MyFile)
    *-- Нет файла, ошибка
    MESSAGEBOX("НЕТ ФАЙЛА: " + m.MyFile,  16 , "ОШИБКА!")
    *-- Обработка ошибки
ENDIF
USE (m.MyFile1) IN  0 
....
В процедурном файле:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
FUNCTION ReadFromINIFile
	LPARAMETERS lcName, lcRasdel, lcIniFile
	*-- Чтение одного параметра из INI - файла
	LOCAL  lcBuffer, lcRetValue, lPath, loError
	m.lPath = SYS( 5 )+SYS( 2003 ) + '\'
	m.lcIniFile = IIF(VARTYPE(m.lcIniFile) = "C" AND !EMPTY(m.lcIniFile),  lcIniFile, INIFILE)
	m.lcBuffer = SPACE( 100 ) + CHR( 0 )
	m.lcRetValue = ""
	TRY
		IF GetPrivStr(m.lcRasdel, m.lcName, "", @lcBuffer, LEN(m.lcBuffer), ;
				m.lPath + m.lcIniFile) >  0 
			m.lcRetValue = ALLTRIM(LEFT(m.lcBuffer, AT(CHR( 0 ), m.lcBuffer)- 1 ))
		ENDIF
	CATCH TO loError
		m.lcRetValue = ""
	ENDTRY
	RETURN m.lcRetValue
ENDFUNC

В текстовом файле CONFIG.INI должен быть такой текст:
Код: plaintext
1.
2.
3.
[СПИСОК ТАБЛИЦ]
Таблица1=C:\MYDATABASE\Table1.dbf
Таблица2=C:\MYDATABASE\Table2.dbf
...

С уважением, Алексей
...
Рейтинг: 0 / 0
текстовый файл +FoxPRO
    #34180641
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksey-KБоюсь, что после моего ответа у вас возникнет больше вопросов, чем было а ясность не наступит, но все равно попробую:

В начале программы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
#DEFINE		INIFILE				"CONFIG.INI"
*-- Определяю DLL
DECLARE INTEGER GetPrivateProfileString IN Win32API  AS GetPrivStr ;
	STRING cSection, STRING cKey, STRING cDefault, STRING @cBuffer, ;
	INTEGER nBufferSize, STRING cINIFile

LOCAL m.MyFile
*-- Читаю из CONFIG.INI значение параметра Таблица1
m.MyFile = GetPrivStr("Таблица1", "СПИСОК ТАБЛИЦ")
IF !FILE(m.MyFile)
    *-- Нет файла, ошибка
    MESSAGEBOX("НЕТ ФАЙЛА: " + m.MyFile,  16 , "ОШИБКА!")
    *-- Обработка ошибки
ENDIF
USE (m.MyFile1) IN  0 
*-- Читаю из CONFIG.INI значение параметра Таблица2
m.MyFile = GetPrivStr("Таблица2", "СПИСОК ТАБЛИЦ")
IF !FILE(m.MyFile)
    *-- Нет файла, ошибка
    MESSAGEBOX("НЕТ ФАЙЛА: " + m.MyFile,  16 , "ОШИБКА!")
    *-- Обработка ошибки
ENDIF
USE (m.MyFile1) IN  0 
....
В процедурном файле:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
FUNCTION ReadFromINIFile
	LPARAMETERS lcName, lcRasdel, lcIniFile
	*-- Чтение одного параметра из INI - файла
	LOCAL  lcBuffer, lcRetValue, lPath, loError
	m.lPath = SYS( 5 )+SYS( 2003 ) + '\'
	m.lcIniFile = IIF(VARTYPE(m.lcIniFile) = "C" AND !EMPTY(m.lcIniFile),  lcIniFile, INIFILE)
	m.lcBuffer = SPACE( 100 ) + CHR( 0 )
	m.lcRetValue = ""
	TRY
		IF GetPrivStr(m.lcRasdel, m.lcName, "", @lcBuffer, LEN(m.lcBuffer), ;
				m.lPath + m.lcIniFile) >  0 
			m.lcRetValue = ALLTRIM(LEFT(m.lcBuffer, AT(CHR( 0 ), m.lcBuffer)- 1 ))
		ENDIF
	CATCH TO loError
		m.lcRetValue = ""
	ENDTRY
	RETURN m.lcRetValue
ENDFUNC

В текстовом файле CONFIG.INI должен быть такой текст:
Код: plaintext
1.
2.
3.
[СПИСОК ТАБЛИЦ]
Таблица1=C:\MYDATABASE\Table1.dbf
Таблица2=C:\MYDATABASE\Table2.dbf
...

С уважением, Алексей

сейчас пытаюсь разобраться, и вставить в свою программу
все равно спасибо ВСЕМ)
...
Рейтинг: 0 / 0
текстовый файл +FoxPRO
    #34180665
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только все-таки надо разобраться с терминологий:
Я вас правильно понял: "путь к базам" это путь к DBF - файлам?
Если это так (хотя это не верно по семантике термина "база данных"), то мой вариант вам подойдет. А если под базой данных вы понимаете целую папку со всеми файлами, составляющую вашу базу данных, то вариант ВладимирМ более прост и элегантен и не надо городить огород с WinAPI.

С уважением, Алексей
...
Рейтинг: 0 / 0
текстовый файл +FoxPRO
    #34180677
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а что писать в списке таблиц???????
...
Рейтинг: 0 / 0
текстовый файл +FoxPRO
    #34180788
нач
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как нить проще?
Плис....
...
Рейтинг: 0 / 0
текстовый файл +FoxPRO
    #34180854
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нача что писать в списке таблиц???????
В списке таблиц надо писать список ваших таблиц, которые необходимо открыть для работы.
С уважением, Алексей.
P.S. Я же говорил, что вопрос будет больше, чем ответов :)
...
Рейтинг: 0 / 0
текстовый файл +FoxPRO
    #34180892
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нача как нить проще?
Плис....Проще, чем ВладимирМ указал, по моему и нет.
...
Рейтинг: 0 / 0
текстовый файл +FoxPRO
    #34182093
Алексей О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нача как нить проще?
Плис....
можно так:
SYS(16) возвратит путь к исполняемой программе с именем
program() имя этой программы
из одного "вычитаешь" другое вот тебе каталог где лежить программа
fopen(путь+имя файла.txt)
s=fgets() строка из файла вероятно и есть искомый путь
use (s+"table1") - начали открывать таблицы
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / текстовый файл +FoxPRO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]