powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не понятно ведет себя функция GetPrivateProfileString()
4 сообщений из 4, страница 1 из 1
Не понятно ведет себя функция GetPrivateProfileString()
    #38211877
t_e_m_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть ini-файл в котором хранятся настройки программы. В него я записываю 2-е даты. Записывает чудесно, считывает тоже. Но если вдруг в файле нет нужной секции в переменную сбрасываются какие-то левые символы. При чем количество прочитаных символов то 3 то 5.
Код: vbnet
1.
kol = GetPrivateProfileString("Transition", "Winter", Date.Now, str, 255, Ini_File)


Как это обойти?
...
Рейтинг: 0 / 0
Не понятно ведет себя функция GetPrivateProfileString()
    #38211997
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
t_e_m_a,

Код: vbnet
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.
'declarations for working with Ini files

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias _
 "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
 ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, _
 ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileInt Lib "Kernel32.dll" Alias _
 "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, _
 ByVal nDefault As Long, ByVal lpFileName As String) As Long
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias _
 "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
 ByVal lpString As Any, ByVal lpFileName As String) As Long

Private Function ReadIni(Section As String, Key As String, Default As String, FileName As String) As String

  Dim RetVal As String, v As Long
  Dim retLen As Long
    
  Do
    retLen = retLen + 260 ' arbitrary - can be set higher/lower if desired
    RetVal = Space(retLen)
    v = GetPrivateProfileString(Section, Key, Default, RetVal, retLen, FileName)
  Loop Until v < retLen - 1
    
  ReadIni = Left$(RetVal, v)
  
End Function



У меня короче при пользовании тем что написал нигде ничего пока не глючит.
...
Рейтинг: 0 / 0
Не понятно ведет себя функция GetPrivateProfileString()
    #38212518
t_e_m_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дмитрий77t_e_m_a,

Код: vbnet
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.
'declarations for working with Ini files

Private Declare Function GetPrivateProfileString Lib "kernel32" Alias _
 "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
 ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, _
 ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileInt Lib "Kernel32.dll" Alias _
 "GetPrivateProfileIntA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, _
 ByVal nDefault As Long, ByVal lpFileName As String) As Long
Public Declare Function WritePrivateProfileString Lib "kernel32" Alias _
 "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
 ByVal lpString As Any, ByVal lpFileName As String) As Long

Private Function ReadIni(Section As String, Key As String, Default As String, FileName As String) As String

  Dim RetVal As String, v As Long
  Dim retLen As Long
    
  Do
    retLen = retLen + 260 ' arbitrary - can be set higher/lower if desired
    RetVal = Space(retLen)
    v = GetPrivateProfileString(Section, Key, Default, RetVal, retLen, FileName)
  Loop Until v < retLen - 1
    
  ReadIni = Left$(RetVal, v)
  
End Function



У меня короче при пользовании тем что написал нигде ничего пока не глючит.

спасибо. я примерно так и сделал, только вместо Default, я поставил Nothing и больше фигню не выдает)
...
Рейтинг: 0 / 0
Не понятно ведет себя функция GetPrivateProfileString()
    #38213512
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
t_e_m_aтолько вместо Default, я поставил Nothing и больше фигню не выдает)
За типами таки следить немного надо.
А тем более с датами, если не будете представлять для себя что происходит, то огребете проблем по полной.
Какой Nothing , если там As String
Тогда уж пишите Default="", а потом по коду и по смыслу конвертируйте результат в дату.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Не понятно ведет себя функция GetPrivateProfileString()
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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