Merko Skrevet 30. mai 2007 Del Skrevet 30. mai 2007 Hei. Det jeg lurer på er hvordan jeg kan gjøre slik at da jeg trykker på en knapp el. så leser den fra ei tilfeldig linje i text fila og fører den inn i tekst feltet. Kan vel også gå med at den leser fra ei bestemt linje, så kan jeg ta det fra der.. Takker Lenke til kommentar
Degeim Skrevet 30. mai 2007 Del Skrevet 30. mai 2007 Jeg tror det er mulig å hente ut spesifikke linjer med kode, men slik ville jeg gjort det: Dim Innhold() as string=Split(My.Computer.Filesystem.Readalltext("filnavn"),VBCRLF) Randomize TextBox1.Text=Innhold(Int(rnd*ubound(innhold))) Koden er ikke testet, men jeg tror den skal fungere fint. Degeim Lenke til kommentar
Merko Skrevet 31. mai 2007 Forfatter Del Skrevet 31. mai 2007 Jeg tror det er mulig å hente ut spesifikke linjer med kode, men slik ville jeg gjort det: Dim Innhold() as string=Split(My.Computer.Filesystem.Readalltext("filnavn"),VBCRLF) Randomize TextBox1.Text=Innhold(Int(rnd*ubound(innhold))) Koden er ikke testet, men jeg tror den skal fungere fint. Degeim 8745498[/snapback] Nei funket ikke ;/ Lenke til kommentar
Merko Skrevet 31. mai 2007 Forfatter Del Skrevet 31. mai 2007 (endret) . Endret 26. juni 2008 av Merkoen Lenke til kommentar
Degeim Skrevet 31. mai 2007 Del Skrevet 31. mai 2007 (endret) Er det VB6 vi snakker om? Da må du ha dem på to linjer (fjern '='-tegnet) og erstatte My.Computer.Filesystem.Readalltext("filnavn") med noe annet som åpner filer. Endret 31. mai 2007 av Degeim Lenke til kommentar
aadnk Skrevet 31. mai 2007 Del Skrevet 31. mai 2007 (endret) Da må du ha dem på to linjer (fjern '='-tegnet) og erstatte My.Computer.Filesystem.Readalltext("filnavn") med noe annet som åpner filer. Du kunne også ha brukt ReadAllLines, og dermed unngått å først lese inn hele filen i en streng og lage en kopi i form av en array. I VB6 ville jeg implementert denne funksjonen som følger: Public Function ReadAllLines(sPath As String, Lines() As String) As Long On Error GoTo Feil Dim Free As Long, LineCount As Long ' Hent ledig filnummer Free = FreeFile ' Åpne den gitte fil Open sPath For Input As #Free ' Fortsett inntil alle linjer er lest Do Until EOF(Free) ' Øk antallet linjer LineCount = LineCount + 1 ' Øk størrelsen på arrayen ReDim Preserve Lines(1 To LineCount) ' Lagre linjen her Line Input #Free, Lines(LineCount) Loop ' Lukk fil Close #Free ' Returner linjene ReadAllLines = LineCount ' Feilhåndtering Exit Function Feil: ReadAllLines = -Err.Number End Function Da kan du lese en tilfeldig linje fra en tekstfil som følger: Private Sub cmdRandom_Click() Dim aLines() As String, Ret As Long ' Les alle linjer fra filen Ret = ReadAllLines("C:\Test.txt", aLines) ' Behandle returverdi Select Case Ret Case Is > 1 ' Vis en tilfeldig linje MsgBox aLines(Random(UBound(aLines), LBound(aLines))) Case 0 MsgBox "Kan ikke lese linje: filen er tom.", vbCritical, "Feil" Case Else MsgBox "Kunne ikke lese fil: " & vbNewLine & Error(-Ret) & " (" & -Ret & ")", vbCritical, "Feil" End Select End Sub Public Function Random(Min As Long, Max As Long) As Long ' Initialiser pseudotilfeldighetsgenerator Randomize ' Returner et tilfeldig nummer mellom (og inkludert) minimum og maksimum Random = Min + ((Max - Min) * Rnd) End Function Edit: Jeg merker det er svært mange som unnlater å nevne hvilken kompilator de bruker, med den konsekvens at mye tid går bort i å løse det gitte problem i feil VB-versjon. Kanskje noen burde lage et sticky som forklarer at en ikke kan forvente at folk er tankelesere (eller har tid til å sjekke hva dine tidligere tråder omhandler) og kan finne det ut selv. Endret 31. mai 2007 av aadnk Lenke til kommentar
Merko Skrevet 1. juni 2007 Forfatter Del Skrevet 1. juni 2007 Beklager at jeg glemte å skrive hvilket program jeg brukte, pleier å huske sånt men skrev posten litt sent på kvelden! Men takk, det funker nå Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå