1 woord uit tekstfile in textbox

Status
Niet open voor verdere reacties.

Hoogerheide

Gebruiker
Lid geworden
11 okt 2007
Berichten
12
Goedemorgen,

Ik heb een rapport (c:\test.txt) wat uitgedraaid word, en hierin staat op een bepaalde locatie (regel 4 en dan het 3 tot 5de karakter, de tekst die hier staat wil ik graag inlezen in een tekstbox

Ik krijg het tot nu toe alleen voor elkaar om een totaal tekstbestand in te lezen of alleen de laatste regel zoals in onderstaande code:

PHP:
Private Sub Command1_Click()
Dim Regel As String
Dim Tekst As String

Open "c:\test.txt" For Input As #1
  Do Until EOF(1)
    'Lees een nieuwe regel in.
    Line Input #1, Regel
    
    'Voeg de regel toe aan de tekst.
    If Not (Tekst = "") Then Tekst = Tekst & vbCrLf
    Tekst = Tekst & Regel
    Text1.Text = Regel
  Loop
Close #1
End Sub

Kan iemand met helpen?
 
wat je (dat is, via een omweg) kan doen is het bestand inlezen in een LISTBOX, dan bijhouden op welke regel je bent, en dan van die regel het 2e woord pakken.

Voorbeeld: (list1)
Code:
Private Sub Command1_Click() 
Dim Regel As String 
Dim Tekst As String 
[COLOR="seagreen"]'dit is een counter voor de 'regel'[/COLOR]
dim lRegel as long
lRegel  = 0
Open "c:\test.txt" For Input As #1 
  Do Until EOF(1) 
    'Lees een nieuwe regel in. 
    Line Input #1, Regel 
     
[COLOR="SeaGreen"]'dit is dus anders[/COLOR]
    list1.additem Regel
lRegel  = lRegel +1
  Loop 
Close #1 


[COLOR="seagreen"]'alright, nu heb je dus list1 die volzit met alle regels. Pak nu in een variabele regel 4:[/COLOR]
dim sRegelvier as string
sRegelvier = list1.list(3) [COLOR="seagreen"]'errr of 4 , beginnen bij de 0 ;)[/COLOR]

dim sWatWeWillen as string
sWatWeWillen = mid(sWatWeWillen, 3,2)
[COLOR="seagreen"]'output[/COLOR]
msgbox sWatWeWillen 

End Sub

[edit] ik heb eventjes wat dingetjes aangepast, zoals "not ()" -> "<>"
 
Laatst bewerkt:
bedant, werkt perfect, als je in de laatste regel
sWatWeWillen = mid(sWatWeWillen, 3,2)
vervangt door
sWatWeWillen = mid(sregelvier, 3,2)

nu heb ik een volgend probleem:

Het bestand waarmee ik werk is een soort rapport met uitslagen, de inhoud van dit bestand is dus variabel.
Nu staat er onderin het bestand ( op de 2 na laatste regel ) nog een stukje tekst wat ik in een variabele wil laden.

Er staat bijvoorbeeld "result: 0" het moet nul zijn om een bepaalde bewerking uit te voeren. maar hier kan dus ook bijvoorbeel 1 of 2 staan

zijn er ook methodes om dit te doen? om bijvoorbeeld vanaf EOF naar boven te tellen?
Of te zoeken op "result: 0" en dan te zoeken en te kijken of deze tekst voorkomt in deze file?

bedankt alvast!!
 
Je kunt toch ook tijdens het inlezen van het bestand de regels bijhouden.

Code:
Dim ix As Integer, sRegel As String
ix = 0

Open "c:\input.txt" For Input As #1
  Do Until EOF(1)
    Line Input #1, sRegel
    ix = ix + 1
    If ix = 1 Then Exit Do 'de '1' staat hier voor de eerste regel
  Loop
Close #1
 
Hi

Vandaag bezig geweest met mijn eerste vraag!
het leek allemaal goed te werken op mijn labtop.
Maar toen we er echt mee moesten werken kwam er een probleem

Het probleem is dat onderstaande code in een timer procedure aangeroepen word, en dat elke seconde opnieuw deze waardes uit de file gehaald worden.

De waardes in de files kunnen dus veranderen.

Op de een of andere wazige manier blijft de variabele1 en variabele2 staan die gevonden zijn tijdens de eerste cyclus van het programma. alle cyclussen daarna veranderd niks aan deze variabellen,

Iemand een idee hoe ik dit op kan lossen.

Code:
Function defkey()

'hier word de variabele1 en het variabele2 in het testrapport opgezocht


'dit is een counter voor de 'regel'
Dim lRegel As Long
lRegel = 0
Open "c:\diction\" & Text1.Text For Input As #1
  Do Until EOF(1)
    'Lees een nieuwe regel in.
    Line Input #1, Regel
    List1.AddItem Regel
lRegel = lRegel + 1
  Loop
Close #1

sRegel5 = List1.List(3)
sRegel6 = List1.List(7)

variabele1 = Mid(sRegel5, 23, 11)
variabele2 = Mid(sRegel6, 23, 11)


End Function
 
veranderd de listbox wel? Wat eventueel zou kunnen is dat het te snel gaat voor de file i/o maar dat lijkt me sterk.
 
Problemen zijn allemaal al opgelost,

ik was vergeten listbox1.clear boven de loop te zetten waardoor alle data steeds toegoegd wrd en dus de tekst in de 3e regel bleef zoals hij was.

het is opgelost,

bedankt voor de hulp!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan