Lezen uit bestand

Status
Niet open voor verdere reacties.

Jan Van Haaren

Gebruiker
Lid geworden
27 okt 2002
Berichten
202
Hoi,

Ik heb een bestand met de volgende inhoud:

version=1
type=None
display_name=Test
description=Description
Fitness=0
Ball control=0
Movement=0
team work=0
Set pieces=0
Shot stopping=0
Tactics=0
Shooting=0
Reflexes=0

Nu zou ik dit graag inlezen met mijn VBA en gebruik ik deze code:

Dim tekst As String
Open "bestand.tat" For Input As #1
Input #1, tekst
Text1.Text = tekst
Close #1

Bij het laden van het forum komt dus in Text1.Text version=1 te staan. Hoe kan ik ervoor zorgen dat hij enkel die 1 inleest en version= niet in Text1.Text zet?

Groeten, Jan
 
Kan eigenlijk beter. Eerst in een array lezen.

Code:
Dim tekst As String
Dim teller As Integer
Open "bestand.tat" For Input As #1
   Input #1, tekst
   tekst = Trim(tekst)
   For teller = 1 To Len(tekst)
      If Mid(tekst, teller, 1) = "=" Then
          tekst = Mid(tekst, teller + 1, Len(tekst) - teller + 1)
          Exit For
      End If
   Next teller
   Text1.Text = tekst
Close #1

Groet,

Dennis.
 
Bedankt!

Ja, ik weet dat ik een NewB ben, maar het lukt me niet. Hoe kan ik nu in Text2.Text dat tweede puntje inlezen dat hier de waarde "None" heeft?

Dank bij voorbaat!
 
Nogmaals, zal een keertje voor jou anders doen.

Code:
Dim tekst As String
Dim hulptekst As String
Dim teller As Integer
Dim texboxnr As Integer
texboxnr = 1

Open "bestand.tat" For Input As #1
   While Not EOF(1)
       Input #1, tekst
       tekst = Trim(tekst)
       hulptekst = tekst
       For teller = 1 To Len(tekst)
           If Mid(tekst, teller, 1) = "=" Then
                tekst = Mid(tekst, teller + 1, Len(tekst) - teller + 1)
                Exit For
           End If
       Next teller
       If teller >= Len(hulptekst) Then
           MsgBox "Geen '='-teken gevonden!"
           Close #1
           Exit Sub
       End If
       Select Case texboxnr
           Case 1
               Text1.Text = tekst
           Case 2
               Text2.Text = tekst
   	   Case 3
               Text3.Text = tekst
       End Select
       texboxnr = texboxnr + 1
   Wend
Close#1

Bovenstaande code zijn hier, als voorbeeld, voor 3
texboxen gemaakt. Je kunt dit eenvoudig
aanpassen.

Groetjes,

Dennis.
 
Hoi!

Sorry voor de late reactie...
Het werkt perfect, maar hoe kan ik de vierde regel van het document "skippen", zodat "Description=blabla" niet inleest en gewoon met het volgende voortgaat?

Groeten, Jan
 
Lezen doet het prog. wel, maar geeft de regel niet weer.

Helaas, het wordt wel gelezen, maar de regel die je in de tekstbox
niet wilt hebben kan wel worden gerealiseerd. Je hebt het over
één regel. Maar stel, dat je juist een aantal regels tegelijk niet in de
tekstbox wilt weergeven, dan voeg je een listbox op het form toe.
De Style property van deze listbox zet je dan op 1. Dit kan alleen
in design time worden gedaan en niet in run-time. Door de Style op
1 te zetten kun je (als het prog. gerund is) de regel(s) die je niet
gedisplayed in de texbox wilt hebben, afvinken.

Hierbij de code:

Code:
Private Sub Command1_Click()
     Dim tekst As String
     Dim hulptekst As String
     Dim teller As Integer
     Dim texboxnr As Integer
     Dim skippen_ja_of_nee As Integer
     texboxnr = 1
     Text1 = "": Text2 = "": Text3 = "" 'aantal kun je aanpassen
     For teller = 1 To 3 'aantal kun je aanpassen
          List1.AddItem teller
     Next
     Open "bestand.tat" For Input As #1
          While Not EOF(1)
              Input #1, tekst
              skippen_ja_of_nee = texboxnr - 1
              If List1.Selected(skippen_ja_of_nee) = False Then
                  tekst = Trim(tekst)
                  hulptekst = tekst
                  For teller = 1 To Len(tekst)
                      If Mid(tekst, teller, 1) = "=" Then
                          tekst = Mid(tekst, teller + 1, Len(tekst) - teller + 1)
                          Exit For
                      End If
                  Next teller
                  If teller >= Len(hulptekst) Then
                       MsgBox "Geen '='-teken gevonden!"
                       Close #1
                       Exit Sub
                  End If
	          Else
                   tekst = ""
	      End If
              If tekst <> "" Then
                  Select Case texboxnr
		      'aantal cases kun je aanpassen
                      Case 1
                           Text1.Text = tekst
                      Case 2
                           Text2.Text = tekst
                      Case 3
                           Text3.Text = tekst
                  End Select
              End If
              texboxnr = texboxnr + 1
        Wend
     Close #1
End Sub


Groetjes,

Dennis.
 
Alleen een listbox gebruiken.

Je kunt ook de knop verwijderen en gebruik je dan alleen
de listbox. De code v.d. knop gaat dan naar de click-event
v.d. listbox. Het is directer op deze manier. Het gebruik v.e. knop was voorbeeldshalve.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan