Quantcast
Viewing all articles
Browse latest Browse all 2314

variable Stringlänge auslesen

Hallo,

ich habe folgendes Problem. Ich möchte aus einer Datei aus der ersten Zeile ab einer bestimmten Stelle einen String auslesen. 

Das funktioniert bisher schon, nun habe ich aber das Problem, dass der String in der länge variiert. Mein Code funktioniert leider nur bei einer konstanten Stringlänge.

Vielleicht könnte mir wer auf die Sprünge helfen.

so sieht z.B. eine Zeile aus:

MSH|^~\&|ABCDEFGHIJKMN|ABCDEFGHIJK|123|0001|20230331142323||MDM^T01^MDM_T01|20230331142323301|P|2.5|||AL|NE

Es kann aber sein, dass die Stelle (Zeitstempel fett gedruckt) eine Stelle weniger hat:

MSH|^~\&|ABCDEFGHIJKMN|ABCDEFGHIJK|123|0001|20230331142323||MDM^T01^MDM_T01|2023033114232330|P|2.5|||AL|NE

$quellverzeichnis = "D:\Testpfad\IN"
$zielverzeichnis = "D:\Testpfad\IN\MC"
$dateityp1 = "*.hl7"
$dateityp2 = "*.pdf"

while ($true)
{
	# Prüfen ob im Eingangsordner die HL7 und die PDF vorhanden ist
	$hl7_file = Test-Path -Path D:\Testpfad\IN\* -PathType Leaf -Exclude *.pdf
	$pdf_file = Test-Path -Path D:\Testpfad\IN\* -PathType Leaf -Exclude *.hl7
	
	if ($hl7_file -and $pdf_file)
	{
		
		# Erste Zeile aus der Datei lesen und ab Position 77 die 18 Stellen anzeigen
		$wert = (Get-Content $quellverzeichnis\$dateityp1 -TotalCount 1).Substring(76, 17)
		
		# erstelle den PDF Namen mit dem Inhalt des Wertes
		Get-ChildItem -Path $quellverzeichnis\$dateityp2 | Rename-Item -NewName { $wert + ".pdf" }
		# koppiere die HL7 + PDF in das Zielverzeichnis
		Move-Item -Path "$quellverzeichnis\$dateityp1" -Destination $zielverzeichnis
		Move-Item -Path "$quellverzeichnis\$dateityp2" -Destination $zielverzeichnis
		Write-Host "Datei wurde verarbeitet"
	}
	else
	{
		#Write-Host "Warte auf beide Dateien..."
		Start-Sleep -Seconds 2
	}
}



Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>