Textbox lijn uitlezen

Status
Niet open voor verdere reacties.

w00tare

Gebruiker
Lid geworden
10 jul 2009
Berichten
216
Hallo,

Ik zit met een probleem, waar ik niet uit kom :S.

Ik sla dus een setting op in een .ini file.
Het opslaan gaat natuurlijk.
Maar wat is dus wil, is dat als bijv. de .ini file:
Code:
Username=Piet
Wachtwoord=Pietje

Dat hij dus bijvoorbeeld als ik een button aandruk in label1 'Piet' zet.

Ik heb dus al dingen geprobeerd met van .ini naar string, dan string.contains en vervolgens string.replace.
Maar het lukte allemaal niet.

Ik hoop dat hier iemand me kan helpen.
 
je wil dus dat als je op een button clickt er bij username piet komt te staan?
 
Nee, hij haalt 'Username=Piet' uit een file, En daar Username= vanaf haalt. en hem vervolgens in een string plaatst
 
Laatst bewerkt:
Dit lijkt redelijk te werken, wel alles aan één stuk zetten...

Code:
        Dim String_S As String = "Username=Pietje|Password=Piet"
        Dim Prop() As String = String_S.Split("|")
        Prop(0) = Prop(0).Replace("Username=", "")
        Prop(1) = Prop(1).Replace("Password=", "")
 
Je zoekt dus een ini parser? Deze heb ik geschreven voor VBScript maar hij zou ook in VB moeten werken...

Code:
'====================================================================================
'.ini lezen en schrijven. Gebruik wordt benenden aangegeven.
'Naam: INI_Parser.vbs
'Taal: VBScript.
'Origineel-script: http://www.motobit.com/tips/detpg_asp-vbs-read-write-ini-files/
'Nederlandse vertaling en bewerking; (c) Jori Koolstra, www.jori-koolstra.nl.

'Gebruik:

'Voor lezen;
'Function GetINIString(Section, KeyName, Default, FileName)

'Voor Schrijven;
'WriteINIString Section, KeyName, Value, FileName

'Commentaar op de zelfde regel als een value wordt vanzelfsprekend genegeerd!
'Een goed alernatief voor .ini bestanden zijn .xml bestanden en het Windows Registry.
'====================================================================================


Sub WriteINIStringVirtual(Section, KeyName, Value, FileName)
  WriteINIString Section, KeyName, Value, _
    Server.MapPath(FileName)
End Sub
Function GetINIStringVirtual(Section, KeyName, Default, FileName)
  GetINIStringVirtual = GetINIString(Section, KeyName, Default, _
    Server.MapPath(FileName))
End Function

Sub WriteINIString(Section, KeyName, Value, FileName)
  Dim INIContents, PosSection, PosEndSection
  
  'Get contents of the INI file As a string
  INIContents = GetFile(FileName)

  'Find section
  PosSection = InStr(1, INIContents, "[" & Section & "]", vbTextCompare)
  If PosSection>0 Then
    'Section exists. Find end of section
    PosEndSection = InStr(PosSection, INIContents, vbCrLf & "[")
    '?Is this last section?
    If PosEndSection = 0 Then PosEndSection = Len(INIContents)+1
    
    'Separate section contents
    Dim OldsContents, NewsContents, Line
    Dim sKeyName, Found
    OldsContents = Mid(INIContents, PosSection, PosEndSection - PosSection)
    OldsContents = split(OldsContents, vbCrLf)

    'Temp variable To find a Key
    sKeyName = LCase(KeyName & "=")

    'Enumerate section lines
    For Each Line In OldsContents
      If LCase(Left(Line, Len(sKeyName))) = sKeyName Then
        Line = KeyName & "=" & Value
        Found = True
      End If
      NewsContents = NewsContents & Line & vbCrLf
    Next

    If isempty(Found) Then
      'key Not found - add it at the end of section
      NewsContents = NewsContents & KeyName & "=" & Value
    Else
      'remove last vbCrLf - the vbCrLf is at PosEndSection
      NewsContents = Left(NewsContents, Len(NewsContents) - 2)
    End If

    'Combine pre-section, new section And post-section data.
    INIContents = Left(INIContents, PosSection-1) & _
      NewsContents & Mid(INIContents, PosEndSection)
  else'if PosSection>0 Then
    'Section Not found. Add section data at the end of file contents.
    If Right(INIContents, 2) <> vbCrLf And Len(INIContents)>0 Then 
      INIContents = INIContents & vbCrLf 
    End If
    INIContents = INIContents & "[" & Section & "]" & vbCrLf & _
      KeyName & "=" & Value
  end if'if PosSection>0 Then
  WriteFile FileName, INIContents
