Een of meer woorden laten lezen/weergeven van een texxtfile uit een listbox

Status
Niet open voor verdere reacties.

satriano17

Gebruiker
Lid geworden
30 sep 2012
Berichten
342
Ik heb een listbox
een textbox
en ik heb een textfile
de data in de text file is (bv) zo :
Huis 1
kat 2
...enz

dus eerste een string, een tab en dan een getal
De text file wordt gelezen en de getal wordt dan weergegeven in text1
Tot hier is alles ok.

Ik heb geprobeerde om, in plaats van een getal te gebruiken ,na de tab, een ander string,
eventueel bevattend ook meer dan een woord, te plaatsen. Bv:
Huis wit muren
Kat Wit en zwart
......
maar wordt in text 1 niks meer weergegeven.

Code:
Private Sub Form_Load()
ipos = -1
On Error Resume Next

Dim bestand As Long
    Dim lijn As String
    Dim textAndValue() As String
    List1.Clear
    bestand = FreeFile
    Open App.Path & "\TEST.txt" For Input As #bestand
    Do While Not EOF(bestand)
        Line Input #bestand, lijn
        If Len(lijn) Then
            textAndValue = Split(lijn, vbTab)
            If UBound(textAndValue) = 1 Then
                List1.AddItem textAndValue(0)
                List1.ItemData(List1.NewIndex) = textAndValue(1)
            End If
        End If
    Loop
    Close #bestand
End Sub

Private Sub List1_Click()
If List1.ListIndex >= 0 Then
        Text1.Text = List1.ItemData(List1.ListIndex)
        End If
End Sub
hoe moet ik het verbeteren?
dank u
satriano
 
Laatst bewerkt:
Haal eerst dat ellendige On Error Resume Next eens weg en test het dan nog eens.
 
(ik werk met vb6, vergeten te melden)

zonder on error resume next krijg ik runtime error 13
type mismatch
 
Laatst bewerkt:
En dat gebeurt met die regel ook, alleen zie je dat dan niet.
Je gebruikt dus ergens een onjuist datatype.
 
ja, maar
de code die ik gepost heb is alles, geen ander code

Dus de fout moet daar zitten.
 
Laatst bewerkt:
Plaats je document en bijbehorend tekst bestand.
 
in bijlage de text bestand
(de inhoud is in het italiaans)

de eerste regel is om te proberen met een string en niet met een getal)
 

Bijlagen

Laatst bewerkt:
Voor zover ik hier zo kan testen werkt het hier prima.
Haal voor de zekerheid de onderste, lege regel eens uit het tekst bestand weg.
 
Laatst bewerkt:
Ik heb de laatste regel verwijderd. Ik het geen error meer maar
als ik eerste regel

'Proef Proberen'
heb
dan krijg ik in text1 '0' en niet 'Proberen'
En dat was de initieel probleem van de post.
 
Dat kan ik niet zien omdat die tekst niet voor komt in het bestandje dat je plaatste. En wat bedoel je met text1? Dat staat nergens in je code.

Wat die lege regel betreft moet je dus voor het Split commando controleren of je wel een gevuld variabele hebt.
Als die vbTab er niet in staat krijg je die fout 13.
 
Laatst bewerkt:
Dag Edmoor

de text1 komt wel in mijn code
Code:
Private Sub List1_Click()
If List1.ListIndex >= 0 Then
        Text1.Text = List1.ItemData(List1.ListIndex)
        End If
End Sub

in text1 wordt dan de getal na de tab weergegeven.
---------

In de tekst dat u hebt (van de bijlage) staat inderdaad op het eerste regel

ALLERGIE CAZZO

dus in text1 moest CAZZO weergegeven worden maar nu komt '0' (nul)
aan het begin van post had ik gezegd dat mijn bedoeling was om in plaats van
een woord + een getal met twee woorden werken.
Daarom had ik de voorbeeld
Huis wit muren
Kat Wit en zwart
......
geplaatst

Dus
Ik werk nu met een woord tab getal
ik zou willen doen met (in de text file)
woord tab woord (een of meer na de tab)
ed dat was het probleem en mijn initieel vraag.
 
Laatst bewerkt:
Keek ik overheen omdat het buiten het venster valt.
Plaats dan eens de projectmap (gezipt) van .Net project hier.
 
Laatst bewerkt:
Hierbij de zip met de klein prog (vb6)

NB
Te text file bevat nu de oude format
woord tab getal

en de nieuw format dat ik wenst, namelijk

woord tab woord (een of meer na de tab)

dank u
 

Bijlagen

Laatst bewerkt:
Sorry. Ik zie net pas dat het om VB6 gaat. Die ontwikkelomgeving heb ik niet dus kan het niet naspelen.
Op welk moment gaat het mis?
 
als ik op een titel click in de list box
dan krijg ik, in de text1, in plaats van de woord na de tab, een '0'
 
Het geet mis op deze regel:
List1.ItemData(List1.NewIndex) = textAndValue(1)

Die textAndValue(1) bevat een String en List1.ItemData(List1.NewIndex) mag alleen een Integer krijgen.
Wat probeer je precies te bereiken?
 
Wat probeer je precies te bereiken?
ik heb boven al gezegd:

als ik in de textfile

Huis TAB wit muren
Kat TAB Wit en zwart
......

heb, dan wil ik dat

wit muren of
wit en zwart
in text1 weergegeven worden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan