Avatar billede skildpadden Nybegynder
18. april 2004 - 23:34 Der er 4 kommentarer og
1 løsning

Navndata fra fil

Jeg har et program som automatisk opretter et pdf-dokument udfra fakturaer og kreditnotaer. Filen oprettes således at den kaldes BILAGSNAVN-BILAGSNUMMER-KUNDENUMMER.PDF, f.eks.

Faktura-12332-456652.pdf

Det som så skal bruge, er et script som gennemsøger mappen hvor filerne ligger i, således at jeg kan søge på alle fakturaer med kundenummer 456652. Scriptet skal herefter skrive hhv. bilagsnavn, bilagnummer og kundenummer.

Det er lidt svært at forklare... spørg endelig.

Er der en venlig sjæl som kan være mig behjælpelig her? :)
Avatar billede squashguy Nybegynder
19. april 2004 - 00:24 #1
prøv om denne virker efter hensigten

<%

Function FindFaktura(nummer)
    foldername = "sti til mappe"  ' brug evt. Server.MapPath("sti")

    Set regex = New RegExp
    regex.IgnoreCase = True
    regex.Pattern = "^(.*)-(.*)-(" & nummer & ").pdf$"

    set result = Nothing

    Set fso = Server.CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(foldername)

    For Each file in folder.Files

        If regex.Test(file) Then
            '
            ' faktura fundet
            '

            Set result = Server.CreateObject("Scripting.Dictionary")

            Set m = regex.Execute(file)(0)

            result.Add "bilagsnavn", Mid(m.SubMatches(0), Len(foldername)+2)
            result.Add "bilagnummer", m.SubMatches(1)
            result.Add "kundenummer", m.SubMatches(2)

            Exit For
        End If

    Next

    Set fso = Nothing
    Set FindFaktura = result
End Function


'find faktura
Set faktura = FindFaktura("456652")

If Not faktura Is Nothing Then
    Response.Write "Bilagsnavn: " & faktura("bilagsnavn") & "<br>"
    Response.Write "Bilagnummer: " & faktura("bilagnummer") & "<br>"
    Response.Write "Kundenummer: " & faktura("kundenummer") & "<br>"
Else
    Response.Write "Fakturaen blev ikke fundet"
End If

%>
Avatar billede skildpadden Nybegynder
20. april 2004 - 19:20 #2
Tak for dit forslag.

Scriptet finder en faktura som er tilknyttet kundenummeret, men hvis der er flere fakturaer eller kreditnotaer tilknyttet samme kundenummer, skal den gerne vise dem alle.

Kan du hjælpe her... :)
Avatar billede squashguy Nybegynder
26. april 2004 - 21:39 #3
Har du fundet en løsning? Ellers er her en lille hurtig omskrivning:

<%
Sub FindFaktura(nummer)
    foldername = "sti til mappe"  ' brug evt. Server.MapPath("sti")

    Set regex = New RegExp
    regex.IgnoreCase = True
    regex.Pattern = "^(.*)-(.*)-(" & nummer & ").pdf$"

    Set fso = Server.CreateObject("Scripting.FileSystemObject")
    Set folder = fso.GetFolder(foldername)

    For Each file in folder.Files

        If regex.Test(file) Then
            '
            ' faktura fundet
            '

            Set m = regex.Execute(file)(0)

        Response.Write "Bilagsnavn: " & Mid(m.SubMatches(0), Len(foldername)+2) & "<br>"
        Response.Write "Bilagnummer: " & m.SubMatches(1) & "<br>"
        Response.Write "Kundenummer: " & m.SubMatches(2) & "<br><hr>"

        End If

    Next

    Set fso = Nothing
End Sub


'find faktura
FindFaktura("456652")
%>
Avatar billede skildpadden Nybegynder
12. juni 2004 - 13:02 #4
Det fungerer super!

Smid lige et svar...
Avatar billede squashguy Nybegynder
12. juni 2004 - 14:01 #5
np
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