Avatar billede oscar... Nybegynder
10. marts 2003 - 00:36 Der er 18 kommentarer og
1 løsning

shell og ini fil hjælp

jeg vil gerne lave en setup.ini fil hvor jeg skriver nogle program navne og en program stig, nået som dette

[MyPrograms]
Program1=C:\Programmer\InterVideo\WinDVD\WinDVD.exe
Program1Name=WinDVD
Program2=Quick time
Program2Name=C:\Programmer\QuickTime\PictureViewer.exe
Program3=
Program3Name=
Program4=
Program4Name=
Program5=
Program5Name=
Program6=
Program6Name=
Program7=
Program7Name=

men hvordan kan jeg få dette udført når jeg trykker på en knap, kom meget gerne med et eks, da jeg er kørt fast og er ny.......
Avatar billede medions Nybegynder
10. marts 2003 - 01:13 #1
Den har været oppe mange gange her på E.

http://www.eksperten.dk/kat/5?searchtype=txt&words=ini+filer&method=and&sort=score&catid=5

Jeg har et godt eksempel der hjemme, men jeg er ikke hjemme lige nu, så du må vente til i morgen, så skal jeg paste koden til dig...

//>Rune
Avatar billede joern Nybegynder
10. marts 2003 - 09:19 #2
Hej.

I spørgsmål http://www.eksperten.dk/spm/325685
har jeg anvist en måde at indlæse værdier fra en ini-fil.

M.v.h. Jørn
Avatar billede medions Nybegynder
10. marts 2003 - 11:57 #3
OK, så er jeg hjemme...

Start med et lat lav en modul fil som indeholder flg.:


Declare Function GetPrivateProfileString Lib "Kernel32" Alias "GetPrivateProfileStringA" (ByVal sSection As String, ByVal sKey As String, ByVal sDefault As String, ByVal sReturn As String, ByVal lReturnSize As Long, ByVal sFilename As String) As Long
Declare Function WritePrivateProfileString Lib "Kernel32" Alias "WritePrivateProfileStringA" (ByVal sSection As String, ByVal sKey As String, ByVal sSetting As String, ByVal sFilename As String) As Long

Public Function CallINI(txtSection As String, txtKey As String, txtPath As String) As String
  ' Funktionen henter værdier fra inifil.
  Dim sValue As String
  Dim lSize As Long
  Dim lTemp As Long
  Dim sDefault As String
  sValue = String(256, " ")
  lSize = Len(sValue)
  lTemp = GetPrivateProfileString(txtSection, txtKey, sDefault, sValue, lSize, txtPath)
  If lTemp <> 0 Then
    CallINI = sValue
  Else
    CallINI = sDefault
  End If
End Function

Public Function WriteINI(txtSection As String, txtKey As String, sSetting As String, txtPath As String) As String
  ' Funktionen indsætter værdier fra Indstillinger.
  Dim sValue As String
  Dim lSize As Long
  Dim lTemp As Long
  sValue = String(256, " ")
  lSize = Len(sValue)
  lTemp = WritePrivateProfileString(txtSection, txtKey, " " & sSetting, txtPath)
  If lTemp <> 0 Then
    WriteINI = sValue
  Else
    WriteINI = sDefault
  End If
End Function


Nå så du vil kalde din INI fil, skriver du flg.
CallINI("LastOrdre", "OrdreNo", App.Path & "\FilNavn.ini")

Sådan her ser min INI fil ud:

[LastOrdre]
OrdreNo = 5035

//>Rune
Avatar billede oscar... Nybegynder
10. marts 2003 - 20:28 #4
hej medions, jeg kan ikke få din kode til at virke når jeg copy og paste den
jeg har lavet en knap i en form, og når jeg skriver kodeen under knappen, bliver den rød med det samme, og når der trykkes på knappen skriver vb syntax error. her er koden
Private Sub Command1_Click()
CallINI("Gruppe", "type", App.Path & "\setup.ini")''denne er rød
Label1.Caption = ini
End Sub
Avatar billede medions Nybegynder
10. marts 2003 - 21:16 #5
Har du husket at tilføje et modul?

