Avatar billede tolveren Nybegynder
26. marts 2007 - 21:03 Der er 3 kommentarer og
1 løsning

Filbehandling hvor filer samles i en fil

Mon der sidder en som kan gennemskue min kode. Jeg er lidt blank på kodning. Det var meningen at jeg skulle udsøge nogle tekst-filer som ligger i et katalog samt nogle underkataloger.Teksten fra alle filer skulle skrives over i en samlefil.
Min kode: håber på lidt hjælp
Private Sub CommandButton1_Click()
Dim linier
Set fs = Application.FileSearch
With fs
    .LookIn = "D:\huset"
    .SearchSubFolders = True
    .FileName = "tekst**.txt"
    If .Execute(SortBy:=msoSortByFileName, _
    SortOrder:=msoSortOrderAscending) > 0 Then
        MsgBox "There were " & .FoundFiles.Count & _
            " file(s) found."
        For i = 1 To .FoundFiles.Count
            j = .FoundFiles(i)
             
   
    Open j For Input As #1
    Open "D:\huset\samlefil.txt" For Output As #2
    Do While Not EOF(1)
    Line Input #1, linier
   
    Print #2, linier
   
    Loop
    Close #1
    Close #2         
           
          FreeFile           

        Next i
       
       
    Else
        MsgBox "There were no files found."
    End If
End With

End Sub
Avatar billede kabbak Professor
26. marts 2007 - 22:01 #1
du skal nok rette:

Open "D:\huset\samlefil.txt" For Output As #2
til
Open "D:\huset\samlefil.txt" For Append As #2

Du vil jo tilføje flere filer i samme fil
Avatar billede kabbak Professor
26. marts 2007 - 22:03 #2
jeg ville nok også flytte åbningen af fil#2 uden for loop

Private Sub CommandButton1_Click()
    Dim linier
    Set fs = Application.FileSearch
    With fs
        .LookIn = "D:\huset"
        .SearchSubFolders = True
        .Filename = "tekst**.txt"
        If .Execute(SortBy:=msoSortByFileName, _
                    SortOrder:=msoSortOrderAscending) > 0 Then
            MsgBox "There were " & .FoundFiles.Count & _
                " file(s) found."
            Open "D:\huset\samlefil.txt" For Append As #2
            For i = 1 To .FoundFiles.Count
                j = .FoundFiles(i)

                Open j For Input As #1

                Do While Not EOF(1)
                    Line Input #1, linier
                    Print #2, linier
                Loop
                Close #1
                FreeFile

            Next i
            Close #2
        Else
            MsgBox "There were no files found."
        End If
    End With

End Sub
Avatar billede tolveren Nybegynder
26. marts 2007 - 23:16 #3
Det virker. Tak for hjælpen. Læg et svar og du får point.
Avatar billede kabbak Professor
27. marts 2007 - 00:06 #4
Et svar ;-))
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