27. august 2007 - 23:06Der er
7 kommentarer og 1 løsning
input fra textfil giver error 6
Hejsa der,
Hvorfor får jeg fejl 6 på:
Open "c:\data.txt" For Input As #1
i = 0 While Not EOF(1) Input #1, stdato(i), sttid(i), proj(i), sldato(i), sltid(i) Debug.Print stdato(i), sttid(i), proj(i), sldato(i), sltid(i) i = i + 1 Wend Close #1
Filen består af linier med en dato, en tid, en string, en dato og en tid i hver.
Forud for ovenstående har dimmed alle variablerne som date, undtagen proj, som er string.
jeg prøver et skud, hvis der altid er data i de 5 felter, burde denne virke.
Dim stdato() As Variant Dim sttid() As Variant Dim proj() As Variant Dim sldato() As Variant Dim sltid() As Variant Dim strdata As String Data As Variant Open "c:\data.txt" For Input As #1 i = 0 While Not EOF(1) ReDim Preserve stdato(i) ReDim Preserve sttid(i) ReDim Preserve proj(i) ReDim Preserve sldato(i) ReDim Preserve sltid(i) Line Input #1, strdata Data = Split(Trim(strdata), " ") stdato(i) = Data(0) sttid(i) = Data(1) proj(i) = Data(2) sldato(i) = Data(3) sltid(i) = Data(4) Debug.Print stdato(i), sttid(i), proj(i), sldato(i), sltid(i) i = i + 1 Wend Close #1
Så lærte jeg nok en masse her. Jeg bruger dit forslag vedr. &";"& istedet for , når jeg gemmer data. Men jeg kan ikke bruge split, for jeg har glemt at nævne at jeg kører på 5.0 :-( Jeg har nu knoklet i timevis med InStr og mid/left/right, men det vil bare ikke. Har du en løsning i 5.0? Men send et svar, du har fortjent pointene, så må jeg knokle videre med InStr.
Ok, jeg bygger lige en ny op ud fra din første kode.
Public Sub UD() Dim StartDato As Date, StartTid As Date, Stopdato As Date, StopTid As Date Dim AktivtProj As String StartDato = #1/1/2007# StartTid = #10:20:00 AM# Stopdato = #2/3/2007# StopTid = #12:20:00 AM# AktivtProj = "Peter Hansen"
Open "c:\data.txt" For Append As #1 Print #1, StartDato & Chr(44) & StartTid & Chr(44) & AktivtProj & Chr(44) & Stopdato & Chr(44) & StopTid Close #1 End Sub
Public Sub IND() Dim stDato() As String Dim Proj() As String Dim stTid() As String Dim slDato() As String Dim slTid() As String Open "c:\data.txt" For Input As #1 i = 0 While Not EOF(1) ReDim Preserve stDato(i) ReDim Preserve stTid(i) ReDim Preserve Proj(i) ReDim Preserve slDato(i) ReDim Preserve slTid(i) Input #1, stDato(i), stTid(i), Proj(i), slDato(i), slTid(i) Debug.Print stDato(i), stTid(i), Proj(i), slDato(i), slTid(i) i = i + 1 Wend Close #1 End Sub
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.