Rem Version 4.1 - 20. juni 2014 Const inputFilNavn = "Finalfil.txt" 'kan ajf. Const outputFilNavn = "Finalfil_red.csv" '-"-
Dim sti As String, linje As String, linjeRed As String, f As Integer Dim tabel As Variant, feltNr As Integer, felt As Variant, ix As Integer, tabelRed(71) As Variant, flag71 As Boolean Public Sub korrigerCSV() On Error GoTo fejl
Rem hent aktuelle sti for systemFil - inputfil forventes også her sti = ActiveWorkbook.Path
Open sti & "\" & inputFilNavn For Input As #1 Open sti & "\" & outputFilNavn For Output As #2 Rem indlæsInput Do While Not EOF(1) Line Input #1, linje tabel = Split(linje, ",""")
Rem TEST AF FELTER (første felt = 0 i tabel) Rem - erstat 000 med 0890 feltNr = 2 felt = tabel(feltNr - 1) If Left(felt, 3) = "000" Then tabel(feltNr - 1) = "0890" & Mid(felt, 4) End If
Rem - beløb med 2 dec feltNr = 4 felt = tabel(feltNr - 1) felt = Format(felt, "0,00") tabel(feltNr - 1) = Replace(felt, ".", ",")
Rem - dato feltNr = 5 felt = tabel(feltNr - 1) tabel(feltNr - 1) = Format(felt, "0#######")
Rem - test = 71 feltNr = 23 If tabel(feltNr - 1) = "71""" Then flag71 = True
tabel(22 - 1) = """" tabel(20 - 1) = """"
For ix = 25 - 1 To UBound(tabel) tabel(ix) = """" Next ix Else flag71 = False
Rem - test = 04 If tabel(feltNr - 1) = "04""" Then tabel(24 - 1) = tabel(22 - 1) tabel(22 - 1) = """" End If End If
Rem - test længde = 15 ciff - hvis 71 i felt 23 feltNr = 24 felt = tabel(feltNr - 1) If flag71 = True Then While Len(felt) < 15 felt = "0" & felt Wend tabel(feltNr - 1) = felt End If
Rem - max 72 felter antalfelter = UBound(tabel) + 1
If antalfelter > 72 Then For f = 0 To 71 tabelRed(f) = tabel(f) Next f
linjeRed = Join(tabelRed, ",""") Else linjeRed = Join(tabel, ",""") End If
Print #2, linjeRed Loop Close #1 Close #2 Exit Sub
fejl: Close #1 Close #2 MsgBox "Fejl - prøv igen" End Sub
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.