Avatar billede puller Nybegynder
16. februar 2001 - 10:46 Der er 5 kommentarer og
2 løsninger

End of file [Fejl]

Hejsa,

Jeg får en end of file fejl.

Kan du hjælpe mig?

Jeg kan sende dig projektet hvis det er!

Puller
Avatar billede puller Nybegynder
16. februar 2001 - 10:47 #1
Koden er forøvrigt her!

Dim data(16), linie As String
Dim a As Integer
Dim kode As dat
Option Explicit

Private Sub Command1_Click()

Dim data(16), linie As String
Dim a As Integer
Dim Filnavn1 As String
Dim Filnavn As String
Dim Laengde As Integer
Laengde = 4096
Filnavn = Text1.Text
Filnavn1 = \"c:\\dokumenter\\mm.txt\"
Open Filnavn For Input As #1
Open Filnavn1 For Output As #2
Laengde = FileLen(Filnavn)
  Do While Not EOF(1)
    Laengde = Len(Filnavn)
    For a = 0 To 15
    Line Input #1, data(a)
      If data(a) = \"GROUP 00008000\" Then
            a = \"1\"
        End If
    Next
   
    linie = (data(1))                    \'første data - i eksemplet: 1
       
    For a = 2 To 14                          \'komma og følgende data
       
      linie = linie & \";\" & (data(a))    \'Med valør (val) undgår du \" \" om tallene.
 
    Next
    Print #2, linie                              \'strengen linie skrives til ud-filen
    linie = \"\"                                    \'strengen linie tømmes for indhold
  Loop
Close #1
Close #2

End Sub
Avatar billede privaten Nybegynder
16. februar 2001 - 10:48 #2
open \"test.fil\" for  input as #1

While not eof(1)
..
..
..
Wend
Avatar billede puller Nybegynder
16. februar 2001 - 10:50 #3
Det virker ikke! (Måske det er mig)

Men hvor skal det præcis sættes ind?
Avatar billede privaten Nybegynder
16. februar 2001 - 10:51 #4
Du har en ydre løkke i form af while, men inden i den har du endnu en (for-next):
Hvis der ikke er 15 elementer tilbage i filen får du en end of file...

indsæt:

if eof(1) then ....


   
   
Avatar billede privaten Nybegynder
16. februar 2001 - 10:53 #5
Det er denne her der er problemet:


->    For a = 0 To 15
        if not eof(1) then  <-  indsæt
          Line Input #1, data(a)
          If data(a) = \"GROUP 00008000\" Then
              a = \"1\"
          End If
        end if
->    Next
Avatar billede puller Nybegynder
16. februar 2001 - 11:00 #6
Så får jeg et problem med loop\'en nederst i billedet!

Private Sub Command1_Click()

Dim data(16), linie As String
Dim a As Integer
Dim Filnavn1 As String
Dim Filnavn As String
Dim Laengde As Integer
Laengde = 4096
Filnavn = Text1.Text
Filnavn1 = \"c:\\dokumenter\\mm.txt\"
Open Filnavn For Input As #1
Open Filnavn1 For Output As #2
  Do While Not EOF(1)
    If EOF(1) Then
    For a = 0 To 15
        If Not EOF(1) Then \' <-  indsæt
          Line Input #1, data(a)
          If data(a) = \"GROUP 00008000\" Then
              a = \"1\"
          End If
        End If
    Next

   
    linie = (data(1))                    \'første data - i eksemplet: 1
       
    For a = 2 To 14                          \'komma og følgende data
       
      linie = linie & \";\" & (data(a))    \'Med valør (val) undgår du \" \" om tallene.
 
    Next
    Print #2, linie                              \'strengen linie skrives til ud-filen
    linie = \"\"                                    \'strengen linie tømmes for indhold
  Loop    <--- Denne her (\"Loop without do\")
Close #1
Close #2

End Sub
Avatar billede tdaugaard Nybegynder
16. februar 2001 - 12:46 #7
Det er pga. din \"If EOF(1) Then\" sådan her skal din kode se ud )jeg har også rettet nogle små kosmetiske kode fejl)

Private Sub Command1_Click()
  Dim data(16), linie As String
  Dim a As Integer
  Dim Filnavn1 As String
  Dim Filnavn As String
  Dim Laengde As Integer

  Laengde = 4096
  Filnavn = Text1.Text
  Filnavn1 = \"c:\\dokumenter\\mm.txt\"

  Open Filnavn For Input As #1
  Open Filnavn1 For Output As #2
    Do Until Eof(1)
      For a = 0 To 15
        If EOF(1) Then Exit For

        Line Input #1, data(a)
        If data(a) = \"GROUP 00008000\" Then a = \"1\"
      Next
   
      linie = data(1)                    \'første data - i eksemplet: 1

      For a = 2 To 14                          \'komma og følgende data
        linie = linie & \";\" & data(a)    \'Med valør (val) undgår du \" \" om tallene.
      Next

      Print #2, linie                              \'strengen linie skrives til ud-filen
    Loop
  Close
End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester