Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Переменная из INI файла / 3 сообщений из 3, страница 1 из 1
16.06.2009, 19:17
    #36044547
Valerii
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная из INI файла
Народ,
Обнаружил непонятную тему:
Есть 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
16.06.2009, 19:44
    #36044580
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Переменная из INI файла
Концевые пробелы забыл убрать.

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

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

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

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

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


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