|
Von einer Datei in "mehrere" Array's einlesen
|
|
30.08.2007, 15:38
Beitrag: #1
|
|||
|
|||
|
Von einer Datei in "mehrere" Array's einlesen
Hallo zusammen,
bin mal wieder auf ein interessantes Problem gestossen! 8) Folgendes: Ich hab eine ( jetzt wohl Weltweit berühmt berüchtigte ) CSV Datei.Ich öffne diese Datei mit einem "From File" Objekt. Das sieht folgenmdermaßen aus (bild: from file): [/img] Das blöde Forum Upload Ding hat meine Bilder vertauscht!!!! Sorry dafür! Das Problem ist das ich eigentlcih keinen 1D Array haben will, sondern einen 2D array. Also das dass "From file" Objekt merkt: "Aha....... Der Florian hat da ";" drin stehen. Der will bestimmt das ich daraus mehrere ( in dem Fall 7 weil 7 Spalten) einzelne Array's bastel..." Aber leider is mein "from file" Objekt nicht so freundlich :? Also bräuchte ich da irgendwie ne Möglcihkeit das selbst zu machen. Ich hab das dann mit einer Schleife versucht (Bild: Schleife): Das Problem dabei ist nur das dass viel zu lange dauert! Der braucht echt ewig bis der ne große Datei auf diese art und weiße geöffnet hat!Sind ja immer hin um 625000 zeilen! Es wär also toll wenn ich ne möglcihkeit hätte direkt aus der CSV "nur" die erste und "nur" die zweite etc.. Spalte raus zu lesen. Quasi meine 7 Spalten als seperate Array's rauslesen. Und das mit einem etwas höherem Tempo. Weiß jemand ne Lösung für dieses Problem? gruß an alle Florian |
|||
|
31.08.2007, 09:50
Beitrag: #2
|
|||
|
|||
|
schon mal mit excel eingelesen ? Wie lange dauert es da?
wenn schneller-was ich glaube ;-) - dann les dein Ding doch mit der Excel lib ein ( Ab vee7.5) Sonst nimmst du die Excel-Library vor Vee7.5..eine Sammlung an Excel Tools. Sind die schneller ? Sonst schau ich mir mal dein Bild an, wo man optimieren kann. Aber da ist wahrscheinlich Bratbaecker schneller ... |
|||
|
31.08.2007, 10:07
Beitrag: #3
|
|||
|
|||
|
Der "Trick" duerfte sein, zuerst alles einzulesen und dann erst zu splitten.
Ich empfehle dazu die examples/manual Beispiele ... |
|||
|
31.08.2007, 12:13
Beitrag: #4
|
|||
|
|||
|
Moin moin;
also das einlesen mit Excel funktioniert zwar ist aber hier nicht gefordert. Und zwar: Ich mache eine Messung. Diese wird gespeichert als CSV Datei. Diese Datei kann ich dann natürlich mit Excell öffnen. So ist das ja gedacht. Aber: ich möchte die Datei auch mit "meinem" Programm anzeigen können. Soll heisen; ich hab mein Programm (selbst erstellt mit mit VEE 7) am laufen und kann mir mal ne alte Messung ansehen. Damit meine ich, dass ich direkt mein Diagramm bzw. X vs Y Plot angezeigt bekomme. Das ist deshalb so weil der Techniker der später mein Programm benutzt keine Ahnung von Computern hat und im prinzip "nur" mein Programm zur verfügung hat. Zu "Sonst nimmst du die Excel-Library vor Vee7.5..eine Sammlung an Excel Tools. Sind die schneller " => Keine Ahnung wie das funktioniert bzw. was ich da machen soll. Zu " Der "Trick" duerfte sein, zuerst alles einzulesen und dann erst zu splitten. Ich empfehle dazu die examples/manual Beispiele ..." => Das hab ich ja gemacht.Ich speicehre die datei in eine Variable. Diese wird dann von der Schleife auséinander genommen. Denke das das Problem mit der Geschwindigkeit wirklich an der Schleife und nicht am From File Objekt liegt. Und welcche Beispiele bzw. Examples meinst du genau? Gruß Florian |
|||
|
31.08.2007, 15:04
Beitrag: #5
|
|||
|
|||
|
String in Array zerlegen
Hi,
in der jetzigen Form arbeitest du ja mit kompletten Strings. Du willst aber Teile des Strings als Array haben. Nehme dafür die "From String" Funktion.
Gruß Bratbaecker |
|||
|
31.08.2007, 19:23
Beitrag: #6
|
|||
|
|||
|
Hi;
erstmal vielen Dank für deine Antwort! Du hast da ja zwie "From String" Objekte. Was macht das erste von beiden? Reiht es die Arrays aneinander? Und das zweite from string objekt? Hab ich damit nicht wieder einen 1D String bzw. Array? Ich glaub ich raff das noch nicht so ganz. Brauch ich auch diese transpose funktion? Tut mir echt leid das ich so schwer von Begriff bin :oops: Voll peinlich! Aber vielen Dank das ihr euch so mühe gebt mit mir
|
|||
|
01.09.2007, 08:22
Beitrag: #7
|
|||
|
|||
String in Array zerlegen
Zitat:Tut mir echt leid das ich so schwer von Begriff bin. Voll peinlich! Du brauchst dich nicht nieder zu machen, dieses "From String" Object ist auch nicht ganz einfach zu verstehen, inbesondere wenn Steuerzeichen mit im Spiel sind. Das Steuerzeichen wird mit dem zweiten "From String" als Trenner für die Arraystuktur benötigt. Hoffe, dass das Objekt auch deine sehr großen Dateien verarbeiten kann ? "Transpose" wirst du wohl brauchen, wenn du die Daten an XY darstellen möchtest. :wink: Gruß Bratbaecker |
|||
|
01.09.2007, 09:56
Beitrag: #8
|
|||
|
|||
|
Vieln Dank.
Ich werd das mal versuchen. Kann aber sein das es ein bisschen dauert bis ich mich wieder melde da ich demnächst Klausur schreibe und nicht genau weiß wann ich wieder an meinen Arbeitsplatz komme um das auszuprobieren. Aber auf jedenfall sag ich nochmal bescheid. Vielen vielen Dank!
|
|||
|
03.09.2007, 16:25
Beitrag: #9
|
|||
|
|||
|
Aber prinzipiell solltest du deine Daten, die du irgendwann mal in dein VEE Programm zurueckladen willst, einfach als Record abspeichern.
Dann fallen diese ganzen bloeden Aufsplittungen wieder weg. Und glaub mir, es ist besser , deine Daten 2 mal abzuspeichern, einmal als record, und einmal als Comma Seperated Value- um z.B. in Excel anzuschauen. Wo ist dann das Problem? Speicherplatz vielleicht, aber dafuer hast du doppelte Sicherheit...und schnelleres Programmieren. und die examples/manual klick mal durch ;-) |
|||
|
04.10.2007, 12:55
Beitrag: #10
|
|||
|
|||
|
Hallo zusammen;
da bin ich wieder Also erstmal: Yuhuu es hat geklappt! Durch die verwendung von den "From String objects" klappt's jetzt prima! Sogar relativ fix! Vielen vielen Dank hier nochmals an Bratbaecker ich weiß zwar nicht genau warum es jetzt funktioniert und was die Steuerzeichen im einzelnen bedeuten aber es funktioniert! Geil! Allerdings gibts da noch ein "Folge" Problem. Ich habe zwa jetzt meine Daten über die "From String" und "get Value" Objects in einzelne schöne Strings zerlegt aber allem Anschein nach kann das Strip Chart eine so große Datenmenge nicht korrekt auswerten! Es kommt zu folgender Fehlermeldung wenn ich die Strings als Diagramm anzeigen lassen will: Ich meine klar, das der Array so groß ist ( 624 366 ) ist schon der "Worst-Case" allerdings kommt dieser schonmal öfters vor! Kann ich dieses Problem umgehen bzw. woran kann sowas liegen? (benutze VEE 7) Also wenn jemand ne idee hat bitte melden! Gruß an alle Florian Becker |
|||
|
05.10.2007, 11:56
Beitrag: #11
|
|||
|
|||
|
schau mal in die VEE -Hilfe unter STrip Chart...
u.a. BufferSize - Specifies the number of points stored in memory. Default is 10000. Wenn du den Puffer allerdings hochsetzt, wirds langsamer... Spiel mal rum. Andererseits: Ist die Darstellung von so vielen Werten auf einmal ueberhaupt sinnvoll ??? |
|||
|
05.10.2007, 12:01
Beitrag: #12
|
|||
|
|||
|
Hi;
naja das mit dem Sinn ist so ne sache. Oftmals bracuhst du die komplette Darstellung nicht. Allerdings ist es halt gut wenn du dir (jedenfalls in meinem Tätigkeitsfeld) manceh Punkte bzw. abschnitte genauer heranzommen kannst. Ich werde auf jedenfall mal mit der Buffersize ein bissel rumspielen :-) Danke für den tip Gruß Florian |
|||
|
|

Suche
Mitglieder
Kalender
Hilfe

) CSV Datei.

