powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Использование GetPrivateProfileString при чтении INI-файла
10 сообщений из 10, страница 1 из 1
Использование GetPrivateProfileString при чтении INI-файла
    #35566574
Miral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
У меня проблема.
Дано: Visual Basic 2005
Функция:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long
    Declare Function WritePrivateProfileString Lib "Kernel32" Alias "WritePrivateProfileStringA" (ByVal Section As String, ByVal Key As String, ByVal putStr As String, ByVal INIfile As String) As Long



 1 : Public Function ReadINI(ByVal sSection As String, ByVal sKey As String, ByVal sIniFileName As String)
 2 :        Dim nLength As Long
 3 :        Dim sTemp As String
 4 :        Dim lsTemp
 5 :        sTemp = Space( 255 )
 6 :        lsTemp = Len(sTemp)
 7 :        nLength = GetPrivateProfileString(sSection, sKey, "", sTemp, lsTemp, sIniFileName)
 8 :        ReadINI = Microsoft.VisualBasic.Left(sTemp, nLength)
 9 : End Function

Функция фызывается так:

Код: plaintext
1.
2.
    Private Sub Main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        SourcePath.Text = ReadINI("Properties", "SourcePath", "f:\111.ini")
    End Sub

После выполнения строки 8 выдает следующую ошибку: "Arithmetic operation resulted in an overflow."

При этом sTemp = "" ; nLength = 299168906235346944

Сам ini-файл такой:
Код: plaintext
1.
[Properties]
SourcePath = f:\

Собстно вопрос: Где порылась собака и как её уконтропупить?
...
Рейтинг: 0 / 0
Использование GetPrivateProfileString при чтении INI-файла
    #35566575
Miral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да , вот ещё.
Могет это поможет StackTrace:
" at WindowsApplication1.Main.ReadINI(String sSection, String sKey, String sIniFileName) in F:\Visual Studio 9.0\VB\VBProjects\Merge Week Report\Merge Week Report\Form1.vb:line 25 at WindowsApplication1.Main.Main_Load(Object sender, EventArgs e) in F:\Visual Studio 9.0\VB\VBProjects\Merge Week Report\Merge Week Report\Form1.vb:line 43 at System.EventHandler.Invoke(Object sender, EventArgs e) at System.Windows.Forms.Form.OnLoad(EventArgs e) at System.Windows.Forms.Form.OnCreateControl() at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) at System.Windows.Forms.Control.CreateControl() at System.Windows.Forms.Control.WmShowWindow(Message& m) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ScrollableControl.WndProc(Message& m) at System.Windows.Forms.ContainerControl.WndProc(Message& m) at System.Windows.Forms.Form.WmShowWindow(Message& m) at System.Windows.Forms.Form.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.SafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow) at System.Windows.Forms.Control.SetVisibleCore(Boolean value) at System.Windows.Forms.Form.SetVisibleCore(Boolean value) at System.Windows.Forms.Control.set_Visible(Boolean value) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(ApplicationContext context) at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) at WindowsApplication1.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81 at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart()"
...
Рейтинг: 0 / 0
Использование GetPrivateProfileString при чтении INI-файла
    #35566651
Фотография Resident
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошиблись форумом. Вам в VB.NET
...
Рейтинг: 0 / 0
Использование GetPrivateProfileString при чтении INI-файла
    #35566951
Miral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь, никакого NET-a.
Так что я там где надо.

Народ, HELP!!!
...
Рейтинг: 0 / 0
Использование GetPrivateProfileString при чтении INI-файла
    #35567077
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MiralИзвиняюсь, никакого NET-a.
Чуть ранее:
MiralДано: Visual Basic 2005Для справки: 2002 и больше это все .NET
...
Рейтинг: 0 / 0
Использование GetPrivateProfileString при чтении INI-файла
    #35567194
SoftParanoik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Public Function ReadINI(ByVal sSection As String, ByVal sKey As String, ByVal sIniFileName As String) as String
...
Рейтинг: 0 / 0
Использование GetPrivateProfileString при чтении INI-файла
    #35567529
Miral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SoftParanoik
Код: plaintext
1.
Public Function ReadINI(ByVal sSection As String, ByVal sKey As String, ByVal sIniFileName As String) as String


не-а, всё равно та же ошибка.
...
Рейтинг: 0 / 0
Использование GetPrivateProfileString при чтении INI-файла
    #35567729
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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.
Module Module1


    Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
    Private Declare Function WritePrivateProfileString Lib "Kernel32" Alias "WritePrivateProfileStringA" (ByVal Section As String, ByVal Key As String, ByVal putStr As String, ByVal INIfile As String) As Integer

    Private Function ReadINI(ByVal sSection As String, ByVal sKey As String, ByVal sIniFileName As String)
        Dim nLength As Integer
        Dim sTemp As String
        Dim lsTemp As Integer
        sTemp = Space( 255 )
        lsTemp = Len(sTemp)
        nLength = GetPrivateProfileString(sSection, sKey, "", sTemp, lsTemp, sIniFileName)
        Return Left(sTemp, nLength)
    End Function

    Sub Main()
        Console.WriteLine("test ini")
        'ini лежит в \Release
        Dim s As String = ReadINI("Properties", "SourcePath", "D:\VS 2005\Projects\ConsoleApplication1\bin\Release\1.ini")
        Console.WriteLine(s)

    End Sub

End Module
...
Рейтинг: 0 / 0
Использование GetPrivateProfileString при чтении INI-файла
    #35568124
Miral
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ОГРОМНОЕ СПАСИБО!!!!

А в чём был "кариес" ???
...
Рейтинг: 0 / 0
Использование GetPrivateProfileString при чтении INI-файла
    #35568137
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильное объявление переменных и декларирование ф-й
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Использование GetPrivateProfileString при чтении INI-файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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