INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Datei geringster Speicherverbrauch



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!

08.11.2011, 15:26
Beitrag #1

GT123 Offline
LVF-Stammgast
***


Beiträge: 432
Registriert seit: Mar 2009

2018
2008
DE_EN


Schweiz
Datei geringster Speicherverbrauch
Hallo,

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?

Ich hoffe es kann mir jeman weiterhelfen.


Angehängte Datei(en)
10.0 .vi  Datei nach binary.vi (Größe: 55,53 KB / Downloads: 147)

Grüsse
GT123
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.11.2011, 15:47
Beitrag #2

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
RE: Datei geringster Speicherverbrauch
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.11.2011, 16:38 (Dieser Beitrag wurde zuletzt bearbeitet: 08.11.2011 16:40 von GerdW.)
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Datei geringster Speicherverbrauch
Hallo GT,

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...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2011, 07:20
Beitrag #4

GT123 Offline
LVF-Stammgast
***


Beiträge: 432
Registriert seit: Mar 2009

2018
2008
DE_EN


Schweiz
RE: Datei geringster Speicherverbrauch
Hallo unicorn,
(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?


Angehängte Datei(en) Thumbnail(s)
   

Grüsse
GT123
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.11.2011, 08:56
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Datei geringster Speicherverbrauch
Hallo GT,

wir haben nie behauptet, du solltest deine U8-Werte nach DBL konvertieren und dann speichern (jeweils 1 Byte in einem 8-byte-DBL verstecken)...

Du sollst die Zahlen in deinem String nach DBL konvertieren und das dann speichern! Dein Beispiel erzeugt nun noch ~750kB große Dateien:
   

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.11.2011, 14:01
Beitrag #6

GT123 Offline
LVF-Stammgast
***


Beiträge: 432
Registriert seit: Mar 2009

2018
2008
DE_EN


Schweiz
RE: Datei geringster Speicherverbrauch
Hallo,

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?

Grüsse
GT123
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
10.11.2011, 16:24
Beitrag #7

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
RE: Datei geringster Speicherverbrauch
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2011, 08:06
Beitrag #8

GT123 Offline
LVF-Stammgast
***


Beiträge: 432
Registriert seit: Mar 2009

2018
2008
DE_EN


Schweiz
RE: Datei geringster Speicherverbrauch
Ok, danke unicorn.

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.


Angehängte Datei(en) Thumbnail(s)
   

Grüsse
GT123
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.11.2011, 09:22
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Datei geringster Speicherverbrauch
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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: