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!
ich bin auf der Suche nach einer Möglichkeit Messdateien (bisher Textdatei) anderst abzuspeichern.
Wer kann mir aus Erfahrung sagen ob es ausser meiner bisherigen Variante noch etwas besseres gibt als binär speichern?
Binär speichern geht soweit, aber ich spare nicht viel Speicherplatz (z.B. von 1.3MB auf 1.2).
Gibt es noch eine bessere Speichermöglichkeit mit der ich weniger Speicher verbrauche?
In dem angehängten Vi funktioniert das lesen nicht. Was ist dort falsch?
Du hast die Zahlen ja noch gar nicht binär gespeichert. Du hast lediglich Deinen String in ein Byte-Array umgewandelt, was ziemlich das gleiche ist. Du müsste jede Zeile in ein DBL umwandeln und dann dieses Array abspeichern. Auf der File I/O-Palette gibt es dazu ein passendes VI.
08.11.2011, 16:38 (Dieser Beitrag wurde zuletzt bearbeitet: 08.11.2011 16:40 von GerdW.)
es hilft immer, die Dateiposition im Blick zu behalten, wenn man mit der selben Datei hantiert!
Außerdem bekommt man bei Weglassen der "Anzahl" die Daten ohne Clusterverpackung geliefert...
Dein Umwandeln in U8-Stream bringt nichts. Du hast vorher ca. 12 Zeichen pro Zahl, ein Umwandeln der Texte nach DBL würde eine Reduktion auf 8 Byte pro Zahl bedeuten - bei Beibehaltung der bisherigen Genauigkeit. Wenn 23 bit Genauigkeit ausreichen, kann man auch SGL verwenden und braucht nur noch 4 Byte pro Zahl...
(08.11.2011 15:47 )unicorn schrieb: Du hast die Zahlen ja noch gar nicht binär gespeichert. Du hast lediglich Deinen String in ein Byte-Array umgewandelt, was ziemlich das gleiche ist. Du müsste jede Zeile in ein DBL umwandeln und dann dieses Array abspeichern. Auf der File I/O-Palette gibt es dazu ein passendes VI.
Variante 1 o. 2 bei beidem ist die Datei hinterher 9,4MB gross?
Was ist falsch? Ich wandle zeilenweise in DBL, also nicht direkt da ich ja kein String an DBL
anschliessen kann.
Reden wir vom gleichen DBL? Was hat Double Precision mit binär zu tun?
ok soweit geht das, auch mit dem zurückkonvertieren in string.
Jetzt wollte ich eine bestehende Textdatei (Text und Zahlen) einlesen u. binär abspeichern.
Schaffe ich aber nicht. Es muss was mit den Trennzeichen und Formatstring zu tun haben?
Du kannst eine Textdatei direkt lesen: "Read from Text File.vi" von der File I/O Palette. Da brauchst Du keine Formatierung, pi pa po zu beachten. Wenn die Datei den Inhalt in der Form hat, wie die String-Konstante in Deinem Beispiel, kannst Du den eingelesenen String so wie GerdW gezeigt hat in ein DBL-Array umwandeln.
Alternativ kannst Du mit "Read From Spreadsheet File.vi" Deine Textdatei direkt in ein Array umwandeln. Hier muss das Dezimaltrennzeichen, der Formatstring und das Zahlentrennzeichen angegeben werden (wie bei "Scan From String.VI").
Zur Ergänzung des besseren Verständnisses solltest Du Dir noch mal ansehen, wie Zahlen (Integer, Unsigned Integer, Float) bei Computern im Speicher dargestellt werden.
Also dass mit dem Einlesen einer Textdatei ist mir nun klar.
Das Problem ist nun das ich wieder ein 2D Array erhalte und nach dem binär speichern u. wieder lesen ich nicht das gleiche vorliegen habe. Denn in der ursprünglichen Textdatei ist auch Text enthalten u. nicht nur Zahlen (insgesamt Mehrzeilig und die Werte mit Tabulatoren getrennt). Der Text wird logischerweise in die Zahl 0.0 konvertiert.
Ich wollte eben die bestehende Textdatei binär abspeichern (Reduzierung der Grösse), danach aber diese binäre Datei wieder entweder umwandeln in eine Textdatei ASCII oder nur auslesen.
Also ganz normaler ASCII-Text, wenn du den im "Binärformat" speicherst, dann braucht das genauso viel Speicherplatz wie beim Speichern als txt, nämlich immer 1 byte pro Zeichen.
Schon mal darüber nachgedacht, deinen File zu komprimieren? Mit den Zip-VIs?
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!