Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Использование GetPrivateProfileString при чтении INI-файла / 10 сообщений из 10, страница 1 из 1
30.09.2008, 02:58
    #35566574
Miral
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование GetPrivateProfileString при чтении INI-файла
Здравствуйте.
У меня проблема.
Дано: 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
30.09.2008, 03:25
    #35566575
Miral
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование GetPrivateProfileString при чтении INI-файла
Да , вот ещё.
Могет это поможет 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
30.09.2008, 08:10
    #35566651
Resident
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование GetPrivateProfileString при чтении INI-файла
Ошиблись форумом. Вам в VB.NET
...
Рейтинг: 0 / 0
30.09.2008, 10:51
    #35566951
Miral
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование GetPrivateProfileString при чтении INI-файла
Извиняюсь, никакого NET-a.
Так что я там где надо.

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


не-а, всё равно та же ошибка.
...
Рейтинг: 0 / 0
30.09.2008, 14:49
    #35567729
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование GetPrivateProfileString при чтении INI-файла
Код: 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
30.09.2008, 17:00
    #35568124
Miral
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование GetPrivateProfileString при чтении INI-файла
ОГРОМНОЕ СПАСИБО!!!!

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


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