LabVIEWForum.de - Dateien einlesen - Wahl der eigene Formate

LabVIEWForum.de

Normale Version: Dateien einlesen - Wahl der eigene Formate
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

ich will in meinem Programm eigene Dateien einlesen.
Diese Dateien sollen letzlich Zahlen beinhalten die in eine Tabelle importiert werden sollen

Ich denke das einfachste ist einfaches *.txt als Quell-Format

Was bietet sich dort an Zwecks Unterschediung der Daten ?

Meine Grundidee war:
--
Wert 1a; Wert1b; Wert1c; Wert1d;.....Wert1X;
Wert 2a; Wert 2b; Wert2c; Wert2d;....Wert2x;

D.h. eigentlich kein spezielles Trennzeichen für jede neue Tabellen-Zeile.
Führt dies zu Problemen ? Ist es nicht besser ein Trennzeichen für Werte innerhalb einer Zeile und ein Trennzeichen für Zeilen-Trennung zu definieren ?

Eure Ideen & Vorschläge sind herzlichst willkommen

Im Optimalfall würde ich meine Datei auch mit Kommentaren versehen koennen,
d.h. Zeilen mit Anführenden "#" o.ä. werden nicht interpretiert.

Gruss
fidel
Hi,

du kannst das machen wie ein DachdeckerTongue...

Für die Kommentare würde sich dein Format natürlich gut eignen...

Trotzdem würde ich bei der klassischen Tabellenform bleiben, d.h.

Wert1a "TAB" Wert2a "TAB" Wert3a...
Wert1b "TAB" Wert2b "TAB" Wert3b...

Das bietet sich an, weil LV mit "Read Spreadsheet" die Zeichen eh schon so interpretiert, und mit "Write Spreadsheet" auch so schreibt...so wie's auch in Excel erwartet würde. Dein Trennzeichen ist ebenfalls egal, nur Leerzeichen sind nicht so doll!

Für die Kommentare könntest du einen Header einfügen, der nicht interpretiert wird...

Um deine Dateien schnell zu finden, würde ich evtl. eine andere Endung definieren, z.B. *.fidel

Wenn du die Dateien nicht im Klartext lesen können willst (z.B. mit dem Editor o.ä.), könntest du auch einfach Binärfiles (Write Binary) mit beliebigem (!) Format und Inhalt schreiben: Z.B. ein Array aus Clustern (Kommentar als String, Daten als numerisches Array), d.h. in jedem Arrayelement befindet sich ein eigener Datensatz mit eigenem Kommentar. Das ganze sollte wohl auch als XML-String gehen und ist evtl. ein wenig zeitgemäßer...


Gruss
Achim
Hi Achim,

also du würdest einfach nur:
Zitat:10.00 22.00 00.00 17.01
22.11 00.12 01.12 12.23
ohne explizite Angabe eines Trennzeichen innerhalb der Zeile, bzw nur des Tabulators.
Die Zeilen dann nur mittels CR getrennt halten.
Das mit der eigenen Dateiendung hatte ich mir auch schon so gedacht.


ok, ich grübel mal noch ne runde weiter.

Wie immer vielen Dank für deine Hilfe

Gruss
fidel



' schrieb:Hi,

du kannst das machen wie ein DachdeckerTongue...

Für die Kommentare würde sich dein Format natürlich gut eignen...

Trotzdem würde ich bei der klassischen Tabellenform bleiben, d.h.

Wert1a "TAB" Wert2a "TAB" Wert3a...
Wert1b "TAB" Wert2b "TAB" Wert3b...

Das bietet sich an, weil LV mit "Read Spreadsheet" die Zeichen eh schon so interpretiert, und mit "Write Spreadsheet" auch so schreibt...so wie's auch in Excel erwartet würde. Dein Trennzeichen ist ebenfalls egal, nur Leerzeichen sind nicht so doll!

Für die Kommentare könntest du einen Header einfügen, der nicht interpretiert wird...

Um deine Dateien schnell zu finden, würde ich evtl. eine andere Endung definieren, z.B. *.fidel

Wenn du die Dateien nicht im Klartext lesen können willst (z.B. mit dem Editor o.ä.), könntest du auch einfach Binärfiles (Write Binary) mit beliebigem (!) Format und Inhalt schreiben: Z.B. ein Array aus Clustern (Kommentar als String, Daten als numerisches Array), d.h. in jedem Arrayelement befindet sich ein eigener Datensatz mit eigenem Kommentar. Das ganze sollte wohl auch als XML-String gehen und ist evtl. ein wenig zeitgemäßer...
Gruss
Achim
Hi Fidel,

mit deinen Werten kann ich irgendwie nix anfangen...was soll das sein?

Der TAB ist ein "explizites" Trennzeichen zwischen den Werten, und ja mit CR oder CRLF werden die Zeilen getrennt. Das LF kann man sich sparen, das kommt ja noch von der Schreibmaschine (LF = Line Feed = Neue Zeile = Ra... / CR = Carriage Return = Wagenrücklauf = ...Tsching). Viele Programme erwarten das halt (noch)...

Tschö
A.
' schrieb:....
mit deinen Werten kann ich irgendwie nix anfangen...was soll das sein?
...
A.

ging mir mit deinen ähnlichBig Grin

Das waren einfach nur Beispielzahlen...mehr nicht.
Ich werd das ganze jetzt einfach mal mit TAB innerhalb der Zeile und CR zwischen den Zeilen versuchen


danke nochmal
gruss
fidel
Hallo,

irgendwie hänge ich mal wieder fest.
Ich sehe 3-4 möglichkeiten von einer Datei zu lesen wenn ich in der LV Hilfe suche.

Wollte eigentlich die von dir erwähnte Tabellen-Funktion nehmen, siehe Bild.

Meine BeispielDatei ist wie zuvor besprochen, habe sie auch nochmal mit dne Infos der Hilfe abgestimmt.

Nur kriege ich den Output nicht wieder in meine LabVIEW Tabelle rein, bzw. verbunden / verkabelt
Kann mir jmd den erfolderlichen Zwischenschritt mittels Stichwort andeuten ?

Problem sind mal wieder die verschiedenen Datentypen:
Der Typ der Datenquelle ist 2-D Array von Double [64-Bit Reell (~15 Stellen Genauigkeit)].
Der Typ der Datensenke ist 2-D Array von String.

Nur wie konvertiere ich das ?


Danke im vorraus
fidel
Hi,

du könntest deine Tabelle mit der Funktion "Number to fractional string" (Palette String >> Conversion) einfach umwandeln...die Funktion ist polymorph, d.h. sie akzeptiert auch 2D-Arrays

Alternativ könntest du mal in die Read-Funktion reingucken...da wird eh schon ein String gelesen und dann erst in ein 2D-Array gewandelt...du könntest das VI nach deinen Bedürfnissen abändern (also die Wandlung rausschmeißen) und dann - WICHTIG - unter "MyRead" abspeichern...

Gruss
Achim
' schrieb:du könntest deine Tabelle mit der Funktion "Number to fractional string" (Palette String >> Conversion) einfach umwandeln...die Funktion ist polymorph, d.h. sie akzeptiert auch 2D-Arrays
....
Kann ich leioder nicht, da die Tabelle noch von anderne Funktionen verwendet wird und dann dürfte ich dort wieder anfangen anzupassen


' schrieb:Alternativ könntest du mal in die Read-Funktion reingucken...da wird eh schon ein String gelesen und dann erst in ein 2D-Array gewandelt...du könntest das VI nach deinen Bedürfnissen abändern (also die Wandlung rausschmeißen) und dann - WICHTIG - unter "MyRead" abspeichern...

Ok dieser Weg hört sich sinnig in meinem Fall an, mal sehn ob ich in dem durcheinander zurechtkomme.....
im endeffekt wirkt es auf mich als ob der umbau quasi kaum moeglich ist, da ein grossteil der funktionen nicht auf strings ausgelegt ist :/


naja wie immer ein grosses Dank an deine gute Hilfe

Gruss
fidel
' schrieb:Kann ich leioder nicht, da die Tabelle noch von anderne Funktionen verwendet wird und dann dürfte ich dort wieder anfangen anzupassen

Aber natürlich geht das...direkt nach dem Lesen wandelst du von 2D-numeric nach 2D-string = Tabelle, und umgekehrt direkt vor dem Schreiben! Was du sonst noch mit den Tabellenwerten machst, ist doch hier gar nicht relevant!
klingt sinnig, wenn ich jetzt noch diese **** umwandlungsfunktionen in der vielzahl von konvertierungsoptionen finde.
ist mir echt unverständlich wie man ein menü so aufbauen kannBig Grin
hinzukommt DE LV vs. EN LV, wobei da die kontexthilfe immerhin ein ansatz is


danke nochmal achim.
Seiten: 1 2
Referenz-URLs