wie muss ich dann vorgehen, falls ich auf das trennzeichen treffe??
Man könnte hier
a) sich etwas einfallen lassen, wie man die "originalen" #0 (aka chr(0) ) maskiert, oder
b) man tut einfach so, als wäre diese 0 (irgend)ein sich wiederholendes Zeichen, welches du ja über eine #0-eingeführte Steuersequenz maskierst.
> also füge statt soeiner gefundenen #0 einfach deine Sequenz ein, welche besagt "1-mal die #0"
(falls mehrere nacheinanderfolgene Nullen vorkommen, würde es sogar wieder dem Ursprünglichen Gedanken entsprechen)
PS: das
result:=result+chr(0)+inttohex(c,2)+text[i]//+chr(32);
könnte man sogar noch weiter komprimieren, indem du es nicht als Text, sondern auch Binär behandelst.
wiederholende Char (X) als
#0 + Chr(Count) + X
und die einzelne #0 wäre dann
#0#1#0
aka
#0 + Chr(Count) + Chr(0) // count=1
ebenso mit maximal 255 Fogezeichen, wobei man sogar 256 nutzen könnte, da es die Anzahl 0 nicht gibt (0=1-mal, 1=2-mal ... 255=256-mal)
und es würden maximal immer nur 3 Byte sein, anstatt deinen aktuell mindestens 4 Byte.