Springen naar inhoud


- - - - -
VB6

Een Woord Zoeken En Bijhorende Regels Weergeven In Textfile



  • Log in a.u.b. om te beantwoorden
Er zijn 7 reacties in dit onderwerp

#1 houthalen

houthalen

    Senior Developer

  • Leden
  • PipPipPip
  • 167 berichten
    Laatst bezocht 03 dec 2019 12:23

Geplaatst op 05 juni 2014 - 19:54

Ik weet niet als zoiets echt te doen is....want ik heb al vanalles geprobeerd.
Ik heb een textfile gemaakt met bv notepad
In deze textfile heb ik, bv:
appel
kjqskqsk qk qsjkqjq
nnqd qdnqsndqdn,ndq
---------
peer
Cbvbvbvbvbnpee
JHJHKJKJKKJKJK
------
hond
JHJHKJKJKJKJKJKJ
--------
enz...
dus altijd eerst een  (zoek)term en dan 1,2,3,... regels en tenslotte een serie strepen die de zin sluiten.
Mijn doel:
Ik zoek een woord, in de ganse textfile. Die woord staat altijd aan het begin van de 'record'.
Als die woord gevonden is dan worden in een label de woord en de
regels onder die woord weergegeven tot de scheidingstrepen.
bv ik zoek 'peer' en ik krijg in een label:
peer
Cbvbvbvbvbnpee
JHJHKJKJKKJKJK

Ik toon nu mijn code tot nu toe, namelijk een woord vinden,
want het is mij niet gelukt de rest van de 'record' te weergeven, wat tot de strepen staat.Code:
 
Private Sub Command1_Click()
Dim lijn As String
woord = zoekwoord ' hier input zoekterm
   Open App.Path & "\test.txt" For Input As 1
	Do While Not EOF(1)
		Line Input #1, lijn
		If InStr(lijn, woord) Then
			label1.Caption = woord
			Exit Do
		End If
	Loop
	Close 1
End Sub
 

dank
houthalen

#2 jurgen

jurgen

    Starting Developer

  • Leden
  • 27 berichten
    Laatst bezocht 09 dec 2014 23:29

Geplaatst op 05 juni 2014 - 23:26

Visual Basic Code:
Private Sub Command1_Click()
Dim lijn As String
dim tekst as string

woord = zoekwoord ' hier input zoekterm
   Open App.Path & "\test.txt" For Input As 1
Do While Not EOF(1)
  Line Input #1, lijn
  If InStr(lijn, woord) Then
   label1.Caption = woord
line input #1,lijn
if left(lijn,1) = "-" then
textbox1.text = tekst
exit do
else
tekst = tekst &  " " & lijn	  'of vbcrlf gebruiken als het op volgende regel moet staan
end if


  End If
Loop
Close 1
End Sub



#3 houthalen

houthalen

    Senior Developer

  • Leden
  • PipPipPip
  • 167 berichten
    Laatst bezocht 03 dec 2019 12:23

Geplaatst op 06 juni 2014 - 08:08

dag Jurgen, bedankt voor uw reactie maar...
spijtig genoeg ik denk dat niet werk.
Ik krijg altijd in de label alleen de zoekwoord terug en niet (ook)
de bijhorende andere regels (lijnen) tot aaan de strepen.

Ik heb een beetje aangepast en zo werkt(bijna) goed)

Visual Basic Code:
Private Sub Command1_Click()
Dim lijn As String
Dim tekst As String
woord = zoekwoord ' hier input zoekterm
   Open App.Path & "\test.txt" For Input As 1
Do While Not EOF(1)
  Line Input #1, lijn
  If InStr(lijn, woord) Then
   Label1.Caption = woord
Line Input #1, lijn
If Left(lijn, 1) = "-" Then
'Label1.Caption = Label1.Caption
Exit Do
Else
Label1.Caption = Label1.Caption & " " & lijn	'of vbcrlf gebruiken als het op volgende regel moet staan
End If

  End If
Loop
Close 1
End Sub
 


dank u
houthalen

#4 tromt

tromt

    Professional Developer

  • Leden
  • PipPipPipPip
  • 303 berichten
    Laatst bezocht 17 apr 2018 10:02
  • LocatieRijen (NB)

Geplaatst op 06 juni 2014 - 11:06

Kon er geen weerstand aan bieden, effe iets in elkaar gedraaid. :smile:

Bijgevoegde Bestanden



#5 Johnny

Johnny

    Senior Developer

  • Leden
  • PipPipPip
  • 193 berichten
    Laatst bezocht 13 dec 2019 11:52

Geplaatst op 06 juni 2014 - 12:26

Bericht bekijkentromt, op 06 juni 2014 - 11:06, zei:

Kon er geen weerstand aan bieden, effe iets in elkaar gedraaid. :smile:

Je weet dat dit het VB6 subforum is? :smile:

#6 tromt

tromt

    Professional Developer

  • Leden
  • PipPipPipPip
  • 303 berichten
    Laatst bezocht 17 apr 2018 10:02
  • LocatieRijen (NB)

Geplaatst op 06 juni 2014 - 12:46

oeps, te gretig dus, en niet goed uit mijn ogen gekeken.
Maar goed, als het leesbaar gemaakt wordt met een gratis versie van VB2010 of 12 doet het misschien toch nog iets.
Maar, sorry!

#7 tromt

tromt

    Professional Developer

  • Leden
  • PipPipPipPip
  • 303 berichten
    Laatst bezocht 17 apr 2018 10:02
  • LocatieRijen (NB)

Geplaatst op 06 juni 2014 - 13:53

Dat kostte toch wel even moeite; al jaren niks meer met VB6 gedaan, maar het werkt nu. Voila  8-)

Bijgevoegde Bestanden



#8 houthalen

houthalen

    Senior Developer

  • Leden
  • PipPipPip
  • 167 berichten
    Laatst bezocht 03 dec 2019 12:23

Geplaatst op 06 juni 2014 - 14:48

Bedankt, Tromt voor uw voorbeeld. Interessant.

Intussen, dankzij jullie tips heb ik (eindelijk) ook zelf opgelost.
Met een paar aanpassingen ben ik uiteindelijk gekomen op:
Code:
Private Sub Command1_Click()
Dim lijn As String
Dim found As Boolean

woord = zoekwoord

Open App.Path & "\test.txt" For Input As 1

found = False
Do While Not EOF(1)
	 Line Input #1, lijn
	
	 If InStr(UCase(lijn), UCase(woord)) Then
		 text1.Text = text1.Text & lijn & vbCrLf
		 found = True
		 Exit Do
	 End If
Loop
		
If found Then
	 Do While Not EOF(1)
		 Line Input #1, linea
		 text1.Text = text1.Text & lijn & vbCrLf
		 If Left(lijn, 1) = "-" Then Exit Do
	 Loop
End If

Ik heb dus zelf kunnen oplossen met uw tips.
bedankt iedereen.
houthalen
ps.en tot volgend probleem, zeker !





Ook met taq VB6 voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[VB6] Untitled 1

Met dank aan J├╝rgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
Met dank aan PascalBianca voor de jarenlange inzet van vbib.be (anno dec 2016)