Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
csv ins excel reinladen
10.05.2009, 09:53
Beitrag: #1
csv ins excel reinladen
hallo leute!

bei meinem programm erfasse ich die messdaten (das sind viele)
in eine datei, in der ich temporär. grund dafür ist falls das programm abstürzen oder der strom weg sein sollte, das die dateien noch da sind.
als trennzeichen nehm ich ein semilokon ";"
im grunde ist das ne CSV.
nach dem testende will ich eine abfrage ob die daten exportiert werden sollten, da ja nach einem wiederdstart die temporäre datei gelöscht wird.
gibt es dafür eine einfache und simple lösung?

folgende umsetzungen habe ich:

- die temporäre datei wird mit dem MOVE FILE befehl, in eine *.csv umgewandelt. diese kann man im excel öffnen.

- es wird von der temp. datei mit FROM FILE gelesen (array 1D to end)
dann jede zeile FROM STRING TOKEN EXCLUDE ";" die einzelnen werte
in einem collector (n+1 dim array) geschickt.
funktioniert ansich recht gut, nur wenn ich eine zeile im CSV habe
die mehr oder weniger spalten als die anderen haben löst der collector
einen fehler aus. weiters sind dann alle werte im excel als text. was bei
den zahlen ein wenig unvorteilhaft ist.

anbei das vee program


Angehängte Datei(en)
.vee  toexcel.vee (Größe: 16,99 KB / Downloads: 84)
Diese Nachricht in einer Antwort zitieren
11.05.2009, 16:07
Beitrag: #2
 
Ich sehe das als ein wenig kompliziert an, was du da machst....
speichere doch einfach dein Record als Vee record mit einem Timestamp im Namen ab, und wenn du fertig bist, speicherst du das als Excel...
Wenn dann der Rechner abschmiert, hast du immer noch die records, kannst die in Vee einlesen und als excel abspeichern...

Die grundsaetzliche Frage duerfte sein, welches Format das schnellste ist, um abzuspeichern...

Ich hab mal meine Daten in eine Ram Disk geschrieben, nur weil das Speichern auf Festplatte zu lange gedauert hat. Die Werte waeren dann allerdingS auch weg, wenn der Rechner abschmiert...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.05.2009, 18:38
Beitrag: #3
 
vielen dank detlef für deine schnelle antwort!
ich weis, da hab ich wieder mal zu kompliziert gedacht....
meinst du mit dem record DATASET?
das ich in eine datei hineinschreibe (CSV format) glaub ich ist soweit ok.
werde aber das nächste mal das ganze logging mit dem dataset machen.
vorteil mit dem direkt als CSV schreiben denk ich ist das man falls der rechner abstürzt direkt die datei mit excel öffnen kann, und nicht vorher über VEE konvertieren muss.

das mit dem "nachher in excel konvertieren" habe ich mal gelassen, denn die logfiles können sehr groß werden. d.h bis zu > 65500 zeilen. das packt excel nicht mehr.

muss mir noch was ordentliches überlegen wie ich mit dem daten umgehe bzw. wo, wie und als was ich sie speichere. in arrays oder records,.....
...und die daten dann exportieren
Diese Nachricht in einer Antwort zitieren
16.05.2009, 16:07
Beitrag: #4
 
genau, dataset....
hast du denn mehr als 64.000 Daten an einem TAg ??
Ich hab ja eine aehnliche Aufgabenstellung ueber mehrere TAge, und splitte die Daten immer.
Die Frage ist immer,ob man soviel braucht. Ich mach da bei mir dann auch immer einen Mittelwert von 1000 Werte und checke, ob da irgendwo eine Min oder Max Grenze ueberschritten wird, dann halte ich auch die Details fest...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.05.2009, 21:38
Beitrag: #5
 
die daten sind schon sehr viele.
ich habe zwei logfiles. eines für die messdaten pro zyklus. (sind ca. 200)
und eines für fehler, d.h. wenn ein messwert außerhalb der toleranz ist.
hierfür verwende ich den sequenzer, der nicht schlecht ist.
aber 200 testsequenzen füttern dauert ne weile :-)
Diese Nachricht in einer Antwort zitieren
15.07.2009, 21:35
Beitrag: #6
 
detlef schrieb:speichere doch einfach dein Record als Vee record mit einem Timestamp im Namen ab, und wenn du fertig bist, speicherst du das als Excel...

wie speichere ist das am besten als excel?

momentan mach ich das logging so, das ich einfach die variablen die
ich exportieren möchte in eine datei schreibe und dazwischen ein semilokon:
date;time;cycle;data1;data2;data3;datax usw
Diese Nachricht in einer Antwort zitieren
01.08.2009, 15:53
Beitrag: #7
 
nimm einfach deine Daten und speichere das mit to dataset.
Im Falle von Excel kannst du natuerlich auch ein Excel-Blatt aufmachen und dann die Daten reinschreiben, dann excel abspeichern. Damit das schneller geht, die Sichtbarkeit von Excel abschalten. Und anstatt Zelle fuer Zelle einzeln zu besetzen, kann man auch komplette Arrays uebergeben.
Im Falle von CSV ist das Abspeichern mittels tofile und Semikolon / Komma als Seperator sinnig. Problem: beim Zuruecklesen in VEE gehen erstmal die eigentlichen Infos ueber die Datenstruktur verloren, man liest das meistens als string ein...

Ich mach das immer doppelt und dreifach:
1. als Dataset- da hab ich meine komplette VEE Datenstruktur drinne ( Record)
2. Als Excel Datei via Excel.
3. Als ASCII Datei mit Semikolon als Seperator, denn komma und punkt sind ja meistens belegt, wenn man international arbeitet...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.09.2009, 10:11
Beitrag: #8
 
Ich habe mir wieder einmal Gedanken gemacht über das Speichern von Daten. Insbesonders wenn es viele sind, wie z.B von einem Dauerlauf.
Die Verwendung von einem Dataset finde ich nach und nach vorteilhafter.
Man kann die Daten im VEE Proramm wieder Verwenden (Verlauf der einzelnen Messdaten etc.) im Gegensatz.
Bei solchen Programmen benutze ich immer den Sequencer, von diesen würde ich dann die Daten in das DataSet schicken.
Nur weis ich nicht wie ich eine Art "Kopfzeile" erstellen kann, bzw. möchte ich Daten und Informationen zu dem Dauerlauf anspeichern. Solche währen z.b Teststart, wer hat ihn gestartet, Informationen zum Prüfobjekt etc.
Wenn ich all diese Daten bei jedem Testschritt bzw. Zyklus auch speichere macht das nicht viel Sinn.
Diese Nachricht in einer Antwort zitieren
15.09.2009, 13:11
Beitrag: #9
 
Vielleicht so:
den Header, und eine Schleife mit deinen Daten als tofile strings. Und nach jedem 1000 Durchlauf oder so alles auch noch mal als record.
Musst halt schauen, wie sicher deine Daten sein sollen, und wie lange du brauchst, um dein Record abzuspeichern. Grosses Record = viel Zeit ( wenn man von ms ausgeht ).

Die Frage ist halt, ob es sschlimm ist, wenn die Daten der letzten 10sec / 10 Min / 10 Stunden /10 Tage durch einen Stromausfall oder so weg sind...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:




Partnerforen: LabVIEWForum.de| DIAdem-Forum.de| Machine-Vision-Forum.de| goMatlab.de| VEEforum.de