powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Переменная из INI файла
3 сообщений из 3, страница 1 из 1
Переменная из INI файла
    #36044547
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ,
Обнаружил непонятную тему:
Есть INI файл из которого читается одно значение - путь к базе данных.
[ShopsPath]
Path = С:\DBStorage\


Сам код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
LOcal a
a = ''
DECLARE INTEGER GetPrivateProfileString IN Win32API  AS GetPrivStr ;
  String cSection, String cKey, String cDefault, String @cBuffer, ;
  Integer nBufferSize, String cINIFile

LOCAL lcBuffer, ;
      lcOldError, ;
      lcPath, ;
      lnCycle, ;
      lnSpeed, ;
      llError, ;
      lnCommaPos, ;
      lcEntry 

lcPath = ''
lcBuffer = SPACE(100) + CHR(0)
lcOldError = ON('ERROR')
IF GetPrivStr("ShopsPath", "Path", "", ;
               @lcBuffer, LEN(lcBuffer), ;
               CURDIR() + 'app.ini') > 0
  ON ERROR llError = .T.
  lcPath  = lcBuffer
  
  ON ERROR &lcOldError
	IF !llError
		pMyPath = lcPath
	ENDIF
ENDIF
b = 'DB1.DBC'
c = pMyPath + b

WAIT WINDOW c 
Проблема в том что операция c = pMyPath + b не отрабатывается, то есть переменая С не содержит значения С:\DBStorage\DB1.DBC, а содержит только С:\DBStorage\....
Кто-то с этим сталкивался?
...
Рейтинг: 0 / 0
Переменная из INI файла
    #36044580
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Концевые пробелы забыл убрать.

Длина переменной lcBuffer как была 101 символ, так 101 символ и осталась. Т.е. в переменной C у тебя записано

"С:\DBStorage\" + 100 пробелов + Chr(0) + 'DB1.DBC'

Функция GetPrivStr() возвращает целое число, содержащее реальное количество символов в прочитанном значении. Это значение и надо использовать, чтобы при помощи LEFT() вырезать нужный фрагмент. Подробнее здесь

Как работать с ini-файлами

PS: Крайне не желательно использовать однобуквенные имена переменных, а особенно первые 8 букв латинского алфавита.
...
Рейтинг: 0 / 0
Переменная из INI файла
    #36044589
Valerii
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, я нащупал эту проблему и SUBSTR убираю лишнее...
А переменные - это чисто для примера...
Спасибо
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Переменная из INI файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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