Forum: Mikrocontroller und Digitale Elektronik String und Bascom


von tom (Gast)


Lesenswert?

Hallo Leute

Ich möchte mehrere Messergebnisse in einen String eintragen und diesen 
auf ner SD Karte speichern, also im Packet sozusagen.
Den String erstelle ich mit folgender Befehlskette:

string = str(Wert1) + str(Wert2) + str(Wert3)

Die Werte sind single.
Nun habe ich aber folgendes Problem: Wenn die Daten abgelegt werden, 
dann vollkommen unformatiert. Mit dem Befehl FORMAT kann man ja die 
Nachkommastellen einstellen. Hier funktioniert das aber nicht. Außerdem 
werden die Zeichen direkt, ohne Leerzeichen oder ein anderes 
Trennzeichen, in den String eingesetzt. Wie kann man das Problem in den 
Griff bekommen?

MfG Tom

von Jochen S. (jochen_s)


Lesenswert?

Zum Thema Leerzeichen:

String= teil1+" "+teil2+" "+teil3

Formatierung:

Die Format Anweisung ist schon korrekt mach das aber bevor du den String 
zusammenbaust als Einzelstrings

teil1=Format(wert1,"000,00")

MFG JOCHEN

von Kai G. (runtimeterror)


Lesenswert?

Wenn du Trennzeichen willst, dann füg' sie einfach ein:
string = str(Wert1) + " " + str(Wert2) + " " + str(Wert3)

Mit der Zeichenkettenformatierung kann ich leider nicht helfen - zu den 
Zeiten, wo ich noch in BASIC programmiert habe gab's PRINT USING ...

von tom (Gast)


Lesenswert?

Alos Kai, vielen Dank erstmal für den Tip mit dem Trennzeichen. Kann ja 
manchmal so einfach sein.
Vielleich hat noch jemand ne Lösung oder ne Idee, wie die Formatierung 
gehen könnte?

von tom (Gast)


Lesenswert?

@Jochen:
Dein Tip hat mir auch sehr weitergeholfen. So wie du es gepostet hast, 
funktionierts nicht ganz, hab es aber selbst herausgefunden. Hier die 
eigene Lösung:

Wert1 = Fusing(Wert1 , "###.#")
Wert2 = Fusing(Wert2 , "###.#")

string = Wert1+ " " + Wert2 " " + usw.

Also besten Dank nochmals.

von Jochen S. (jochen_s)


Lesenswert?

> Wert1 = Fusing(Wert1 , "###.#")
> Wert2 = Fusing(Wert2 , "###.#")



Ich wusste doch da war was, dass Format was anderes ist....

typischer Fall von Abschreiben ohne denken.

Naja solange es geholfen hat.


Jochen

von Rolf I. (for_ro)


Lesenswert?

tom wrote:

> Wert1 = Fusing(Wert1 , "###.#")

Hallo Tom,
das wird so nicht gehen. Die Funktion Fusing erwartet als Input einen 
Single Typ, als Ausgabe liefert sie String. Lässt sich zwar 
erstaunlicherweise kompilieren, aber geht trotzdem nicht.
Kann also nicht die gleiche Variable sein.

Gruß

Rolf

von andreas (Gast)


Lesenswert?

Hallo Rolf,

keine Angst, es funktioniert. Aber Du hast Recht,funktioniert nur mit 
SINGLE. Die zu formatierenden Werte sind bei mir SINGLE. Aber trotzdem 
Danke für den Gedanken, vielleicht erinnere ich mich mal dran, wenns in 
nem anderen Programm mal nicht klappt.

von Rolf I. (for_ro)


Lesenswert?

andreas wrote:
> keine Angst, es funktioniert. Aber Du hast Recht,funktioniert nur mit
> SINGLE. Die zu formatierenden Werte sind bei mir SINGLE. Aber trotzdem
> Danke für den Gedanken, vielleicht erinnere ich mich mal dran, wenns in
> nem anderen Programm mal nicht klappt.

Hallo Andreas,
ich verstehe deine Antwort nicht.
Wo es mir drauf ankam ist, dass du nicht
Wert1 = Fusing(Wert1 , "###.#")
schreiben kannst, da du nicht beides mal Wert1 verwenden kannst, selbst 
wenn Wert1 ein Single-Typ ist.

Gruß

Rolf

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.