Forum: PC-Programmierung Messserien in Visual C# aufzeichnen und darstellen


von Andreas L. (andreas_l441)


Angehängte Dateien:

Lesenswert?

Hallo,
ich suche eine Möglichkeit, um bestimmte Messserien (Max. 
Kraft-Messungen) in Visual C# aufzuzeichnen und dann in einem Graphen 
und einer Tabelle zu visualisieren.
Das Ganze sollte in etwa so aussehen wie auf dem Bild.
Dabei sollte man dann mit einem Rechtsklick auf die Proben, neue 
hinzufügen können.
Mit dem ChartControl habe ich mich schon vertraut gemacht und schon 
erfolgreich Messwerte aufgenommen. Mir fehlt nur die Funktion, um 
mehrere Proben zu speichern wie auf dem Beispielbild.
Gibt es dafür evtl. auch fertige Controls?
Ich hoffe ihr könnt mir helfen :)

MfG Andreas

: Bearbeitet durch User
von nicht"Gast" (Gast)


Lesenswert?

Guten Morgen,

Das ChartControl kann mehr als einen Graphen speichern.

das ist eigentlich ein triviales Problem. Wie es aussieht, kennst du 
dich mit deiner Programmiersprache nicht sonderlich gut aus.

Da hast du zwei Möglichkeiten:
 1 - nimm was anderes, mit dem du dich besser auskennst.
 2 - lerne, wie man es macht.


Leider ist deine Fragestellung von der Art "ich hab keine Ahnung und 
keine Lust mich einzuarbeiten. hat da nicht jemand was fertiges für 
mich, damit ich mich nicht weiter damit beschäftigen muss?"

Bei spezifischen Fragen wird dir hier sicherlich gerne weiter geholfen. 
Das ist zu allgemein. Da muss man dir ja erst mal die Grundlagen 
beibringen.


Grüße,

von Andreas L. (andreas_l441)


Lesenswert?

Natürlich bin ich bereit, mich einzuarbeiten.
Nur wollte ich wissen, ob es evtl. ein Control oder ähnliches bereits 
gibt in Visual C#.
Den Graphen musste ich ja auch nicht komplett selbst programmieren, da 
gibt es bereits was fertiges.
Ich möchte nur wissen, wo ich suchen muss, denn in der Werkzeugliste 
habe ich nichts passendes gefunden.
Und nein, C# beherrsche ich nicht wirklich, ich habe bis jetzt nur ein 
Semester Strukturierte Programmierung mit C++ und Qt gehabt, wo wir auch 
nur mit der Konsole gearbeitet haben.
Das hat jedoch bis jetzt gereicht für meine bisherigen Probleme.
Wenn das mit der Probenauswertung zu kompliziert ist, muss ich damit 
leben und einen anderen Weg suchen.
Ich würde mich trotzdem über eine gescheite Antwort freuen, in der der 
grobe Verfahrensweg für so ein Problem geschildert wird..

von Pit (Gast)


Lesenswert?

Andreas L. schrieb:
> Mir fehlt nur die Funktion, um
> mehrere Proben zu speichern wie auf dem Beispielbild.
> Gibt es dafür evtl. auch fertige Controls?

Ja gibt es. Die nennen sich 'Button' und funktionieren wie folgt:
Nach dem drücken auf den 'Button' wird die Funktion 'SpeichereProben' 
aufgerufen, welche dann Deine Liste der Proben mit der Save-Funktion auf 
der Festplatte speichert.

Gruß Pit

von Horst S. (Gast)


Lesenswert?

Ich hoffe, ich hab das richtig verstanden: Du willst die Daten 
speichern. (nicht einen Screenshot der Grafik).
Nein, für ein Control sind die Möglichkeiten zum Speichern von Daten zu 
divers:
- Im Namensraum System.IO findest Du z.B. die statischen Methoden 
ReadAll.../WriteAll... des File-Types, mit denen Du eine Datei in 
unterschiedlichen Formaten in einem Rutsch lesen/schreiben kannst.
- Wenn Du große Dateien hast, bietet sich allerdings der sequentielle 
Zugriff über Streams an (System.IO.FileStream).
- Wenn Du Daten strukturiert ablegen und wieder hervorholen willst, ist 
XML sehr beliebt. Dazu schaust Du im Namensraum System.XML mal nach dem 
XMLDocument.
- Eine Quick&Dirty-Alternative mit XML ist im Namensraum System.Data das 
Dataset-Objekt, mit dem Du in einer datenbankähnlichen Struktur über 
ReadXML/WriteXML Daten lesen/schreiben kannst (das ist nicht der 
eigentliche Sinn des Objeltes, ist aber schon mal eine Einstieg in 
datenbankähnliche Strukturen).
- Was Du in WPF quasi geschenkt bekommst (die Persistenz von einfachen 
Objekten über Listen bis hin zur vollständigen Objekthierarchie), kannst 
Du in den älteren Versionen mit Windows.Forms über den Namensraum 
System.XML.Serialize in Grenzen auch betreiben.
- Dann gibt's natürlich noch Datenbanken.

Nichts davon geht ohne programmieren aber alles ist durch Suchen im Netz 
mit Beispielen belegt. Und die Liste ist bestimmt nicht vollständig. 
Wenn Du jetzt nicht unter besonderem Druck stehst, schau Dir zumindest 
einige XML- und Datenbankenlösungen an. Früher oder später brauchst Du 
es sowieso.

von nicht"Gast" (Gast)


Lesenswert?

Andreas L. schrieb:
> Ich würde mich trotzdem über eine gescheite Antwort freuen, in der der
> grobe Verfahrensweg für so ein Problem geschildert wird..


Gut, ein paar Fragen.

Willst du die Daten auf der Platte wegspeichern oder willst du nur die 
eingehenen Datenströme anzeigen. Sind die Daten evtl. schon aus Dateien 
und du lädst sie und zeigst sie an?

Um welche Datenmengen handelt es sich? Sind es nur ein paar MB, die man 
locker im Speicher halten kann oder ist es deutlich mehr?


Da ganz linke Control in deinem Bild ist ein TreeView. Dort kannst du 
die Namen der Strukturen eintragen, die die Daten vorhalten. Die Daten 
selber behält man normalerweise in einem internen Object z.Bsp einer 
"List<float>". Du die Daten auch gleich in einer Series von deinem Chart 
speichern. Du must sie da ja nicht gleich reinladen und anzeigen.

Hoffe, das hilft erst mal weiter.

von Andreas L. (andreas_l441)


Lesenswert?

@nicht"Gast"

Danke! Das TreeView war das, was ich gesucht habe.
Muss ich wohl irgendwie übersehen haben.
Und zum speichern der Daten:
Sie sollen vorerst nicht auf der Platte gespeichert werden, sondern nur 
temporär, während das Programm läuft.
Denn sonst wird es für meine Verhältnisse wahrscheinlich ein wenig zu 
kompliziert.
Es ist auch nur eine geringe Menge an Daten..

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.