1) Læs hele filen ind, og split ved vbCrLr (linieskift), så du får en array. 2) Læs 1 linie ad gangen
-- I en FOR-NEXT loop:
Nuværende linie: enten index'et i arrayen eller linien man lige har indlæst.
Man checker så om nuævrende linie indeholder "[" + søgeordet + "]". Hvis den gør det, sættes et flag/bool variable til TRUE, eller en anden værdi.
Hvis flag er lig TRUE start loop hvis "ny nuværende linie" ikke er tom gør et eller andet med teksten (f.eks. "Username=Username") ellers man er nået til en tom linie, dvs, det er f.eks. ikke længere "FTP", så afslut funktion Med "afslut funktion" mener jeg: returner de fundne data slut hvis slut loop slut hvis
Ja lige præcis har været inde over en liggende løsning. Men problemet er jeg kan ikke få indholdet ud når jeg f.eks. finder [FTP] og til næste [XXXX]. kan du prøve at komme med et mere "Færdigt" eksempel :) Ville hjælpe mig meget. Takker Surfer.
'Opretter arrays med alle keys fra ini-filen. Tjekker foerst om det er Citrix eller WinXP. arrRunAlleKeys = GetKeys(arrRunini,"FTP") arrRunAlleKeys = GetKeys(arrRunini,"Side") msgbox arrRunAlleKeys
Function ReadSetupFile(strSetupFile)
Const OPEN_FILE_FOR_READING = 1
Set objFileSystem = CreateObject("Scripting.fileSystemObject") Set objInputFile = objFileSystem.OpenTextFile(strSetupFile, OPEN_FILE_FOR_READING)
If Not arrSetupFile(UBound(arrSetupFile) -1) = "" then ReDim Preserve arrSetupFile(UBound(arrSetupFile) +1) End If
ReadSetupFile = arrSetupFile objInputFile.Close Set objFileSystem = Nothing
End Function
Function GetKeys(arrSetupFile,strSection) For i=0 to Ubound(arrSetupFile) if Instr(1,arrSetupFile(i),"[" & strSection & "]") = 1 then i=i+1 while Instr(1,arrSetupFile(i),"[") = 0 And i < (UBound(arrSetupFile)) if Len(arrSetupFile(i)) > 0 then if instr(1,arrSetupFile(i), ";") = 0 Then msgbox left(arrSetupFile(i), (Instr(1,arrSetupFile(i),"=")-1)) msgbox mid(arrSetupFile(i), Instr(1,arrSetupFile(i),"=")+1, len(arrSetupFile(i))) strKeys = Left(arrSetupFile(i), (Instr(1,arrSetupFile(i),"=")-1))
GetKeys = trim(GetKeys & strKeys & ",") end if end if i=i+1 Wend exit Function end If Next End Function
Man kunne jo også bare gøre følgende.. :D Havde lige det her til at ligge.. håber du kan bruge det... du bliver nødt til selv lige at tilrette det så det passer til det du skal bruge men det her er så tæt på et færdig eksempel som jeg lige kan komme med.. :D
Perfekt Morten, Lige hvad jeg mangelde nu er den der næsten. Jeg er kommet frem til dette:
strRunIni = "C:\Documents and Settings\SJJ\Desktop\test\config.ini" ReadSetupFile(strRunIni)
arrRunIni = ReadSetupFile(strRunIni)
'Opretter arrays med alle keys fra ini-filen. Tjekker foerst om det er Citrix eller WinXP. arrRunAlleKeys = GetKeys(arrRunini,"FTP") 'arrRunAlleKeys = GetKeys(arrRunini,"Side") 'msgbox arrRunAlleKeys
Function ReadSetupFile(strSetupFile)
Const OPEN_FILE_FOR_READING = 1
Set objFileSystem = CreateObject("Scripting.fileSystemObject") Set objInputFile = objFileSystem.OpenTextFile(strSetupFile, OPEN_FILE_FOR_READING)
If Not arrSetupFile(UBound(arrSetupFile) -1) = "" then ReDim Preserve arrSetupFile(UBound(arrSetupFile) +1) End If
ReadSetupFile = arrSetupFile
objInputFile.Close Set objFileSystem = Nothing
End Function
Function GetKeys(arrSetupFile,strSection) For i=0 to Ubound(arrSetupFile) if Instr(1,arrSetupFile(i),"[" & strSection & "]") = 1 then i=i+1 while Instr(1,arrSetupFile(i),"[") = 0 And i < (UBound(arrSetupFile)) if Len(arrSetupFile(i)) > 0 then if instr(1,arrSetupFile(i), ";") = 0 Then
Når jeg udskriver Wscript.echo strKeys. for jeg: Username=Username Password=Password
Så det er helt perfekt. Det jeg ønsker.
Så mangler jeg bare at "Få denne ned i mit script" så jeg kan arbejde videre med disse "Variabler" og ikke bare en fejlbox :). f.eks. arbejde videre sådan her. If Username = "Peter" Then Wscript.echo "Ja" Else Wscript.echo "Nej" End if
Det er første gang jeg koder til windows har altid kodet web så det er en ny verden, og sikkert et nemt spørgsmål :) Men hvordan gør jeg dette.
'Opretter arrays med alle keys fra ini-filen. arrRunAlleKeys = GetKeys(arrRunini,"FTP") 'arrRunAlleKeys = GetKeys(arrRunini,"Side") strTest = split(arrRunAlleKeys, VbCrLf) for each thing in strTest If mid(thing,10,len(thing)) = "Peter" Then Wscript.echo "Ja" Else Wscript.echo "Nej" End if msgbox mid(thing,10,len(thing)) next
Function ReadSetupFile(strSetupFile)
Const OPEN_FILE_FOR_READING = 1
Set objFileSystem = CreateObject("Scripting.fileSystemObject") Set objInputFile = objFileSystem.OpenTextFile(strSetupFile, OPEN_FILE_FOR_READING)
If Not arrSetupFile(UBound(arrSetupFile) -1) = "" then ReDim Preserve arrSetupFile(UBound(arrSetupFile) +1) End If
ReadSetupFile = arrSetupFile
objInputFile.Close Set objFileSystem = Nothing
End Function
Function GetKeys(arrSetupFile,strSection) For i=0 to Ubound(arrSetupFile) if Instr(1,arrSetupFile(i),"[" & strSection & "]") = 1 then i=i+1 while Instr(1,arrSetupFile(i),"[") = 0 And i < (UBound(arrSetupFile)) if Len(arrSetupFile(i)) > 0 then if instr(1,arrSetupFile(i), ";") = 0 Then
tjah jeg er ikke helt med på hvad det helt præcis er du mener men jeg tog mig den frihed lige at skrev det her... Som du kan se har jeg sat funtionen til at returnere en værdi i stedet for... Den værdi splitter jeg så op og tjekker på hver linje... prøv du at kigge lidt på det jeg har lavet her... håber det hjælper dig nærmere en løsning...
Jeg fandt en anden løsning på denne, men kan se din virker. Så det er besvarelse på mit spørgsmål. Smæk et svar så lukker vi her. Tak for din besvarelse.
hehe ja, men folk bliver jo surer når man for lidt for mange af dem. :)
Synes godt om
Ny brugerNybegynder
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.