Autor Beitrag
NmasterFlash
Hält's aus hier
Beiträge: 4



BeitragVerfasst: So 02.03.08 20:29 
So, nach dieser ausführlichen Überschrift, komme ich zu meinem Problem.

Ich habe ein Programm geschrieben, das Buchstaben eines Wortes sein jeweiligen ASCI-Wert zuordnet.
Diesen Wert lasse ich durch einen Schieberegler um eine bestimmte Anzahl erhöhen.
So wird z.B. aus Haus -> Ibvt.
Damit war ich bis vor kurzem auch sehr zufrieden, nur mir ist jetzt ein Fehler aufgefallen.
Und hier beginnt mein eigentliches Problem.

Überschreitet ein zugeordneter Wert den in der ASCI Sprache höchsten Wert, so wird der ausgegebene Buchstabe als vertikaler Strich dargestellt und man kann ihn durch ein Fremdprogramm nicht mehr umwandeln.

An diesem Punkt ist mein Latein...(Delphisch? ^^) am Ende.

Wie schaffe ich es nun, das ein Fremdprogramm diese Striche wieder als Buchstaben erkennt.
Aber ich denke das wird kaum möglich sein, denn als einfacher Text wird er keine zusätzlichen Informationen übermitteln.
Doch vllt geht es das man ihm ein Sonderzeichen zuordnet, welches seinen Wert beschreibt, mit dem es die ASCI sprache überschreitet.
Nur wie?

Ich hoffe ihr könnt mir helfen. Vielleicht habt ihr ja noch eine bessere idee wie man die Buchstaben wieder erkenntlich machen kann.

So, dann einen schönen Abend noch
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: So 02.03.08 23:52 
Moin und :welcome: im Forum!

user profile iconNmasterFlash hat folgendes geschrieben:
Ich habe ein Programm geschrieben, das Buchstaben eines Wortes sein jeweiligen ASCI-Wert zuordnet.
Diesen Wert lasse ich durch einen Schieberegler um eine bestimmte Anzahl erhöhen.
So wird z.B. aus Haus -> Ibvt.
Zeig doch mal deinen Code dazu, dann können wir dir sicher besser helfen. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 03.03.08 10:30 
Einfach wieder von Vorne anfangen:

Wenn ASCII-Wert + Verschiebung > 256 dann...
Allesquarks
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 510

Win XP Prof
Delphi 7 E
BeitragVerfasst: Mo 03.03.08 12:09 
Ein beachtilicher Teil der Ascii Tabelle sind Steuerzeichen und diese werden alle per "Strich" ausgegeben und wahrscheinlich noch ein paar andere. Daher Ascii codiert eben nicht nur die üblichen Buchstaben, sondern noch ein paar andere :wink: . Ein normales Textprogramm ist also gar nicht das adäquate Programm um sowas anzuzeigen.
Und dann natürlich wie Luckie gesagt hat die Tabelle ist nur 256 groß danach gibt es je nach Code Artefakte Fehler und ähnliches.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 03.03.08 13:05 
Korrekter müsste es sogar heissen:
Wenn ASCII-Wert + Verschiebung > sinnvolle Zeichen, dann beginne von vorne + 32 (0-32 sind Steuerzeichen).

Also zum Beispiel:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
if ASCIIValue + Shift > OberGrenze then
  Value := ASCIIValue - OberGrenze + 32 + Shift
else
  Value := ASCIIValie + Shift;