Führende Null(en) einfügen

tbegle
Benutzer
Avatar
Gender: n/a
Age: 64
Posts: 150
Registered: 01 / 2018
Subject:

Führende Null(en) einfügen

 · 
Posted: 26.05.2023 - 17:57  ·  #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
Gender:
Location: Donauwörth
Age: 71
Posts: 256
Registered: 11 / 2009
Subject:

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

 · 
Posted: 26.05.2023 - 19:24  ·  #2
Hallo tbegle,
meinst Du damit vielleicht write(serout,bytetohex(6));
pvs-deck
PowerUser
Avatar
Gender:
Age: 53
Homepage: pvs-deck.de
Posts: 1341
Registered: 02 / 2009
Subject:

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

 · 
Posted: 27.05.2023 - 00:51  ·  #3
Quote by 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
Gender: n/a
Age: 64
Posts: 150
Registered: 01 / 2018
Subject:

führende Null(en)

 · 
Posted: 27.05.2023 - 11:48  ·  #4
..... recht herzlichen Dank für eure Hilfe! - sind unglaublich interessante Vorschläge dabei!
Gruss
Toni
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 14   81   95 · Page-Gen-Time: 0.026344s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI