Raring Skrevet 21. mai 2004 Del Skrevet 21. mai 2004 Hvorfor henter ikke dette scriptet ut linje2 fra testfil.txt? Private Sub Command1_Click() Dim Buff As String, Tekst As String, I As String, linje(0 To 6) Open "C:\testfil.txt" For Input As #1 Do Until EOF(1) ' EOF er TRUE når VB har nådd enden av fila Line Input #1, Buff Tekst = Tekst & Buff & vbNewLine I = "0" linje(I) = Tekst I = Val(I) + Val(1) Loop Close #1 MsgBox linje(2) End Sub Kan noen hjelpe meg? Hilsen Raring Lenke til kommentar
aadnk Skrevet 21. mai 2004 Del Skrevet 21. mai 2004 Siden variabelen I ble satt til 0 hele tiden ble ikke array'en fylt med linjene. Jeg har tatt meg den frihet å fikse litt på koden: Private Sub Command1_Click() ' & = As Long Dim Buff As String, Free&, I&, Linje() ' For å muligjør åpning av flere filer på en gang Free = FreeFile Open "C:\testfil.txt" For Input As Free Do Until EOF(1) ' EOF er TRUE når VB har nådd enden av fila Line Input #Free, Buff ' Ved å bruke dynamiske arrayer har man nærmest en ubegrenset lasting av linjer ReDim Preserve Linje(I) Linje(I) = Buff I = I + 1 Loop Close Free ' Henter ut linje 3 (teller fra 0) MsgBox Linje(2) End Sub Lenke til kommentar
Raring Skrevet 21. mai 2004 Forfatter Del Skrevet 21. mai 2004 (endret) Nå har jeg forandret litt på det. Så man kan hente ut hvilke linjer man vil. Eneste problemet er at hvis du sette det til flere linjer en det er i fila starter den på nytt igjen... Noen løsning? Private Sub Command1_Click() T = "0" Do Until T = "10" ' & = As Long Dim Buff As String, Free&, I&, Linje() ' For å muligjør åpning av flere filer på en gang Free = FreeFile Open "C:\testfil.txt" For Input As Free Do Until EOF(1) ' EOF er TRUE når VB har nådd enden av fila Line Input #Free, Buff ' Ved å bruke dynamiske arrayer har man nærmest en ubegrenset lasting av linjer ReDim Preserve Linje(I) Linje(I) = Buff I = I + 1 Loop Close Free ' Henter ut linje 3 (teller fra 0) T = T + 1 Loop MsgBox Linje(4) 'Her velger du hviken(e) linje(e) du skal hente ut End Sub Noen forslag til hvordan man kan få ut tekst fra et dokument, etter et sted det står noe spesielt og ut dokumentet, eller til det er en spesiell linje som markerer stopp? Vet at dette går ann med PHP. Endret 21. mai 2004 av Raring Lenke til kommentar
aadnk Skrevet 22. mai 2004 Del Skrevet 22. mai 2004 Hmm... du burde iallefall sette DIM linjen til helt under Private Sub Command1_Click(). Min teori er at når denne linjen kjøres flere ganger vil variablene bli nullstilt, og derfor starte på nytt igjen. Håper det hjalp. Lenke til kommentar
aadnk Skrevet 22. mai 2004 Del Skrevet 22. mai 2004 En mulig løsning for å laste inn en fil med bestemte betingelser kan være denne koden: Option Compare Text ' Fjern hvis du vil at StartCmd og EndCmd skal være case-sensitive Public Function LoadFile(Path As String, aArray() As String, Optional StartCmd As String, Optional EndCmd As String) Dim LoadLine As Boolean, Free&, Buff$, Cnt& If StartCmd = "" Then LoadLine = True Cnt = -1 Free = FreeFile Open Path For Input As Free Line Input #Free, Buff Select Case LoadLine Case False If Buff = StartCmd Then LoadLine = True Case True If Buff = EndCmd Or EndCmd = "" Then Cnt = Cnt + 1 ReDim Preserve aArray(Cnt) aArray(Cnt) = Buff Else LoadLine = False End If End Select Close Free LoadFile = Cnt End Function Etter du har lagt den inn i formen, kan du bruke kommandoen overalt i prosjektet. Et eksempel på hvordan bruke den kan være dette: Dim Lines() As String LoadFile "C:\test.txt", Lines Etter dette vil variablenen Linesvære fylt med data fra filen. Skal du sette spesielle betingelser gjøres det på denne måten: Dim Lines() As String LoadFile "C:\test.txt", Lines, "[start]", "[end]" Variablenen vil nå være fylt med linjene mellom Start og End i filen. Skal du spesifisere at det ikke finnes en avsluttings-kommando, må du gjøre slik: Dim Lines() As String LoadFile "C:\test.txt", Lines, "[start]" Vil du at sjekkingen av linjer skal være case-sensitive må du fjerne den første linjen i koden. Med case-sensitive mener jeg at programmet f.eks ser forskjell på [start] og [stArT] Lenke til kommentar
Raring Skrevet 22. mai 2004 Forfatter Del Skrevet 22. mai 2004 takk for svar, skal teste det senere 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å