Führende Null(en) einfügen

tbegle
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 65
Beiträge: 150
Dabei seit: 01 / 2018
Betreff:

Führende Null(en) einfügen

 · 
Gepostet: 26.05.2023 - 17:57 Uhr  ·  #1
Hallo Power User,

hat jemand eine möglichst einfache Methode wie man eine führende '06' einfügen kann?
möchte lenght möglichst vermeiden.

write(serout,bytetostr(06));
golf
Benutzer
Avatar
Geschlecht:
Herkunft: Donauwörth
Alter: 72
Beiträge: 266
Dabei seit: 11 / 2009
Betreff:

Re: Führende Null(en) einfügen

 · 
Gepostet: 26.05.2023 - 19:24 Uhr  ·  #2
Hallo tbegle,
meinst Du damit vielleicht write(serout,bytetohex(6));
pvs-deck
PowerUser
Avatar
Geschlecht:
Alter: 54
Beiträge: 1343
Dabei seit: 02 / 2009
Betreff:

Re: Führende Null(en) einfügen

 · 
Gepostet: 27.05.2023 - 00:51 Uhr  ·  #3
Zitat geschrieben von tbegle

Hallo Power User,

hat jemand eine möglichst einfache Methode wie man eine führende '06' einfügen kann?
möchte lenght möglichst vermeiden.

write(serout,bytetostr(06));


Hallo tbegle,

meinst Du jetzt, dass Du immer eine führende '0' haben möchtest?
Oder meinst Du, dass es immer 2 Stellen sein sollen und damit Zahlen die Kleiner als 10 sind eben mit einer 0 angeführt werden sollen?

Hast Du Dir mal das CompilerHandbuch 4.13.30.1 angeschaut?

Code
4.13.30.1 BYTETOSTR Konvertiert Numerischen 8bit Wert in einen String. Der Parameter kann eine ordinale numerische Konstante (Byte, Int8, Enum) oder eine Variable dieses Typs sein.

E-LAB Computers
System Library - Diverse System Funktionen - 133
Function ByteToStr (b : byte[Int8, Enum]) : string;
const st = '1234' + 'R' + #7 + ^L; var st1 : string[9]; bb : byte;
write (LCDout, ByteToStr (100)); 
write (SERout, ByteToStr (100:6)); {-> ' 100'} 
bb:= 10;
st1:= ByteToStr (bb); { -> '10'} 
st1:= ByteToStr (bb:6); { -> ' 10'} 
st1:= ByteToStr (bb:6:1); { -> ' 1.0'} 
st1:= ByteToStr (bb:6:1:'_'); { -> '___1.0'} 
st1:= ByteToStr (bb:6:'_'); { -> '____10'}


Wenn es 2 Stellig mit führender Null sein soll, geht das nicht mit "bytetohex(x)", da hier eben Hexadezimal dargestellt wird. Also bei 10 eben 0A.

Der Compiler gibt Dir hier perfekte Formatierungsfunktionen, teste das folgende mal:
Code
bytetostr( <VAR/ByteWert>:<Ausgabelänge>:<Füllzeichen> );

bytetostr( 6:2:'0' ); { -> '06'}


Ich habe es so jetzt nicht mit Write() getestet, aber ich benutze das schon sehr lange um die Wertausgaben auf meinen Displays zu formatieren.
Achte aber auf Deinen Frame, die Konvertierungen brauchen etwas Framespeicher!

Gruß
Thorsten
tbegle
Benutzer
Avatar
Geschlecht: keine Angabe
Alter: 65
Beiträge: 150
Dabei seit: 01 / 2018
Betreff:

führende Null(en)

 · 
Gepostet: 27.05.2023 - 11:48 Uhr  ·  #4
..... recht herzlichen Dank für eure Hilfe! - sind unglaublich interessante Vorschläge dabei!
Gruss
Toni
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   81   95 · Page-Gen-Time: 0.032486s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI