Forum: Mikrocontroller und Digitale Elektronik Bascom, Mehrere Integers in String


von Lui (Gast)


Lesenswert?

Hallo
Ich habe in Bascom 5 Integer Werte. Diese sollen alle mit jeweils 3 
nachkommastellen hintereinander in einen String, damit ich alle Kommas 
und Punkte mit Punkten und Kommas ersetzten kann, um diese dann via 
"Print" an den PC zu senden.

Man kann mit
meinString = str(meinInteger1) + str(meinInteger2) + ...
Alle Integers Hintereinander in den String Laden.

Und mit
meinString = Fusing(meinInteger1, "#.###") den Integer passend 
Formatiert rein laden

Aber das hier geht nicht:
meinString = Fusing(meinInter1, "#.###") + Fusing(meinInteger2, "#.###") 
+ ...
Print meinString
Hier wird dann nämlich immer nur der letzte Wert ausgegeben!


Ich habe es auch das hier schon versucht:
meinInteger1 = Fusing(meinInteger1, "#.###")
meinInteger2 = Fusing(meinInteger2, "#.###")
...
meinString = Str(meinInteger1) + Str(meinInteger2) + ...
Print meinString


hat jemand eine Idee?

von Stefan P. (form)


Lesenswert?

Ja... Bascom kann in einer Zeile maximal 2 Werte addieren.

Du musst es so machen:
meinString = Str(meinInteger3) + Str(meinInteger4)
meinString = Str(meinInteger2) + meinString
meinString = Str(meinInteger1) + meinString

Total bescheiden das Ding. Wechsle lieber zu C.

Die Zeit die Du zum Erlernen brauchst ist kürzer als immer wieder die 
blödesten Bascom Probleme zu lösen...

von lach (Gast)


Lesenswert?

Integer mit Nachkommastellen??

von Lui (Gast)


Lesenswert?

Oh, ich habe keine "Integers", sondern "Singles" benutzt, wobei ein 
Integer in bascom auch kommastellen hat.

und wenn ich es auf diese Art und Weise mache:

 MyString = Fusing(MySingle1 , "#.###") + Fusing(MySingle2 , "#.###")
 Print myString

dann wird nur Word2 gesendet.


@Stefan P. Ich habe schon überlegt, ob ich auf C Umsteige, aber ich 
werde erst dieses Projekt fertigstellen und dann mal schaun ;-)

Danke für die Hilfe!!

von dsgfsdfgsdfg (Gast)


Lesenswert?

integers sind auch in bascom ohne
nachkommastellen ... definitiv

von Lui (Gast)


Lesenswert?

Aso, ja, du hast recht, da war ich zuschnell. Dort steht
"Integer (two bytes). Integers are stored as signed sixteen-bit binary 
numbers ranging in value from -32,768 to +32,767"
Aber das ist ja kein "Deutsches Komma"! :-D

Dies ändert aber nichts an meinem Problem:
Wie bekomme ich 5 Singles auf 3 Kommastellen gekürtzt in einen String?

Vielen Dank!

von Sinusgeek (Gast)


Lesenswert?

> Dies ändert aber nichts an meinem Problem:
> Wie bekomme ich 5 Singles auf 3 Kommastellen gekürtzt in einen String?

Festkomma-Arithmetik...

Schau mal ins Wiki dieser Seite...

von lach (Gast)


Lesenswert?

Stefan P. hat Dir doch den Weg gezeigt (nicht mehr als 2 Funktionen oder 
operationen in einer Programmzeile). Wenn Du das nicht willst, machst Du 
die Print-Befehle eben einzeln und endest mit Semikolon, dann machte er 
keine neue Zeile

Print myString1;
Print mystring2;
...
Print mystring5

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.