LabVIEWForum.de
Dateien einlesen - Wahl der eigene Formate - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Signaldarstellung (/Forum-Signaldarstellung)
+---- Thema: Dateien einlesen - Wahl der eigene Formate (/Thread-Dateien-einlesen-Wahl-der-eigene-Formate)

Seiten: 1 2


Dateien einlesen - Wahl der eigene Formate - fidel - 19.03.2007 11:06

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


Dateien einlesen - Wahl der eigene Formate - Achim - 19.03.2007 11:36

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


Dateien einlesen - Wahl der eigene Formate - fidel - 19.03.2007 14:08

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



Dateien einlesen - Wahl der eigene Formate - Achim - 19.03.2007 15:05

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.


Dateien einlesen - Wahl der eigene Formate - fidel - 19.03.2007 15:29

' 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


Dateien einlesen - Wahl der eigene Formate - fidel - 20.03.2007 09:56

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


Dateien einlesen - Wahl der eigene Formate - Achim - 20.03.2007 10:59

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


Dateien einlesen - Wahl der eigene Formate - fidel - 20.03.2007 11:34

' 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


Dateien einlesen - Wahl der eigene Formate - Achim - 20.03.2007 11:49

' 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!


Dateien einlesen - Wahl der eigene Formate - fidel - 20.03.2007 11:57

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.