So hab das Problem mit einem Kollegen aus dem Servie-Center von Phoenix lösen können. Aus welchen Grund auch immer wird irgendwo soweit der String mit Zeichen gefüllt bis er eine Länge von 80 Stellen hat. Aber diese Zeichen sind keine Leerzeichen, wir wissen noch nicht um welche Zeichen es sich handelt. Ich habs so gelöst. Zuerst wandel ich den String mit STRING_TO_BUF in einem Buffer um, so das ich jedes Zeichen als Byte habe, also als ASCII-Code in Hex. Dann stelle ich fest wo der String eigentlich aufhört, nämlich wenn er mir 16#00 anzeigt, das ist nämlich das Zeichen, und von dem folgen noch ganz viele bis zu 80. Stelle. Den Zählwert z.B. 5 gebe ich an BUF_TO_STRING als BUF_CNT und den erstellten Buffer an BUFFER weiter und bekomme dann einen String mit 5 Zeichen. Tada!
Und hier die Verwendung des 16#00 (Null-Zeichen) laut Wikipedia:
"Das Nullzeichen kann auf Speichermedien als Füllzeichen verwendet werden, beispielsweise um unbelegten Speicherplatz zu füllen. In einigen Übertragungsprotokollen wird es als zeitliches Füllsignal verwendet, das nach Belieben in eine Nachricht eingefügt werden kann und vom Empfänger verworfen wird. Damit werden bei synchroner Datenübertragung Verzögerungen auf der Senderseite überbrückt, ohne die eigentlichen Nutzdaten zu beeinflussen.
In einigen Programmiersprachen, beispielsweise C, wird das Nullzeichen als Markierung für das Ende einer Zeichenkette verwendet. Da es in normalen Texteditoren nicht direkt eingebbar ist, wird es im Quelltext durch die Escape-Sequenz „\0“ (umgekehrter Schrägstrich gefolgt von Ziffer 0) oder hexadezimal als 0x00 dargestellt."
Jetzt klingts logisch und leuchtet ein.