Hello,
»0x0« bedeutet etwas anderes als »"\x0"«.
»0x0« bedeutet int(0). Darüber lassen sich also Integer-Zahlen in ihrer hexadezimalen Schreibweise notieren.
Wenn dieser Integer wie hier in einen String umgewandelt wird (weil der dritte Parameter von str_pad ein String sein muss), kommt der String »0« heraus. Das bedeutet ein Oktett mit dem Wert 0x30 (in ASCII die arabische Ziffer Null). Dieser String kann auch direkt mit »"\x30"« oder einfach »"0"« oder »'0'« usw. notiert werden.»chr(0)« liefert einen String mit dem Oktett 0x0 (in ASCII das Steuerzeichen NUL). Das ist äquivalent zur Notation »"\x0"«, nicht aber äquivalent zur Notation »0x0« (auch nicht nach der
Typkonvertierung).
Danke. Ja das wurde mir dann auch klar. Ich bin es eben noch aus Pascal gewohnt, da einfach #13#10 hinzuschreiben, und der Compiler ersetzt das dann gegen die Oktette 0D 0A.
War schon etwas spät gestern gestern.
Herauskommen sollte das Zeichen NUL, da ich für den Bau von Records in Random-Access-Dateien die Zeichenlänge auffüllen muss. Es klappt inzwischen auch vorzüglich, vorwärts wie rückwärts.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau