Datensätze strukturiert separieren und ausgeben



  • Hallo Leute,

    ich benutze den Borland C++ Builder 5.0 und beschäftige mich noch nicht so lange mit C++, und habe daher auch einiges an defizit.
    Nun zu meinem Probelem. Ich lese mit meinem Programm über die RS-232 daten von einem Microcontroller (Basic-Tiger) ein und kann diese Daten auch in eine Datei speichern. Die Werte die da rauskommen sind Geschwindigkeiten von 0-120 und einiges mehr.

    Diese ganzen Daten möchte ich 1`ten in einer Tabelle darstellen und 2`ten als Diagramm ( also so eine Art Datenkurve ), um die ganze Sache später auch optisch auswerten zu können.

    Mein Problem ist nur wie mache ich das ?, wie spreche ich die Daten separat an und wie sage ich denen wo ich sie hingeschrieben haben möchte.

    Der Inhalt der Daten die ich über die RS-232 einlese sieht wie folgt aus:

    Bit1 Bit2 Bit3........
    1: 255 1:255 1:0
    2: 154 2:255 2:0
    3: 235 3:0 3:255

    nur mal als Beispiel, welche Werte da drin stehen ist nicht wichtig sondern eher wie die Struktur aufgebaut ist.

    Wäre super nett wenn mir einer eine Hilfestellung geben könnte.



  • Wenn ich richtig gelesen habe stehen Dir diese Daten in einer Datei zur Verfügung.

    Du könntest folgendes machen:

    1. Du liesst die Datei "zeilenweise aus" und das in ein CHAR - Array. Du musst natürlich die Anzahl der Zeichen beachten wenn Du dieses Array
    deklarierst, also überleg wieviel Zeichen maximal auftreten können (siehe eines deiner Datenpakete

    1: 255 1:255 1:0

    ). Besagtes Auslesen der Datei passiert natürlich in einer Schleife
    "bis Dateiende"

    2. Wurde innerhalb der Schleife eine Zeile ausgelesen kannst Du denn Inhalt
    dieses Array nach belieben, durch zeichenweises bearbeiten über einen Index nach Deinen Wünschen aufteilen. Das passiert natürlich auch in einer Schleife, die in der Schleife die Deine Datei ausliest eingeschachtelt ist.

    Tipp: Wenn Du die Daten des Array separieren willst, ist dein Separator Das Leerzeichen auf was Du prüfst, um die Daten zu teilen laut einen Beispieldatensatz von Dir

    1: 255 1:255 1:0

    musst Du also die Daten auf 3 🙄 weitere Arrays aufteilen über den Separator. Jetzt könnte man die einzelnen Datenworte in 3 Listen verwalten!
    Ich weiss aber nisch wie weit du mit verkettet Listen bewandert bist, jemand
    der weit in der Materie steckt würde ab diesen Punkt sogar Container aus der STL benutzen um die Daten vernünftig zu verwalten! Solche Container
    bieten dann Funktionen um Daten abzurufen, hinzuzufügen usw..

    Desweiteren ist noch zu sagen das Du bis zu diesen Punkt auch noch keine rein
    nummerischen Werte aus der Datei gewonnen hast ich verweise hier auf
    geeignet Konvertierung von Zeichenketten in nummerische Daten!

    Ich hoffe ich konnte Dir so manche Idee rüberbringen!

    MFG sclearscreen 🙂



  • Ach und nochwas bei Zeichenketten, also CHAR - Arrays musst Du höllisch
    auf die ESCAPE - Sequenz \0 aufpassen, die kennzeichnet das Ende
    einer Zeichenkette und ist beim, Zeichenweisen umkopieren im hinten ans Ende
    dranzuhängen.
    Das heisst Du musst im Quellcode, beim zeichenweisen kopieren selbst dafür Sorge tragen das dieses Zeichen immer als letztes Zeichen steht.

    mfg 🙂



  • Hallo <sclearscreen>

    danke erst mal für deine detailierte Ausführung. Werde ich am Wochenende direkt mal ausprobieren. War leider ein paar Tage beruflich unterwegs daher kann ich erst heute antworten.
    Bezgl. verketteten Listen kenne ich mich nicht aus, aber werde mal versuchen mich da irgendwie ein zu arbeiten, oder istz das zu heavy ?

    Ich sag Dir bescheid ob es funktioniert hat.

    Danke nochmal !!!


Anmelden zum Antworten