Toon posts:

[VB] Zoeken in Text Document

Pagina: 1
Acties:
  • 150 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik heb een X.txt met bijv:

y732y4732y4y32**TWEAKERS**Antwoord**32
ef7ew8yrew**TWEAKERS**Uitvoer**443


Nou wil ik dat mijn programma steeds alle gegevens inleest die achter '**TWEAKERS**' staan, tot '**'
Dus de uitvoer zou zijn voor regel1: 'Antwoord' en voor regel 2: 'Uitvoer'

Het programma moet dus eerst het woord '**TWEAKERS**' vinden, vervolgens de letter daarachter uitlezen tot het '**' tegen komt.

Ik heb lang gezocht in de visual basic help file, en daar stond in dat dit met '.FIND' en 'FOUNDPOS' moest. Nou heb ik al veel geprobeerd met '.FIND' en 'FOUNDPOS' maar ik vind dit commando nog al moeilijk toe te passen, en aangezien ik op internet ook geen makkelijke oplossing kan vinden hoop ik dat jullie me een simpel voorbeeldje kunnen geven, zodat ik verder kan met m'n programma!
Bedankt! _/-\o_

  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 25-08 14:38

OZ-Gump

terug van weggeweest

Hoe ver ben je al gekomen? Kun je het bestand al openen? En zo ja, lukt het lezen van gegevens je al? Wat heb je al geprobeerd? Post ook eens wat code van jezelf.
en aangezien ik op internet ook geen makkelijke oplossing kan vinden hoop ik dat jullie me een simpel voorbeeldje kunnen geven, zodat ik verder kan met m'n programma!
Je gaat er nu van uit dat het allemaal makkelijk kan. En je geeft aan niet teveel moeite te willen doen. Maar soms kan het niet makkelijk en soms moet je moeite doen!

My personal website


  • JohanDM
  • Registratie: Augustus 2002
  • Laatst online: 16-07-2021

JohanDM

Optimist

Lijn voor lijn uitlezen en iedere lijn met de Split functie onderzoeken.
Visual Basic .NET:
1
strResultaat = Split(Split(strLijn, "**TWEAKERS**", 2)(1), "**", 2)(0)

De Split functie is beschikbaar vanaf VB 6.0 voor meer info hierover zie MSDN.

"Two things are infinite: the universe and stupidity. And the former I'm not so sure about." -- Albert Einstein


Verwijderd

JohanDM schreef op 14 January 2003 @ 14:16:
Lijn voor lijn uitlezen en iedere lijn met de Split functie onderzoeken.
Visual Basic .NET:
1
strResultaat = Split(Split(strLijn, "**TWEAKERS**", 2)(1), "**", 2)(0)

De Split functie is beschikbaar vanaf VB 6.0 voor meer info hierover zie MSDN.
Nog even voor de duidelijkheid volgend op wat JohanDM opschreef:
Visual Basic .NET:
1
2
3
4
5
6
7
8
Dim fs As New Scripting.FileSystemObject
Dim ts As Scripting.TextStream
Set ts = fs.opentextfile("c:\bla.txt")
dim strResultaat as string 
do while not ts.AtEndOfStream
  strResultaat=ts.readline
  ...... eventuele parse commando's zoals hierboven .....
loop

Verwijderd

Topicstarter
Ik heb VB6.0
Bedankt voor jullie antwoord, maar ik krijg een foutmelding over 'Dim fs As New Scripting.FileSystemObject'
Komt dit omdat ik deze als een Private Sub run? Wat kan ik hier aan doen?

OZ-Gump, ik had eerst een loopje gemaakt die wel werkte maar nogal traag was. Het werkte simpel gezegt zo: Het programma opende een file, haalde X tekens eruit (bij elke loop +1), keek of het **TWEAKERS** was, en dan schreef hij de rest van de zin in een andere TXT file. Daaruit haalde hij net zo lang gegevens totdat deze ** tegen kwam, en schreef dan de gegevens die voor de ** stonden weg. Dan weer naar de volgende regel etc. Beetje sloom op oude pc's en amateuristisch ;)

