Gå til innhold

Lese noe fra en "ini" fil!


Anbefalte innlegg

Skrevet

Det er en ting jeg lurer på

 

Jeg har prøvd mange muligheter nå men får det ikke til!

Alltså jeg vil oppne en litten ting i en ini fil!

f.eks:

Open "server", "port", SettingsIni

 

Den ini filen ser sånn ut(Den heter settings.ini) :

[server]

port=90

Der det står 90 skal vises i textboksen ikke port= sånn men bare 90

 

Har set sånt på mange andre ting også begynte jeg også å trenge det

(Bruker VB6)

Videoannonse
Annonse
Skrevet

Alltså jeg skjønte ikke så mye av det men jeg skal forklare litt mer!

 

Jeg har fåt til det med at 90 kan byttes ut med noen annet f.eks

[server]

port=90

Der det står 90 byttes ut med noe annet jeg skriver i textboksen.

Men det som er problemet er ossen jeg skal få det som står etter port= til og vises i textboxen!

Skrevet

Prøv denne forenklede implementeringen da (altså prøv den før du fullt ut mener å forstå den). Hvis du ikke har en mappe C:\Temp du kan skrive til så endre banen:

 

Option Explicit

 

Private Declare Function GetPrivateProfileString _

Lib "kernel32" Alias "GetPrivateProfileStringA" _

(ByVal lpSectionName As String, _

ByVal lpKeyName As Any, _

ByVal lpDefault As String, _

ByVal lpbuffurnedString As String, _

ByVal nBuffSize As Long, _

ByVal lpFileName As String) As Long

 

Private Declare Function WritePrivateProfileString _

Lib "kernel32" Alias "WritePrivateProfileStringA" _

(ByVal lpSectionName As String, _

ByVal lpKeyName As Any, _

ByVal lpString As Any, _

ByVal lpFileName As String) As Long

 

Sub WriteToIni(Seksjon As String, Nokkel As String, Verdi As String)

Call WritePrivateProfileString(Seksjon, Nokkel, Verdi, "C:\Temp\Settings.ini")

End Sub

 

Function ReadIni(Seksjon As String, Nokkel As String) As String

Dim sBuffer As String

sBuffer = Space(255)

Call GetPrivateProfileString(Seksjon, Nokkel, "Ikke funnet", sBuffer, 255, "C:\Temp\Settings.ini")

ReadIni = Trim$(sBuffer)

ReadIni = Replace(ReadIni, Chr(0), "")

End Function

 

Sub Test()

Dim Verdi As String

Verdi = InputBox("Port nummer:")

Call WriteToIni("Server", "Port", Verdi)

DoEvents

MsgBox ReadIni("Server", "Port"), vbInformation, "Inifil sier:"

End Sub

 

HTH. Beste hilsen Harald

Skrevet (endret)

Hei, om du forsatt ikke får det til med de andres hjelp kan du gjøre dette:

 

Lag en Module i formen din med denne koden:

Public Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long
Public Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Function ReadINI(Section As String, KeyName As String, FileName As String) As String
Dim sRet As String
sRet = String(255, Chr(0))
ReadINI = Left(sRet, GetPrivateProfileString(Section, ByVal KeyName$, "", sRet, Len(sRet), FileName))
End Function

Sub WriteINI(sSection As String, sKeyName As String, sNewString As String, sFilename)
Call WritePrivateProfileString(sSection, sKeyName, sNewString, sFilename)
End Sub

 

For å lese fra en fil:

ReadINI("Server", "Port", DiMappe) ' Server er [Server] Port er "Port=" "Dimappe" er mappen Settings.ini holder til.

Da leser den fra:

[server]

Port=<dette>

 

 

For å skrive til en fil:

WriteINI("Server", "Port", "20", DiMappe) ' Server er [Server] Port er "Port="  "20" er det du vil skrive til "Port=<her" "Dimappe" er mappen Settings.ini holder til.

 

Da skriver den:

[server]

Port=20

-

Du kan lage en string til "DiMappe" sånn at det blir litt bedre system på det.

Feks:

Dim DiMappe As String
DiMappe = App.Path & "\settings.ini" ' Mappen Settings.ini er

 

 

For håpe dette var til hjelp, bare spør viss det er noe annet.

Endret av vbPro

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...