Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Power Basic

Страница: 1 |

 

  Вопрос: INI файлы Добавлено: 17.07.05 22:11  

Автор вопроса:  SyavX
Кто скажет в чем ошибка?

Function ReadINIKey(ByVal Section As Asciiz * 16, ByVal KeyName As Asciiz * 16, ByVal FileName As Asciiz * 260) As String
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", "key1", AppPath & "test.ini")
    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
Всё-таки выход есть:
Sub ReadINIKey(zSection As Asciiz * 16, zKey As Asciiz * 16, zDefault As Asciiz * 512, zPath2File As Asciiz * %MAX_PATH, ByRef zVariable As Asciiz * 512)
  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 нет резона, она сама должна возвращать результат...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам