crashzero
Goto Top

Mit Powershell externe Datei auslesen

Hallo, ich mal wieder. (Komme irgendwie nicht mit der Textextraktion via Powershell klar).

Ich habe folgende externe Datei mit 5 Zeilen : (pat.dat - Ist ein Auszug aus einem Dicom-Dump) :
(0010,0010) PN [TEST^]                                  #   6, 1 PatientName
(0008,0020) DA [20050629]                               #   8, 1 StudyDate
(0032,1060) LO [KOPF routine]                           #  12, 1 RequestedProcedureDescription
(0029,1018) CS [MR]                                     #   2, 1 CSASeriesHeaderType
(0018,0015) CS [HEAD]                                   #   4, 1 BodyPartExamined

Ich kriege es nicht hin (Versucht via findstr /B zu filtern).

Ich muß als Ergebnis folgendes erhalten :

TEST_29_06_2005_Kopf_routine_MR_HEAD

Der Name steht immer in der Zeile betitelt mit (0010,0010) in den eckigen Klammern.
Das Datum steht immer in der Zeile betitelt mit (0008,0020) in den eckigen Klammern
Die Routine steht immer in der Zeile betitelt mit (0032,1060) in den eckigen Klammern
Die Aufnahmeart steht immer in der Zeile betitelt mit (0029,1018) in den eckigen Klammern
Der Body steht immer in der Zeile betitelt mit (0018,0015) in den eckigen Klammern.

Es kann also explizit nach den (zahl,zahl) feldern gesucht werden um den String aus den eckigen Klammern auszulesen.
Wobei ich die Sonderzeichen ^ nicht gebrauchen kann (^ löschen und Leerzeichen durch _ ersetzen).

Die Strings Zeilen brauche ich jeweils an eine Variable gebunden da ich mit den Einzelstrings später weiterarbeiten muß.
Also z.B.
 
$name=enthält "TEST"  
$datum=enthält "29_06_2005"  
$routine=enthält "KOPF_routine"  
$aufnahme=enthält "MR"  
$body=enthält "HEAD"  

Wobei die Feldlängen in den eckigen Klammern immer unterschiedlich sein werden, wie z.B. im Feld $name kann durchaus auch "Nachname, Vorname" stehen.

Krieg das einfach nicht hin.

Content-ID: 1750596783

Url: https://administrator.de/forum/mit-powershell-externe-datei-auslesen-1750596783.html

Ausgedruckt am: 22.12.2024 um 08:12 Uhr

colinardo
Lösung colinardo 22.01.2022 aktualisiert um 18:39:49 Uhr
Goto Top
Lösung siehe PN.
Hatte dir dort auf deine persönliche Nachricht geantwortet.

Können wir dann hier wieder schließen?