'Denne funktion bruges hvis du ikke har VB6 (Split) Public Function SplitString(ByVal strIn As String) As Variant Dim i As Long Dim strOne As String Dim intSel As Integer Dim arrOut(3) As String For i = 1 To Len(strIn) strOne = Mid$(strIn, i, 1) Select Case strOne Case "~" '<- Split intSel = intSel + 1 Case Else arrOut(intSel) = (arrOut(intSel) & strOne) End Select Next SplitString = arrOut() End Function
Public Function LoadTextData(ByVal strFile As String) As Long Dim lngLine As Long Dim strLine As String Dim intFree As Integer
lngLine = -1 intFree = FreeFile ReDim TextData(0) As String
Open strFile For Input As #intFree Do While Not EOF(intFree) Line Input #intFree, strLine
If strLine <> "" Then lngLine = (lngLine + 1) ReDim Preserve TextData(lngLine) As String TextData(lngLine) = strLine End If
Loop Close #intFree
LoadTextData = lngLine End Function
Public Sub Update(ByVal Index As Long) Dim arrData As Variant 'Hvis du bruger VB6 kan du bruge Split 'arrData = Split(TextData(Index), "~")
'Hvis du ikke har VB6 så brug SplitString arrData = SplitString(TextData(Index))
Text1.Text = arrData(0) Text2.Text = arrData(1) Text3.Text = arrData(2) Text4.Text = arrData(3) End Sub
Private Sub Form_Load() HScroll1.Max = LoadTextData("C:\textdatabase.txt") Call Update(0) End Sub
'HScrollBar til at vælge med. Private Sub HScroll1_Change() Call Update(HScroll1.Value) End Sub
'HScrollBar til at vælge med. Private Sub HScroll1_Scroll() Call Update(HScroll1.Value) End Sub '----------------------------------- Form1 -----------------------------------
Samme løsning som shj (tror jeg), bare skrevet lidt kortere, hvis du har brug for overblik ;o)
dim i as long dim MyArray() as string dim SplitArray(3) as string open "c:\textdatabase.txt for input as #1 while not eof(1) redim preserve MyArray(i) Line Input #1, MinString i = i+1 wend close #1
'Nu har du et array MyArray, som ser ud som følger:
Hvis du havde en "rigtig" database og ikek en textfil, kunne du binde dine textboxe til felter i tabellen, så de automatisk blev indlæst og opdateret osv. Bare til orientering
Jeg bruger VB 6 martin_moth-> Jeg prøver at teste MyArray(1) via MsgBox. Jeg har ingen valg her, jeg må hent fra den *txt
Private Sub Form_Load() Dim i As Long Dim MyArray() As String Dim SplitArray(3) As String Open "C:\WINDOWS\Skrivebord\textdatabase.txt" For Input As #1 While Not EOF(1) ReDim Preserve MyArray(i) Line Input #1, MinString i = i + 1 Wend Close #1
Fejlen i min kode er Line Input #1, MinString Der skal hedde Line Input #1, MyArray(i) Det ville du kunne finde ud af ved lige at kikke 5 sek på hvordan koden virker :o)
Tusind tak for hjelpen Feilen var i min Text1 :) boxen og den går bar nu med Text1.Text = arrData(0)
martin_moth -> Ingen er perfekt ;) Ha en fin kveld
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.