muss noch sagen, das der code geht, wenn ich ihn nach dem ganzen einlesen einsätze! dabei ist auch zu beachten, das die testdatei, sehr klein ist (9 einträge, 9 deutsch, manche kommen oft vor und 9 englische begriffe) und wenn ich es in bei der richtigen textdatei einsätze geht es nicht.
der code/teil der datei trotzdem:
teil der datei sieht so aus:
Aachen=Aachen
Aachen=Aix-la-Chapelle
Aal=eel
Aal=moray
Aalbutt=plaice
aalglatt=oily
aalglatt=slick
aalglatt=slippery
beste=best
Beste=bests
Beste=fat
Beste=number one
Beste=pick
Beste=pinnacle
Beste=tiptop
bestechen=boodle
usw.
und die datei wir, wie schon beschrieben eingelesen, der inhalt links vom (deutsches wort) "=" in lDeut(Listbox) und der Inhalt rechts vom (englisches wort)"=" in lEng (Listbox) und die ganze zeile in List1 (Listbox)
nun dein code, einbisschen verändert mit meinem code:
Function Einlesen(ByVal sFile As String)
On Error GoTo Fehler
Dim No As Integer
Dim sLine As String
Dim deutsch As String
Dim englisch As String
Dim nSize As Long
Dim iProz As Integer
' ##### anfang deiner veränderten variablen ###### '
Dim value As String
Dim i As Long
'##### Ende deiner Variablen ###### '
No = FreeFile
Form1.lEnglisch.Clear
Form1.lDeutsch.Clear
Open sFile For Input As #No
nSize = LOF(No)
Do Until EOF(No)
Line Input #No, sLine
ShowProgress picProgress, Loc(No) * 128, 0, LOF(No), True
DoEvents
If InStr(1, sLine, "=") > 0 Then
If Left(sLine, InStr(1, sLine, "=") - 1) <> "" And Mid(sLine, InStr( _
1, sLine, "=", vbBinaryCompare) + 1) <> "" Then
deutsch = Trim((Left(sLine, InStr(1, sLine, "=") - 1)))
englisch = Trim(Mid(sLine, InStr(1, sLine, "=", vbBinaryCompare) + _
1))
lblDeutsch.Caption = "Lade: " & deutsch
lblEnglisch.Caption = "Lade: " & englisch
'### Meiner Meinung nach muss an dem was geändert werden, also wenn es
' schon da ist, bei lDeu nichts reinschreiben und wenn es nicht gleich
' ist, dann in lDeu was reinschreiben., es geht aber alles nicht :(
' ######'
Form1.lDeu.AddItem deutsch
Form1.lEng.AddItem englisch
Form1.List1.AddItem Trim(sLine)
End If
End If
Loop
Close No
value = ""
i = 0
While i < Form1.lDeut.ListCount
If value = Form1.lDeu.List(i) Then
Form1.lDeu.RemoveItem (i)
Else
value = Form1.lDeu.List(i)
i = i + 1
End If
Wend
Einlesen = True
Form1.Show
Unload Me
Exit Function
Fehler:
Reset
End Function |