End Sub

Function GetINIString(Section, KeyName, Default, FileName)
  Dim INIContents, PosSection, PosEndSection, sContents, Value, Found
  
  'Get contents of the INI file As a string
  INIContents = GetFile(FileName)

  'Find section
  PosSection = InStr(1, INIContents, "[" & Section & "]", vbTextCompare)
  If PosSection>0 Then
    'Section exists. Find end of section
    PosEndSection = InStr(PosSection, INIContents, vbCrLf & "[")
    '?Is this last section?
    If PosEndSection = 0 Then PosEndSection = Len(INIContents)+1
    
    'Separate section contents
    sContents = Mid(INIContents, PosSection, PosEndSection - PosSection)

    If InStr(1, sContents, vbCrLf & KeyName & "=", vbTextCompare)>0 Then
      Found = True
      'Separate value of a key.
      Value = SeparateField(sContents, vbCrLf & KeyName & "=", vbCrLf)
    End If
  End If
  If isempty(Found) Then Value = Default

'(c) Jori Koolstra.
'Remove comments that start with ;
'To escape the character ; just put a slash before it (just like /n in C).
'The replace of /; to T3mpV4lu31337 is a help variabel that will changed back to ;
'in the next line.

If Instr(Value, ";") > 0 And Instr(Value, "/;") = 0 Then
 CommentPos = Instr(Value, ";")
 Value = Mid(Value, "1", CommentPos - 1)
 WriteFile FileName, INIContents
ElseIf Instr(Value, "/;") > 0 Then
Value = Replace(Value, "/;", "T3mpV4lu31337")
 If Instr(Value, ";") > 0 Then
   CommentPos = Instr(Value, ";")
   Value = Mid(Value, "1", CommentPos - 1)
 End If
 Value = Replace(Value, "T3mpV4lu31337",";")
 WriteFile FileName, INIContents
Else
 WriteFile FileName, INIContents
End If

  GetINIString = Value

End Function

'Separates one field between sStart And sEnd
Function SeparateField(ByVal sFrom, ByVal sStart, ByVal sEnd)
  Dim PosB: PosB = InStr(1, sFrom, sStart, 1)
  If PosB > 0 Then
    PosB = PosB + Len(sStart)
    Dim PosE: PosE = InStr(PosB, sFrom, sEnd, 1)
    If PosE = 0 Then PosE = InStr(PosB, sFrom, vbCrLf, 1)
    If PosE = 0 Then PosE = Len(sFrom) + 1
    SeparateField = Mid(sFrom, PosB, PosE - PosB)
  End If
End Function


'File functions
Function GetFile(ByVal FileName)
  Dim FS: Set FS = CreateObject("Scripting.FileSystemObject")
  'Go To windows folder If full path Not specified.
  If InStr(FileName, ":\") = 0 And Left (FileName,2)<>"\\" Then 
    FileName = FS.GetSpecialFolder(0) & "\" & FileName
  End If
  On Error Resume Next

  GetFile = FS.OpenTextFile(FileName).ReadAll
End Function

Function WriteFile(ByVal FileName, ByVal Contents)
  
  Dim FS: Set FS = CreateObject("Scripting.FileSystemObject")
  'On Error Resume Next

  'Go To windows folder If full path Not specified.
  If InStr(FileName, ":\") = 0 And Left (FileName,2)<>"\\" Then 
    FileName = FS.GetSpecialFolder(0) & "\" & FileName
  End If

  Dim OutStream: Set OutStream = FS.OpenTextFile(FileName, 2, True)
  OutStream.Write Contents
End Function
'====================================================================================
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan