I need a way to read all sections/keys of ini file in a StringBuilder variable:
[DllImport(\"kernel32.dll\")]
private static extern int GetPrivateProfileStri
Dim MyString As String = String.Empty
Dim BufferSize As Integer = 1024
Dim PtrToString As IntPtr = IntPtr.Zero
Dim RetVal As Integer
RetVal = GetPrivateProfileSection(SectionName, PtrToString, BufferSize, FileNameAndPah)
If our function call succeeds, we will get the result in PtrToString memory address and RetVal will contain the length of the string in PtrToString. Else if this function failed due to the lack of enough BufferSize Then RetVal will contain BufferSize - 2. So we can check it and call this function again with larger BufferSize.
'Now, here is how we can get the string from memory address.
MyString = Marshal.PtrToStringAuto(PtrToString, RetVal - 1)
'Here i use " RetVal - 1 " to avoid the extra null string.
' Now, we need to split the string where null chars coming.
Dim MyStrArray() As String = MyString.Split(vbNullChar)
So this array contains all your keyvalue pair in that specific section. And dont forget to free up the memory
Marshal.FreeHGlobal(PtrToString)