Verwijderd

Verwijderd schreef op 14 January 2003 @ 14:54:
Ik heb VB6.0
Bedankt voor jullie antwoord, maar ik krijg een foutmelding over 'Dim fs As New Scripting.FileSystemObject'
Komt dit omdat ik deze als een Private Sub run? Wat kan ik hier aan doen?
Nee:
scripting is een reference die je moet opgeven in
Project->References
Je krijgt dan een popupje te zien waarin je 'Microsoft scripting runtime' moet selecteren.

Verwijderd

Of met instr de positie bepalen en dan met mid het juist gedeelte er uit halen...

Wel heel basis hoor....

Verwijderd

= edit =

[ Voor 95% gewijzigd door Verwijderd op 14-01-2003 15:08 ]


Verwijderd

Verwijderd schreef op 14 januari 2003 @ 15:05:
Of met instr de positie bepalen en dan met mid het juist gedeelte er uit halen...

Wel heel basis hoor....
Nee, dit is de basis:
dim a as integer
dim b as integer
dim c as integer
a =5
b = 3
c = a+5

;)

Verwijderd

Topicstarter
Okee bedankt!

Sorry, maar ik programmeer voor m'n lol zonder een boek, alleen met de help.
(ik doe geen programmeer opleiding ofzo)

Speertje heb je MSN ofzo?
Dan hoef ik voortaan de makkelijkste vragen hier niet meer te posten...
_/-\o_

Verwijderd

Verwijderd schreef op 14 January 2003 @ 15:09:
Okee bedankt!

Sorry, maar ik programmeer voor m'n lol zonder een boek, alleen met de help.
(ik doe geen programmeer opleiding ofzo)

Speertje heb je MSN ofzo?
Dan hoef ik voortaan de makkelijkste vragen hier niet meer te posten...
_/-\o_
Sorry no MSN rampespul :(
op dit moment ben ik met icq online op 5705668

Verwijderd

Topicstarter
Peertje, je had een klein foutje gegeven... strResultaat=ts.readline moest natuurlijk strLijn zijn... En om te verhelpen dat hij niet crashed als **TWEAKERS** niet in de regel staat 8)7 , heb ik On Error Resume Next erin gezet.

Allemaal bedankt _/-\o_ , het werkt nu! Hier het bovenstaande samengevat:

On Error Resume Next
Dim fs As New Scripting.FileSystemObject
Dim ts As Scripting.TextStream
Set ts = fs.opentextfile("c:\bla.txt")
Dim strResultaat As String
Do While Not ts.AtEndOfStream
strLijn = ts.readline
MsgBox Split(Split(strLijn, "**TWEAKERS**", 2)(1), "**", 2)(0)
Loop
:*)

Verwijderd

ehm, als je geen MSDN hebt geinstalleerd dan kan je ook altijd nog op msdn.microsoft.com zoeken ? Of MSDN met iets als Kazaa Lite downloaden

Verwijderd

Topicstarter
Ik heb wel MSDN, maar daar word ik ook niet altijd veel wijzer uit. Soms heb je veel sommige dingen uit de help voorkennis nodig om ze goed te kunnen snappen...

Verwijderd

Verwijderd schreef op 14 januari 2003 @ 21:29:
Ik heb wel MSDN, maar daar word ik ook niet altijd veel wijzer uit. Soms heb je veel sommige dingen uit de help voorkennis nodig om ze goed te kunnen snappen...
Dat gaat vanzelf beter als je doorzet, waarschijnlijk kun je ook beter een goed boek aanschaffen. Zelf vind ik de MS Visual Basic 6.0 Programmeergids van Academic Service (MSPress) een fijn naslagwerk.
Pagina: 1