Richard87 Skrevet 8. mai 2005 Del Skrevet 8. mai 2005 Koffor for eg denne file meldingen i denne koden? (Og kossen kan eg fiksa det?) dte ska jo ikkje ver muligt for LOF og returnera mer tegn en der e i filå, så koffor får eg feil melding og kossen kan eg fiksa det? (PS. Koden har virka før..) Error: 62 Input past end of file Open FileName For Input As #lFree sBuffer = Input(LOF(lFree), lFree) Close #lFree Syntax Input(number, [#]filenumber) Part Description : number: Required. Any validnumeric expression specifying the number of characters to return. filenumber: Required. Any validfile number. (fra msdn) Lenke til kommentar
aadnk Skrevet 8. mai 2005 Del Skrevet 8. mai 2005 Sannsynligvis inneholder filen du leser ifra en eller flere nullkarakterer, hvilket oppfattes av Input at lesingen har nådd filens endelse. Følgende kode reproduserer problemet: Dim sBuffer As String, Free As Long ' Generer informasjonen sBuffer = "hallo" & Chr(0) & "verden" Free = FreeFile ' Skriv den til filen Open "C:\Something.txt" For Binary As #Free Put #Free, , sBuffer Close #Free Free = FreeFile ' Åpne fil Open "C:\Something.txt" For Input As #Free sBuffer = Input(LOF(Free), Free) Debug.Print LOF(Free) Close #Free En løsning på dette, er å benytte Binary-nøkkelordet istedenfor Input, slik at en kan håndtere nullkarakterer: Dim sBuffer As String, Free As Long Free = FreeFile ' Åpne fil Open "C:\Something.txt" For Binary As #Free ' Alloker buffer til samme størrelse som fil sBuffer = Space(LOF(Free)) ' Last inn all data bufferen kan romme Get #Free, , sBuffer Close #Free 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å