//>Rune
Avatar billede oscar... Nybegynder
10. marts 2003 - 21:34 #6
ja her er det

Declare Function GetPrivateProfileString Lib "Kernel32" Alias "GetPrivateProfileStringA" (ByVal sSection As String, ByVal sKey As String, ByVal sDefault As String, ByVal sReturn As String, ByVal lReturnSize As Long, ByVal sFilename As String) As Long
Declare Function WritePrivateProfileString Lib "Kernel32" Alias "WritePrivateProfileStringA" (ByVal sSection As String, ByVal sKey As String, ByVal sSetting As String, ByVal sFilename As String) As Long

Public Function CallINI(txtSection As String, txtKey As String, txtPath As String) As String
  ' Funktionen henter værdier fra inifil.
  Dim sValue As String
  Dim lSize As Long
  Dim lTemp As Long
  Dim sDefault As String
  sValue = String(256, " ")
  lSize = Len(sValue)
  lTemp = GetPrivateProfileString(txtSection, txtKey, sDefault, sValue, lSize, txtPath)
  If lTemp <> 0 Then
    CallINI = sValue
  Else
    CallINI = sDefault
  End If
End Function

Public Function WriteINI(txtSection As String, txtKey As String, sSetting As String, txtPath As String) As String
  ' Funktionen indsætter værdier fra Indstillinger.
  Dim sValue As String
  Dim lSize As Long
  Dim lTemp As Long
  sValue = String(256, " ")
  lSize = Len(sValue)
  lTemp = WritePrivateProfileString(txtSection, txtKey, " " & sSetting, txtPath)
  If lTemp <> 0 Then
    WriteINI = sValue
  Else
    WriteINI = sDefault
  End If
End Function
Avatar billede medions Nybegynder
10. marts 2003 - 21:37 #7
Hmm det skulle altså gerne virke...!
Forsøg dig lidt mere med det.. Det er underligt det ikke virker!

//>Rune
Avatar billede oscar... Nybegynder
10. marts 2003 - 22:09 #8
jeg tror jeg har fået det til at virke,
CallINI("Gruppe", "type", App.Path & "\setup.ini")''denne er rød
skal det ikke være: call CallINI("Gruppe", "type", App.Path & "\setup.ini")'' så bliver den da ikke rød. men hvis jeg gerne vil vide hvad der står i type5, hvordan gør jeg det
Avatar billede medions Nybegynder
10. marts 2003 - 22:11 #9
call CallINI("Gruppe", "type5", App.Path & "\setup.ini")

//>Rune
Avatar billede oscar... Nybegynder
10. marts 2003 - 22:28 #10
jo, men hvis jeg gerne vil have type5 vist i et label1 eller i en variablen.
ja jeg er ked af det er lidt sort snak for mig, så bær over med mig
Avatar billede medions Nybegynder
10. marts 2003 - 22:29 #11
strType = call CallINI("Gruppe", "type5", App.Path & "\setup.ini")
Label1.caption = strType

//>Rune
Avatar billede oscar... Nybegynder
10. marts 2003 - 22:43 #12
ja det trode og prøvede jeg også. men så kommer vb med
compile error:
expected:expression
og hige ligter call
Avatar billede oscar... Nybegynder
10. marts 2003 - 22:47 #13
ups, jeg skulle bare slette call, så virker det
TAK TAK det virker
Avatar billede medions Nybegynder
10. marts 2003 - 22:57 #14
Anytime ;o)
-syntes du ik' oxo spm'et skal afsluttes? :-)

//>Rune
Avatar billede oscar... Nybegynder
10. marts 2003 - 23:30 #15
øh jo men hvordan, har prøvet at kikke på siden
Avatar billede medions Nybegynder
11. marts 2003 - 07:50 #16
? Står der ikke Accepter svar nogen steder?

//>Rune
Avatar billede medions Nybegynder
11. marts 2003 - 19:12 #17
?
Avatar billede oscar... Nybegynder
11. marts 2003 - 22:04 #18
jo tak for hjælpen
Avatar billede medions Nybegynder
11. marts 2003 - 22:06 #19
*G* Anytime :o)
Thx 4 Poinz

//>Rune
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