EAN-Nummern aus INVRPT auslesen und in einer Excel-Datei speichern
Hallo zusammen,
ich habe eine gemischte EDI-Datei, in welcher Sales-Reports (SLSRPT) und Inventur-Reports (INVRPT) aufgeführt sind.
Ich muss aus dieser Datei (im ersten Schritt) alle EANs (eigentlich eine Nummer, welche immer mit 4 beginnt und 13 Stellen hat) auslesen und in einer separaten Datei (z.B. Excel) abspeichern, aber eigentlich aus den Textblöcken, welche zu INVRPT gehören.
Ich kann natürlich alle Text-Blöcke manuell entfernen, welche zu SLSRPT gehören.
Gibt es irgendeine Anwendung oder Script, welche(s) mir bei der Lösung des Problems helfen kann?
Als Programmierer bin leider ein absoluter Laie, das ich mir ein Script schreiben kann.
Vielen Dank!
ich habe eine gemischte EDI-Datei, in welcher Sales-Reports (SLSRPT) und Inventur-Reports (INVRPT) aufgeführt sind.
Ich muss aus dieser Datei (im ersten Schritt) alle EANs (eigentlich eine Nummer, welche immer mit 4 beginnt und 13 Stellen hat) auslesen und in einer separaten Datei (z.B. Excel) abspeichern, aber eigentlich aus den Textblöcken, welche zu INVRPT gehören.
Ich kann natürlich alle Text-Blöcke manuell entfernen, welche zu SLSRPT gehören.
Gibt es irgendeine Anwendung oder Script, welche(s) mir bei der Lösung des Problems helfen kann?
Als Programmierer bin leider ein absoluter Laie, das ich mir ein Script schreiben kann.
Vielen Dank!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 201739
Url: https://administrator.de/forum/ean-nummern-aus-invrpt-auslesen-und-in-einer-excel-datei-speichern-201739.html
Ausgedruckt am: 18.04.2025 um 08:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo ozean.
Hmm, ich bin als EDI-Dateien-Interpretierer absoluter Laie.
Also musst du jemanden finden der sich sowohl mit Programmieren auskennt, als auch detailliert weiß wie deine EDI Dateien aufgebaut sind. Andere Möglichkeit wäre ja vielleicht, wenn du so eine Datei mal beispielhaft hier ... naja egal.
Grüße
rubberman
Als Programmierer bin leider ein absoluter Laie ...
Hmm, ich bin als EDI-Dateien-Interpretierer absoluter Laie.
Also musst du jemanden finden der sich sowohl mit Programmieren auskennt, als auch detailliert weiß wie deine EDI Dateien aufgebaut sind. Andere Möglichkeit wäre ja vielleicht, wenn du so eine Datei mal beispielhaft hier ... naja egal.
Grüße
rubberman
Hallo ozean.
So etwas realisiert man üblicherweise mit Regulären Ausdrücken.
Angenommen deine Ausgangsdatei heißt "test.txt", geschrieben werden soll in "neu.txt" - Folgendes VBScript sollte es tun:
*.vbs
Grüße
rubberman
So etwas realisiert man üblicherweise mit Regulären Ausdrücken.
Angenommen deine Ausgangsdatei heißt "test.txt", geschrieben werden soll in "neu.txt" - Folgendes VBScript sollte es tun:
*.vbs
Option Explicit
Const sInFile = "test.txt"
Const sOutFile = "neu.txt"
Dim oRegex, oFSO, oFile, colMatches, oMatch, sContent
Set oRegex = New RegExp
oRegex.Global = True
oRegex.Pattern = "\+4\d{12}:"
Set oFSO = CreateObject("Scripting.FileSystemObject")
sContent = oFSO.OpenTextFile(sInFile).ReadAll
Set oFile = oFSO.OpenTextFile(sOutFile, 2, True)
If oRegex.Test(sContent) Then
Set colMatches = oRegex.Execute(sContent)
For Each oMatch In colMatches
oFile.WriteLine Mid(oMatch.Value, 2, 13)
Next
End If
oFile.Close
Set oFile = Nothing
Set oMatch = Nothing
Set colMatches = Nothing
Set oFSO = Nothing
Set oRegex = Nothing
Grüße
rubberman
Hallo ozean.
Eine temporäre Datei ist nicht nötig. Das geht genauso on the fly.
Falls nötig, darf sInFile = sOutFile sein 
Grüße
rubberman
Eine temporäre Datei ist nicht nötig. Das geht genauso on the fly.
Option Explicit
Const sInFile = "test.txt"
Const sOutFile = "EAN.txt"
Dim oRegex, oFSO, oDict, oFile, colMatches, oMatch, sContent, sEan
Set oRegex = New RegExp
oRegex.Global = True
oRegex.Pattern = "\+4\d{12}:"
Set oFSO = CreateObject("Scripting.FileSystemObject")
sContent = oFSO.OpenTextFile(sInFile).ReadAll
Set oDict = CreateObject("Scripting.Dictionary")
If oRegex.Test(sContent) Then
Set colMatches = oRegex.Execute(sContent)
For Each oMatch In colMatches
sEan = Mid(oMatch.Value, 2, 13)
If Not oDict.Exists(sEan) Then oDict.Add sEan, vbNullString
Next
End If
Set oFile = oFSO.OpenTextFile(sOutFile, 2, True)
oFile.Write Join(oDict.Keys, vbCrLf)
oFile.Close
Set oFile = Nothing
Set oDict = Nothing
Set oMatch = Nothing
Set colMatches = Nothing
Set oFSO = Nothing
Set oRegex = Nothing
Grüße
rubberman