VB2008/2005 Inidateien

Hallo, habe folgendes Problem unter VB2008EE. Das Beschreiben oder löschen von Inieinträgen funktioniert nicht immer. An was kann das liegen?

Besten Dank für jeden Hinweis

Option Strict Off
Imports System.Net
Imports System.IO
Imports System.Text
Imports System.Runtime.InteropServices 'DllImport

_
_
Public Class AccessViolationException
Inherits SystemException
End Class

Public Class T
'Funktion Ini Lesen
_
Public Shared Function GetPrivateProfileString(ByVal lpAppName As String, _
ByVal lpKeyName As String, _
ByVal lpDefault As String, _
ByVal lpReturnedString As System.Text.StringBuilder, _
ByVal nSize As Integer, _
ByVal lpFileName As String) As Integer
End Function

'Funktion Ini Schreiben
_
Public Shared Function WritePrivateProfileString(ByVal lpApplicationName As String, _
ByVal lpKeyName As String, _
ByVal lpString As String, _
ByVal lpFileName As String) As Boolean
End Function

_
Public Shared Function DeletePrivateProfileSection( _
ByVal Section As String, _
ByVal NoKey As Long, _
ByVal NoSetting As Long, _
ByVal FileName As String) As Long
End Function
End Class

Module modFunctionen
Public Declare Function GetVolumeInformation Lib „kernel32.dll“ Alias „GetVolumeInformationA“ (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Short, ByRef lpVolumeSerialNumber As Integer, ByRef lpMaximumComponentLength As Integer, ByRef lpFileSystemFlags As Integer, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Integer) As Integer
Public Declare Function GetSystemDirectory Lib „kernel32“ Alias „GetSystemDirectoryA“ (ByVal lpBuffer As String, ByVal nSize As Integer) As Integer

'Ini Dateien Bearbeitung ------------------------------------------
'Ini stückweise einlesen
Private Function GetINIString(ByVal Dateiname As String, ByVal DieSektion As String, ByVal DerEintrag As String) As String
Dim strItem As New System.Text.StringBuilder(1024) 'New System.Text.StringBuilder(256)
T.GetPrivateProfileString(DieSektion, DerEintrag, „“, strItem, strItem.Capacity, Dateiname)
Return strItem.ToString
End Function

Public Function IniSchreiben(ByVal Dateiname As String, ByVal Sektion As String, ByVal Eintrag As String, ByVal Wert As String) As Boolean 'IniDatei Schreiben
Dim s As Boolean, lo As Long
lo = 1
Do Until s = True
s = T.WritePrivateProfileString(Sektion, Eintrag, Wert, Dateiname)
lo = lo + 1
If lo > 100000 Then
MsgBox(„Datei konnte nicht beschrieben werden“, MsgBoxStyle.Critical, „Dateifehler“)
s = True
Exit Do
End If
Loop
Return s
End Function

Public Function IniLesen(ByVal Dateiname As String, ByVal Sektion As String, ByVal Eintrag As String) 'Ini Datei Lesen
Dim s = GetINIString(Dateiname, Sektion, Eintrag)
IniLesen = s
End Function

Public Function IniEintragLöschen(ByVal Dateiname As String, ByVal Sektion As String, ByVal Eintrag As String) 'Ini Datei Eintrag löschen
Dim x As Boolean, lo As Long
lo = 1
Do Until x = True
x = T.WritePrivateProfileString(Sektion, Eintrag, vbNullString, Dateiname)
lo = lo + 1
If lo > 100000 Then
MsgBox(„Datei konnte nicht beschrieben werden“, MsgBoxStyle.Critical, „Dateifehler“)
x = True
Exit Do
End If
Loop
IniEintragLöschen = x
End Function

Public Function IniSektionLöschen(ByVal Dateiname As String, ByVal Sektion As String) 'Ini Datei Sektion löschen
Dim x As Boolean, lo As Long
lo = 1
Do Until x = True
x = T.WritePrivateProfileString(Sektion, 0, 0, Dateiname)
lo = lo + 1
If lo > 100000 Then
MsgBox(„Datei konnte nicht beschrieben werden“, MsgBoxStyle.Critical, „Dateifehler“)
x = True
Exit Do
End If
Loop
IniSektionLöschen = x
End Function

Hallo, habe folgendes Problem unter VB2008EE. Das Beschreiben
oder löschen von Inieinträgen funktioniert nicht immer. An was
kann das liegen?

[…]

Hallo!
Was heisst „nicht immer“? An Donnerstagen nicht? Nach 100000 Wiederholungen? Etwa jedes 2Millionste Mal?

Je genauer Du sagst, was unter welchen Umständen nicht funktioniert und welche Fehlermeldungen/Exceptions/Returncodes Du bekommst, um so gezielter können auch die Hilfeversuche ablaufen.

Gruß,
Martin

Hallo Martin
Genau so wie Du es sagst. Mal gehts, mal geht es nicht, mal gehts nach 2000 Versuchen, mal gehts bein 1. Versuch, mal gehts überhaupt nicht. Könnte das vielleicht mit den imports zu tun haben? Habe ich da was nicht deklariert?

Besten Dank für weitere Feedbacks

Grüsse
Sebastian

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]