danielbodensee
Goto Top

Begriff "buchstabieren"

Hallo zusammen,

ich möchte ein mehrstelligen Begriff nach einer Buchstabiertafel übersetzen, aus O wird dann Otto, A wird Anton etc, so soll der Begriff besser lesbar sein.

Damit die Übersetzung entsprechend korrekt dargestellt werden, denke ich an ein XML-File encoded mit UTF-8. Den aufzuteilenden Begriff müsste ich in einer Foreach Schleife durchgehen und die Ausgabe mit den Begriffen ersetzen, aus Auto soll dann "Anton-udo-teodor-otto" ausgegeben werden.

Wäre das der richtige Weg oder wie würdet Ihr das machen? Gibt es für sowas schon ein Beispiel-Script?

Dachte schon an eine CSV-Datei, denke aber eine XML-Datei dürfte besser sein?


Viele Grüsse,
Daniel

Content-Key: 587439

Url: https://administrator.de/contentid/587439

Printed on: April 18, 2024 at 07:04 o'clock

Member: aqui
aqui Jul 14, 2020 updated at 16:23:16 (UTC)
Goto Top
"Udo" ist aber nach DIN 5009 falsch für "U" und Theodor falsch geschrieben !!
https://de.wikipedia.org/wiki/Buchstabiertafel#Vergleichstabelle
Member: mayho33
mayho33 Jul 14, 2020 updated at 16:28:25 (UTC)
Goto Top
XML wäre schon das richtige Format.

Hat auch den Vorteil, dass du es programmatikalisch direkt in z. B. ein Dictionary deserialisieren kannst.

Dann ginge Suche Code-intern auch recht flott.
Member: erikro
erikro Jul 14, 2020 at 16:45:31 (UTC)
Goto Top
Moin,

Zitat von @DanielBodensee:
ich möchte ein mehrstelligen Begriff nach einer Buchstabiertafel übersetzen, aus O wird dann Otto, A wird Anton etc, so soll der Begriff besser lesbar sein.

OK.

Damit die Übersetzung entsprechend korrekt dargestellt werden, denke ich an ein XML-File encoded mit UTF-8.

Wie soll er denn dargestellt werden? Tabellarisch? Oder untereinander? Oder soll nur die Übertragung eines eingegebenen Begriffs ausgegeben werden? Ist es nur ein Begriff oder ganz viele? Warum denkst Du bei der Aufgabe, dass XML das richtige Format sei?

Den aufzuteilenden Begriff müsste ich in einer Foreach Schleife durchgehen und die Ausgabe mit den Begriffen ersetzen, aus Auto soll dann "Anton-udo-teodor-otto" ausgegeben werden.

In welcher Sprache soll das denn realisiert werden? Assembler oder Fortran? face-wink

Dachte schon an eine CSV-Datei, denke aber eine XML-Datei dürfte besser sein?

Die Frage ist nur zu beantworten, wenn man die Rahmenbedingungen kennt: Was soll worauf womit für wen ausgegeben werden.

Liebe Grüße

Erik
Mitglied: 144705
144705 Jul 14, 2020 updated at 18:15:31 (UTC)
Goto Top
Member: TK1987
TK1987 Jul 14, 2020 updated at 18:48:56 (UTC)
Goto Top
Moin Daniel,


Zitat von @DanielBodensee:
Damit die Übersetzung entsprechend korrekt dargestellt werden, denke ich an ein XML-File encoded mit UTF-8.
...
Dachte schon an eine CSV-Datei, denke aber eine XML-Datei dürfte besser sein?
XML, Json, Csv... wäre alles denkbar, aber warum importieren?! Ich würde die Buchstabiertafel direkt als Hashtable ins Skript integrieren.
... aus Auto soll dann "Anton-udo-teodor-otto" ausgegeben werden.
Gibt es für sowas schon ein Beispiel-Script?
Am Code wird es wohl kaum scheitern. Denkbar wäre z. B. sowas:
Function Spell-String {
	[Alias('ss')]  
	Param([Parameter(Mandatory=$true, ValueFromPipeline=$true)][Alias('i')][string]$Inputstring)  
	
	$alph=@{
		A = "Anton"  
		Ä = "Ärger"  
		B = "Berta"  
		C = "Cäsar"  
		D = "Dora"  
		E = "Emil"  
		F = "Friedrich"  
		G = "Gustav"  
		H = "Heinrich"  
		I = "Ida"  
		J = "Julius"  
		K = "Kaufmann"  
		L = "Ludwig"  
		M = "Martha"  
		N = "Nordpol"  
		O = "Otto"  
		Ö = "Ökonom"  
		P = "Paula"  
		Q = "Quelle"  
		R = "Richard"  
		S = "Samuel"  
		ẞ = "Eszett"  
		T = "Theodor"  
		U = "Ulrich"  
		Ü = "Übermut"  
		V = "Viktor"  
		W = "Wilhelm"  
		X = "Xanthippe"  
		Y = "Ypsilon"  
		Z = "Zacharias"  
		}
	
	Return (($Inputstring.Split(' ') | % { ($_[0..($_.Length-1)] |% {$alph."$_"}) -Join '-' }) -Join ' ')  
	} # End Function Spell-String

Das Ganze dann in Aktion:
PS C:\> "Hallo Welt" | ss  
Heinrich-Anton-Ludwig-Ludwig-Otto Wilhelm-Emil-Ludwig-Theodor

Gruß Thomas
Member: Visucius
Visucius Jul 15, 2020 updated at 07:37:10 (UTC)
Goto Top
Die Generationen vor uns konnten das ja noch ohne Computer ... face-wink