Tack Sven för hjälpen tidigare, men jag har fortfarande inte löst problemet. Hej Jag har ändrat i filen nu så att jag vill läsa in tre rader åt gången. Hej igenInläsning från fil till vektor
När jag läser in från fil till en vektorn vill jag läsa in strängar som börjar på t ex "1" till vektor 1 och strängar som börjar på "2" till vektor 2 osv. Strängarna ligger inte i någon speciell ordning på filen. Jag har försökt med koden nedan, men jag misstänker att jag måste redimma vektorn under inläsningen. Kan någon ge mig en ledtråd eller kodsnutt som hjälper mig på traven?
Line Input #1, strRad
If Left(strRad, 1) = "1" Then
vStrLangd = Split(strRad, vbCrLf)
End If
If Left(strRad, 1) = "2" Then
vStrVikt = Split(strRad, vbCrLf)
End If
Hjälp!Sv: Inläsning från fil till vektor
Okidoki vi tar det från början. Vad vill du åstadkomma ?
Hur ser textfilen u när du tittar på den i tex NotePad.
Vi måste loopa genom alla rader .Då behöver Vi inte split
När vilkoret stämmer läser Vi in i en Array
Hur stor skall Arrayen var ? .Ja det är en bra fråga.
Vi kan som du säger ReDimma men det vore bättre om Vi
kunde lista ut detta först.
Om du visar ett kort exempel på hur textfilen ser ut så kan
Vi kanske lista ut hu det skall angripas.
DSSv: Inläsning från fil till vektor
På filen står
1
Gammal mil
10689
1
Aln
0.594
2
Lispund
8.502
1
Steg
0.9
osv. Jag vill nu läsa in till olika vektorer så att där första raden är en etta läggs tex Gammal mil som index 0 i en vektor och 10689 som index 0 i en annan vektor. Samma med de som har en tvåa i första raden. Jag vill alltså ha 4 vektorer. Jag har försökt göra det med if-satser, men då har jag bara fått in den sist lästa indexet i var vektor. Enligt exemplet ovan har alltså längdmåttsvektorn Steg som index 0 och ingenting annat.
Tacksam för hjälp.Sv: Inläsning från fil till vektor
Roade mig med att skriva ihop ett förslag till lösning.
Nog inte det optimala men änndock en lösning.
Option Explicit
Private Sub Command1_Click()
Dim FileNum As Long, tmpStr As String, element As Long
Dim FirstArray() As String, DataArray() As String
Dim DataTyp As String, i As Long, n As Long
FileNum = FreeFile
Open "C:\Test.txt" For Input As #FileNum
tmpStr = Input$(LOF(FileNum), FileNum)
FirstArray = Split(tmpStr, vbCrLf)
element = UBound(FirstArray) + 2
Close #FileNum
ReDim DataArray(element, 4)
i = 0
For n = 0 To element Step 3
DataTyp = FirstArray(n)
Select Case DataTyp
Case Is = "1"
DataArray(i, 0) = FirstArray(n + 1)
DataArray(i, 1) = FirstArray(n + 2)
i = i + 1
End Select
Next 'n
i = 0
For n = 0 To element Step 3
DataTyp = FirstArray(n)
Select Case DataTyp
Case Is = "2"
DataArray(i, 2) = FirstArray(n + 1)
DataArray(i, 3) = FirstArray(n + 2)
i = i + 1
End Select
Next 'n
End Sub
Mvh
Sven