Hallo,
ich habe eine csv Datei in der Datensätze und deren Felder sind mit ";" getrennt. In einem dieser Felder steht immer ein PDF Name.
Nun muss ich 2 Dinge ermitteln.
1. Gibt es alle im CSV stehenden PDF Dateien auch im Verzeichnis
2. Stehen im Verzeichnis PDF Dateien zu denen es keinen Eintrag in der csv Datei gibt.
Eine Lösung habe ich dafür bereits programmiert. Leider ist meine Lösung sehr Laufzeit intensiv. Sie benötigt bei mir mit ca. 1400 csv Zeilen um die 13 Sekunden. Und das ist mir viel zu lange. Der Zeitfresser entsteht im zweiten Teil wo ich schaue welche PDF Datei zu viel vorhanden sind, der alleine braucht 10 Sek.
Hat jemand eine Idee wie es besser programmiert werden kann? Vielleicht besser mit 2 List(of T), aber da kriege ich irgendwie keine funktionierende Idee hin.
Verschoben. ~Trade
ich habe eine csv Datei in der Datensätze und deren Felder sind mit ";" getrennt. In einem dieser Felder steht immer ein PDF Name.
Nun muss ich 2 Dinge ermitteln.
1. Gibt es alle im CSV stehenden PDF Dateien auch im Verzeichnis
2. Stehen im Verzeichnis PDF Dateien zu denen es keinen Eintrag in der csv Datei gibt.
Eine Lösung habe ich dafür bereits programmiert. Leider ist meine Lösung sehr Laufzeit intensiv. Sie benötigt bei mir mit ca. 1400 csv Zeilen um die 13 Sekunden. Und das ist mir viel zu lange. Der Zeitfresser entsteht im zweiten Teil wo ich schaue welche PDF Datei zu viel vorhanden sind, der alleine braucht 10 Sek.
Hat jemand eine Idee wie es besser programmiert werden kann? Vielleicht besser mit 2 List(of T), aber da kriege ich irgendwie keine funktionierende Idee hin.
Quellcode
- Dim zeile As String
- Dim inhalte() As String
- Dim KompletteDatei As String
- Dim AlleZeilen() As String
- KompletteDatei = sr.ReadToEnd
- AlleZeilen = KompletteDatei.Split(";")
- zeile = AlleZeilen(0).ToString
- For Each zeile In AlleZeilen
- inhalte = zeile.Split(feldtrennzeichen)
- If My.Settings.Mandanten.IndexOf(inhalte(0)) = -1 Then
- ... hier kommt nur ne simple Abfrage
- end if
- Dim FileInfoX As New IO.FileInfo(dmsImportO.OrdnerPfad & "\" & inhalte(8))
- If Not FileInfoX.Exists Then
- If FehlendePDFs > "" Then
- FehlendePDFs = FehlendePDFs & ";" & inhalte(8)
- Else
- FehlendePDFs = inhalte(8)
- End If
- end if
- Next
- REM schauen welche PDF Dateien zuviel sind:
- Dim PDFsOhneSatz As String = ""
- Dim pdf As System.IO.FileInfo
- For Each Pfad As String In Directory.GetFiles(dmsImportO.OrdnerPfad, "*.pdf")
- pdf = My.Computer.FileSystem.GetFileInfo(Pfad)
- If KompletteDatei.IndexOf(pdf.Name.ToString) = -1 Then
- If PDFsOhneSatz > "" Then
- PDFsOhneSatz = PDFsOhneSatz & ";" & pdf.Name.ToString
- Else
- PDFsOhneSatz = pdf.Name.ToString
- End If
- End If
- Next
Verschoben. ~Trade
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trade“ ()