Страница: 1 |
Страница: 1 |
Вопрос: INI файлы
Добавлено: 17.07.05 22:11
Автор вопроса: SyavX
Кто скажет в чем ошибка?
Local buff As Asciiz * 255
Local res As Integer
buff = Space$(255)
res = GetPrivateProfileString(Section, KeyName, "", buff, SizeOf(buff), FileName)
Function = Left$(buff, res)
End Function
Вызываю первый раз - работает
Вызываю второй раз - не работает + у MsgBox'а левый заголовок
Вызываю третий раз - прога вылетает
MsgBox ReadINIKey("main", "key2", AppPath & "test.ini")
MsgBox ReadINIKey("main", "key3", AppPath & "test.ini")
Спасибо...
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
AgentFire
ICQ: 192496851
Вопросов: 75
Ответов: 3178
Профиль | | #1
Добавлено: 17.07.05 22:24
А если только первую строчку юзануть 3 раза..?
Номер ответа: 2
Автор ответа:
SyavX
Вопросов: 25
Ответов: 149
Профиль | | #2
Добавлено: 17.07.05 22:28
Всё равно какую юзать первой. Главное что на третьей вылетаю
Номер ответа: 3
Автор ответа:
SyavX
Вопросов: 25
Ответов: 149
Профиль | | #3
Добавлено: 18.07.05 22:05
Ну все-таки в чем прокол? Чё не так?
Номер ответа: 4
Автор ответа:
SyavX
Вопросов: 25
Ответов: 149
Профиль | | #4
Добавлено: 20.07.05 00:37
Всё-таки выход есть:
Local lRes As Long
lRes = GetPrivateProfileString(zSection, zKey, zDefault, zVariable, %MAX_PATH, zPath2File)
zVariable = Left$(zVariable, lRes)
End Sub
Спасибо RomK aka Куций за помощь.
Вот только кто скажет в чем же кардинальное отличие и почему этот код работает без глюков?
Номер ответа: 5
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #5
Добавлено: 20.07.05 01:46
ByVal / ByRef
Номер ответа: 6
Автор ответа:
SyavX
Вопросов: 25
Ответов: 149
Профиль | | #6
Добавлено: 20.07.05 22:30
Дык в №4 исп. ByRef, потому что код написан в виде процедуры, а не в виде ф-ции (значение переменной меняется в процедуре). А ф-ции использовать ByRef нет резона, она сама должна возвращать результат...