mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik String und Bascom


Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jochen S. (jochen_s)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Kai G. (runtimeterror)
Datum:

Bewertung
0 lesenswert
nicht 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 ...

Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jochen S. (jochen_s)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rolf Im forum (for_ro)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rolf Im forum (for_ro)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.