Hej! Hej, om din fil ser ut så här: Ok, ska det vara så för att det är en array? Ja, det är för att det är en Array. >>Ja, det är för att det är en Array. Är det fast kolumnbredd? I så fall kan du använda följande princip: Har inte några fasta mellanrum, men Berras exempel fungerade bra för mig. Hej, glöm inte att deklarera variablerna rätt bara, annars kommer Sven *skratt*Stränghantering.
Om jag har en sträng i en textfil med värdena...
Bo Ko 1212121212 21:00 07:00
...hur tar jag ut förnamn,efternamn,personnr,starttid och sluttid till variabler på enklast sätt?
Storleken på strängen kan ju naturligtvis variera beroende på hur långa namn man har.
Använder VB6.Sv: Stränghantering.
Bo, Ko, 1212121212, 21:00, 07:00
alltså med kommatecken (hoppas du kan ha det) och kör med koden nedan:
<code>
Private Sub Command1_Click()
Dim Textline As String
Dim fnum
fnum = FreeFile
Open "c:\test.txt" For Input As #fnum ' öppnar filen för läsning
Line Input #fnum, Textline ' läser in rad i en variabel
Close #fnum
Dim tmp
tmp = Split(Textline, ",")
Dim i As Long
For i = 0 To UBound(tmp)
MsgBox Trim(tmp(i))
Next i
End Sub
</code>
Du får editera så den passar dig bättre:)
Sven: Vad anser du då?Sv: Stränghantering.
om jag dimmar så här:
dim tmp as string så blir det fel men sätter jag () efter som du så går det, varför?
Det va inte så mycket du anmärkte på iaf:) bättrar jag mig kanske?Sv: Stränghantering.
Om du verkligen vill ha klagomål:
-Du bör deklarera fnum som Long
-Du bör följa en striktare namngivningsstandard.
-Du har en ganska mystisk indenteringsstil. Tänk så här: om du har något som börjar med en statement och slutar med en annan (For...Next, Do...Loop, If...End If, osv.) så ska du flytta in allt däremellan en tab, inte annars.Sv: Stränghantering.
OK
>>Om du verkligen vill ha klagomål:
Jag vill ha kritik som ger mig nått, inte klagomål:)
>>-Du bör deklarera fnum som Long
Det missa jag, tack.
>>-Du bör följa en striktare namngivningsstandard.
Var det allmänt du menar nu, för detta exempel va väl inte fel?
Jag vet att jag borde ha bättre namn på saker.
>>-Du har en ganska mystisk indenteringsstil. Tänk så här: om du har något som börjar med en statement och slutar med en annan (For...Next, Do...Loop, If...End If, osv.) så ska du flytta in allt däremellan en tab, inte annars.
Jag ska tänka på det.
Tack för det.Sv: Stränghantering.
<code>
Private Type Record
FirstName As String * 8
LastName As String * 8
Telefon As String * 16
TomTime As String * 13
FromTime As String * 5
End Type
Private Type RecordString
Data As String * 50
End Type
Sub test()
Dim strTest As String
Dim Rec As Record
Dim strRec As RecordString
strTest = "Bo Ko 1212121212 21:00 07:00"
strRec.Data = strTest
LSet Rec = strRec
With Rec
Debug.Print "FirstName: " & .FirstName
Debug.Print "LastName: " & .LastName
Debug.Print "Telefon: " & .Telefon
Debug.Print "TomTime: " & .TomTime
Debug.Print "FromTime: " & .FromTime
End With
End Sub
</code>
Är tab avskiljare:
<code>
Sub test()
Dim strTest As String
Dim Values() As String
strTest = "Bo" & vbTab & "Ko" & vbTab & "1212121212" & vbTab & "21:00" & vbTab & "07:00"
Values = Split(strTest, vbTab)
Debug.Print "FirstName: " & Values(0)
Debug.Print "LastName: " & Values(1)
Debug.Print "Telefon: " & Values(2)
Debug.Print "TomTime: " & Values(3)
Debug.Print "FromTime: " & Values(4)
End Sub
</code>Sv: Stränghantering.
Tackar!Sv: Stränghantering.
(jag bara skoja Sven, självklart har du rätt)
/B