Avatar billede fjeh Nybegynder
17. oktober 2005 - 13:57 Der er 7 kommentarer og
1 løsning

Læsning fra en ini fil

Hej eksperter

Jeg har følgende kode, men jeg kan ikke få den til at læse fra min ini fil. Er der nogen der kan se hvad der er galt?

===========

    Declare Function GetPrivateProfileString Lib "KERNEL32.DLL" 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 Int32



    Private Sub btnReadIni_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReadIni.Click
        Dim buffer As String
        Dim r As Int32
        buffer = Space(255)
        Dim sDefault As String = ""
        r = GetPrivateProfileString("aa", "a", sDefault, buffer, 255, "clock.ini")
        MessageBox.Show(buffer.ToString())
    End Sub
===============
Avatar billede arne_v Ekspert
17. oktober 2005 - 18:29 #1
jeg tror at lpReturnedString skal være en StringBuilder og ikke en String
Avatar billede fjeh Nybegynder
18. oktober 2005 - 01:50 #2
arne_v -> den brokker sig over hvis jeg laver den om til StringBuilder. Den siger at 'Type StringBuilder is not defined.'

Jeg har ikke sat det ind i et modul, kan det have noget at sige?
Avatar billede arne_v Ekspert
18. oktober 2005 - 09:16 #3
du skal importere System.Text
Avatar billede fjeh Nybegynder
18. oktober 2005 - 10:36 #4
Har prøvet at importere system.text og nu får jeg ikke nogen fejl.

Jeg har samtidig ændret:
Dim buffer As String
til
Dim buffer As StringBuilder = New StringBuilder(256)

men det virker stadig ikke.
Avatar billede arne_v Ekspert
18. oktober 2005 - 18:45 #5
prøv og kald din ini noget andet end clokc.ini (der er en windows ini med det navn)
Avatar billede arne_v Ekspert
18. oktober 2005 - 18:46 #6
C:\>type myclock.ini
[aa]
a=xxx

og

Imports System
Imports System.Text

Public Class IniFileSupport
    Private Declare Ansi Function GetPrivateProfileString _
          Lib "kernel32.dll" Alias "GetPrivateProfileStringA" _
          (ByVal lpApplicationName 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
    Public Shared Function GetString(fnm As String, section As String, key As String) As String
          Dim sb As StringBuilder = New StringBuilder
          GetPrivateProfileString(section, key, "*", sb, 100, fnm)
          GetString = sb.ToString
    End Function
End Class

Module Main
    Sub Main()
        Console.WriteLine(IniFileSupport.GetString("C:\myclock.ini", "aa", "a"))
    End Sub
End Module

virker
Avatar billede arne_v Ekspert
04. november 2005 - 19:12 #7
OK ?
Avatar billede fjeh Nybegynder
06. november 2005 - 04:12 #8
Det virker sq - tak for hjælpen :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester