saund1982
Goto Top

Text umwandeln (A-1, B-2, C-3, .)

Ganz primitiv ausgedrückt: Ich möchte, dass der Inhalt einer Textdatei ausgelesen wird und für jeden Buchstaben ein vorher zugewiesener Wert in einer zweiten Textdatei gespeichert wird.

Beispiel:
Definition: A=1, B=2, C=3

Textdatei 1:
ABC

Ausgabe Textdatei 2:
123



Kann mir jemand weiterhelfen?

Content-ID: 9739

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

Ausgedruckt am: 26.11.2024 um 10:11 Uhr

bastla
bastla 22.02.2007 um 08:23:35 Uhr
Goto Top
Hallo muesteff!

  • Wird jedes Zeichen nur durch jeweils ein anderes Zeichen ersetzt, oder soll zB aus dem "K" ein Eintrag "11" werden (mit dem Problem, im Ergebnis entscheiden zu müssen, ob damit "K" oder "AA" gemeint ist, oder aber ein Trennzeichen zwischen die einzelnen Zeichen setzen zu müssen).
  • Sollen nur Buchstaben umgewandelt werden, oder auch Ziffern und ev Sonderzeichen?

Vielleicht stellst Du am besten einmal die gesamte Ersetzungstabelle dar.

Grüße
bastla
Saund1982
Saund1982 22.02.2007 um 10:11:52 Uhr
Goto Top
* Wird jedes Zeichen nur durch jeweils ein anderes Zeichen ersetzt, oder soll zB aus dem "K" ein Eintrag "11" werden (mit dem Problem, im Ergebnis entscheiden zu müssen, ob damit "K" oder "AA" gemeint ist, oder aber ein Trennzeichen zwischen die einzelnen Zeichen setzen zu müssen).
Das ist eine sehr gute Frage.
Aber vielleicht ist es am besten wenn ich die Tabelle zeige:

00=|
03=(Zeilenumbruch)
30=0
31=1
32=2
33=3
34=4
35=5
36=6
37=7
38=8
39=9
3A=(Leerzeichen)
48=.
41='
46=,
47=-
3B=!
4A=,
4F=?
6A=[
6C=]
50=A
51=B
52=C
[...]
67=X
68=Y
69=Z
70=a
71=b
72=c
[...]
87=x
88=y
89=z
B9=ß
BD=ä
CB=ö
CF=ü
0AA1=*Al Bhed Text*
1030=*Antwort1*
1031=*Antwort2*
1032=*Antwort3*
1033=*Antwort4*
1034=*Antwort5*
1330=Yuna
1331=Rikku
1332=Paine
1961=Kumpelchen
1947=Brüderchen
1962=Shinra
197D=*Al Bhed*
193B=*Wakka*
1946=*Rin*
2033=*Spira*
35303F=*Zahl*
bastla
bastla 22.02.2007 um 10:57:01 Uhr
Goto Top
Hallo muesteff!

Leider kann ich Dir nicht wirklich folgen - bedeutet der Eintrag "50=A" dass jedes "A" durch die 2 Ziffern "5" und "0" repräsentiert werden soll, oder ist damit das Zeichen mit dem (Hex-)Code 50 gemeint - und was ist unter den Einträgen ab "0AA1" zu verstehen?

Stell bitte auch noch ein Stück der Quell- und der Zieldatei rein.

Grüße
bastla
Saund1982
Saund1982 22.02.2007 um 11:23:22 Uhr
Goto Top
Ich möchte dass wenn ich z.B. ein A eingebe, ich ein 50 als Ausgabe (in eine Textdatei?) bekomme. Man kann das vielleicht mit einer Textverschlüsselung vergleichen.

Ebenso ist das mit den Einträgen ab 0AA1 gedacht: Bei der Eingabe von 1330 möchte ich als Ausgabe Yuna bekommen.


Quell- oder Zieldatei habe ich leider keine. Ich habe nur die Buchstaben und deren zugewiesenen Zahlen.
bastla
bastla 22.02.2007 um 12:44:36 Uhr
Goto Top
Hallo muesteff!

Ich möchte dass wenn ich z.B. ein A eingebe, ich ein 50 als Ausgabe (in eine Textdatei?) bekomme. Man kann das vielleicht mit einer Textverschlüsselung vergleichen.

Ebenso ist das mit den Einträgen ab 0AA1 gedacht: Bei der Eingabe von 1330 möchte ich als Ausgabe Yuna bekommen.

Hiermit sind auch die letzten Klarheiten beseitigt:
  • Willst Du etwas eingeben, oder sollen die Ausgangsdaten aus einer Textdatei gelesen werden?
  • Soll aus "1330" tatsächlich "Yuna" gemacht werden, oder soll in der Ausgabedatei anstatt "Yuna" der Wert "1330" stehen (so hätte ich die Tabelle interpretiert).
  • Woher weiß ich, ob "Yuna" als Einheit zu betrachten ist oder die Zeichenfolge "Y", "u", "n" und "a" darstellt und entsprechend in 4 Ausgabezahlen umzuwandeln ist (bzw dass nicht "1330" zu "31333330" werden soll?

Grüße
bastla
Saund1982
Saund1982 22.02.2007 um 13:06:07 Uhr
Goto Top
Hiermit sind auch die letzten Klarheiten beseitigt:
Hm, ich glaube du meintest etwas anderes =P

Am besten wäre es wohl, wenn die Daten aus einer Textdatei ausgelesen werden.

Natürlich soll für Yuna die Zahl 1330 geschrieben werden, nicht umgekehrt.

Dass die Wörter als Zeichenfolge und nicht einzeln gesehen werden, ist so ein Problem. Ich habe leider keine Idee, wie man das lösen könnte. Im Notfall könnte man aber auch darauf verzichten.

Wichtig wären die einzelnen Zeichen, nicht die Wörter. Ich denke, das ist auch einfacher zu realisieren.
Phlegma
Phlegma 22.02.2007, aktualisiert am 18.10.2012 um 18:31:41 Uhr
Goto Top
hi muesteff,

ich arbeite an auch an einer verschlüsselung... guckst du hier
nur deine scheint mir weit aus problematischer, du wirst nach jedem zeichen bzw 2 zahlen ein leerzeichen einführen müssen damit der text auch anständig zurückinterpretiert werden kann
und dann belieb noch weitere probleme die bastla auch schon angesprochen hat.

einfacher wäre eine verschlüsselung die ein zeichen gegen ein anderes austauscht, und dann kannst du auch ganze wörter in ein zeichen packen.

gruß, Ph
bastla
bastla 22.02.2007 um 14:13:18 Uhr
Goto Top
Hallo muesteff!

Versuch mal folgendes Script:
If WScript.Arguments.Count < 1 Then
	WScript.Echo "Keine Datei zu bearbeiten."  
	WScript.Quit(1)
End If
sQuelle = WScript.Arguments(0)
Set fso = CreateObject("Scripting.FileSystemObject")  
If Not fso.FileExists(sQuelle) Then
    WScript.Echo "Datei " & sQuelle & " nicht gefunden!"  
    WScript.Quit(1)
End If
sTyp = Mid(sQuelle, InstrRev(sQuelle, "."))  
sPfad = Left(sQuelle, Len(sQuelle) - Len(sTyp))
sZiel = sPfad & "-codiert" & sTyp  
Set oQuelle = fso.OpenTextFile(sQuelle, 1)
sEinText = oQuelle.ReadAll
oQuelle.Close
sAusText = ""  
For i = 1 To Len(sEinText)
	Ein = Mid(sEinText, i, 1)
	If Ein >= "A" And Ein <= "Z" Then  
		Aus = Hex(Asc(Ein) - 65 + 80)
	ElseIf Ein >= "a" And Ein <= "z" Then  
		Aus = Hex(Asc(Ein) - 97 + 112)
	Else
		Select Case Ein
		Case "|"  
			Aus = "00"  
		Case Chr(13)
			Aus = "03"  
		Case Chr(10)
			Aus = ""  
		Case " "  
			Aus = "3A"  
		Case "."  
			Aus = "48"  
		Case "'"  
			Aus = "41"  
		Case "," 'kommt unten nochmals  
			Aus = "46"  
		Case "-"  
			Aus = "47"  
		Case "!"  
			Aus = "3B"  
		Case "," 'bereits oben erfasst  
			Aus = "4A"  
		Case "?"  
			Aus = "4F"  
		Case "["  
			Aus = "6A"  
		Case "]"  
			Aus = "6C"  
		Case "ß"  
			Aus = "B9"  
		Case "ä"  
			Aus = "BD"  
		Case "ö"  
			Aus = "CB"  
		Case "ü"  
			Aus = "CF"  
		Case Else 'nicht angeführtes Zeichen  
			Aus = "__"  
		End Select
	End If
	sAusText = sAusText & Aus
Next
Set oZiel = fso.OpenTextFile(sZiel, 2, True) 'ev bereits existierende Zieldatei wird überschrieben  
oZiel.Write sAusText
oZiel.Close
WScript.Echo "Fertig."  
Speichere unter "Codieren.vbs" und ziehe die Eingabedatei auf das Script. Die Ausgabedatei wird unter dem Namen "Eingabedatei-codiert" mit dem selben Typ und im selben Ordner wie die Eingabedatei gespeichert.

Grüße
bastla
Saund1982
Saund1982 22.02.2007, aktualisiert am 18.10.2012 um 18:31:41 Uhr
Goto Top
hi muesteff,
ich arbeite an auch an einer verschlüsselung... guckst du hier

Es ist ja nicht wirklich eine Verschlüsselung. Ich habe es nur mal mit einer Verschlüsselung verglichen, es ist sich ja ähnlich. Ich werde mir den Thread jedoch trotzdem anschauen, Danke!


bastla, das Script funktioniert perfekt. Herzlichen Dank, damit kann ich bestimmt weiterarbeiten! Bei weiteren Fragen melde ich mich.