Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Hallo,
ich versuche aus einer Messung die jede Sekunde einen neuen Werte liefert jeden xten Wert entsprechend eines Messintervalls zu speichern. Ich möchte zum Beispiel mit dem Intervall 5 Sekunden jeden 5 Wert speichern. Er soll gleich (jeder Messwert) in eine Excel Tabelle gespeichert werden. Dazu ein kleiner Header, zu beginn der Exceldatei....
Ich habe mal einen kleines Vi geschrieben, dass das Problem zeigt. Immer wenn man auf Messung drückt, sollen Werte in die Datei gespeichert werden. Wie kann ich das machen, das ich nicht jedesmal (beim zweiten mal Drücken von Messung) das ganze erste Array wieder in die Datei schreibt.
Danke für Eure Hilfe
jonnymi
Anzeige
16.06.2012, 11:31 (Dieser Beitrag wurde zuletzt bearbeitet: 16.06.2012 11:31 von GerdW.)
1) csv-Dateien sind KEINE Excel-Dateien! Das sind ganz ordinäre Textdateien!!!
2) Du verwendest Schieberegister. Das ist soweit gut und richtig, aber: die muss man auch schon mal leeren bzw. initialisieren. Genau dazu haben sie auch einen Eingang, den man bei Bedarf auch nutzen sollte...
3) Den Aufräumknopf zu benutzen ist nicht verboten...
4) Und versuche auch mal, Array-Operationen so einfach wie möglich zu halten. Man muss nicht aufwendig Arrays erzeugen, die man dann in andere Array einfügt: BuildArray kann das genau so gut erledigen...
Hallo,
danke für Deine Antwort. Was meinst Du mit Löschknopf? Wenn ich das Beispiel anschaue, verstehe ich das das Array immer größer wird solange ich Messe, danach wird das Array zurückgesetzt. Ist das richtig?
Da hast Du natürlich total recht, mit dem Datenformat. Excel lesbar reicht voll und ganz. Wo kann ich die Daten am besten wegschreiben? Außerhalb der Whileschleife würde ich ja jedes mal die Strings der Fals Bedingung schreiben, in der Falsschleife schreibe ich immer nur den letzten Wert.
Grüße
17.06.2012, 19:59 (Dieser Beitrag wurde zuletzt bearbeitet: 17.06.2012 20:00 von GerdW.)
Ich bin erste heute dazugekommen Deine Vorschläge einzuarbeiten. Ich habe noch ein Problem mit den Schreiben der Daten. Leider kann man das Vi nicht ausführen, weil einen Schnittstelle eingebunden ist. Wenn ich das Vi ausführe, läuft alles super auch mit der Datenaufnahme. Das sehe ich ja in meinem Ausgabearray. Auch das speichern funktioniert. Wenn ich die Datei mit Excel öffne habe ich immer einen Leerzeile zwischen den geschriebenen Zeilen. Wenn ich die Datei mit den Messwerten mit Notepad o.ä. öffne sehe ich, einen Zeilenumbruch zu viel. Ich vermute den Fehler in der Whileschleife zum Array zusammenfassen, evtell da wo das Teilarray angehängt wird (Case 2).
Es würde mich nicht wundern, wenn das Gerät, welches du per RS232 abfragst, seine "Meldung" mit einem Newline und/oder Carriage Return beendet.
Nachdem du so ein Zeichen nicht aussortierst, bleibt es an dieser Stelle hier erhalten:
und wird somit auch immer als Leerzeile in dein csv-File mit eingefügt.
Schau dir deine Strings einfach im \Codes-Modus an und überprüfe sie auf \n oder \r.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
(21.06.2012 21:16 )jonnymi schrieb: Kannst Du nochmal drüber schauen?
Solche Probleme kannst du mit Debuggen ganz einfach lösen. Wenn du mit Sonden die Drähte überwachst, dann würdest du genau sehen, was in die Datei geschrieben wird und an welcher Stelle die Zeilenumbrüche eingefügt werden. Natürlich im Zusammenhang mit jg's Hinweise auf die Stringanzeige mit Code-Display
Beste Grüße,
NWO
9 von 10 Stimmen in meinem Kopf sagen: Ich bin nicht verrückt,
die andere summt die Melodie von Tetris.
NI schrieb:To use the abort button is like using a tree to stop a car!