GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » LVUG » LVUG - Technische Fragen » Erkennung des Datentyps und seiner Darstellung
Erkennung des Datentyps und seiner Darstellung [message #881] Thu, 02 September 2004 11:12 Go to next message
Dominik Wöll is currently offline  Dominik Wöll
Messages: 34
Registered: April 2004
Location: Konstanz
continuous participant
From: *chemie.uni-konstanz.de
Hallo Leute,

Ich würde gerne ein Sub-VI erzeugen, das als Eingang eine Referenz zu einem Objekt hat, welches einen unterschiedlichen Datentyp und eine unterschiedliche Darstellung (also z.B. I8, U32,...) haben kann (ich glaube, so etwas nennt man polymorph, oder?). Das Sub-VI soll dann den Wert des Objekts je nach Datentyp und Darstellung unterschiedlich bearbeiten und in die entsprechende Ausgangs-Variable schreiben.

Konkretisiert:
Ich habe eine Textdatei mit
Name[TAB]Testmessung[RETURN]
Zeitpunkt[TAB]20.1[RETURN]
Wellenlänge[TAB]400[RETURN]
...
Nun möchte ich mit einem Sub-VI je nach Bedarf in die String-Variable "Name" den Wert "Testmessung" schreiben können, in die Dbl-Variable "Zeitpunkt" den Wert "20.1" und in die I16-Variable den Wert "400".


Wie geht das? Wenn mir jemand vielleicht ein kleines Beispielprogramm erstellen könnte, wäre ich sehr froh.

Viele Grüße vom heute traumhaften Bodensee,
Dominik
Re: Erkennung des Datentyps und seiner Darstellung [message #884 is a reply to message #881] Thu, 02 September 2004 22:28 Go to previous messageGo to next message
Franz Josef Ahlers is currently offline  Franz Josef Ahlers
Messages: 22
Registered: January 2004
occasional visitor
From: *dip0.t-ipconnect.de
Wenn ich das recht sehe, hast Du nur einen Datentyp, nämlich STRING, da es sich ja um eine TEXTdatei handelt.

Name[TAB]Testmessung[RETURN]
Zeitpunkt[TAB]20.1[RETURN]
Wellenlänge[TAB]400[RETURN]

In dem konkreten Beispiel hast Du die Variablennamen 'Name', 'Zeitpunkt', 'wellenlänge', welche die Werte 'Testmessung', '20.2' und '400' annehmen.

Ich vermute, Du willst die Werte IN DER DATEI überschreiben (und die Datei enthält vermutlich nach diesen drei Zeilen noch weitere Einträge)?
Dann würde ich als einfachste Lösung die ganze Datei einlesen, in einen Array[of Cluster(Variablenname,Variablenwert)] umwandeln, das ersetzen, was zu ersstzen ist und alles wieder zurückschreiben (evtl. zwischendurch back-up Kopie erzeugen)


(Ich glaub, heut war es überall traumhaft, zumindest nach Feierabend... )


-Franz
Re: Erkennung des Datentyps und seiner Darstellung [message #893 is a reply to message #884] Tue, 07 September 2004 11:10 Go to previous messageGo to next message
Dominik Wöll is currently offline  Dominik Wöll
Messages: 34
Registered: April 2004
Location: Konstanz
continuous participant
From: *chemie.uni-konstanz.de
Dann würde ich als einfachste Lösung die ganze Datei einlesen, in einen Array[of Cluster(Variablenname,Variablenwert)] umwandeln, das ersetzen, was zu ersstzen ist und alles wieder zurückschreiben (evtl. zwischendurch back-up Kopie erzeugen)]

Das Problem ist, dass in dem Dateiinhalt auch mal eine Zeile ausgelassen wird. Das Sub-VI soll als Eingang den Dateiinhalt (als String) und den eine Referenz haben. Der Name der Referenz ist zugleich der Name des Wertes der ausgelesen werden. Je nach Format der Referenz soll der String aus der Datei entsprechend umgewandelt werden. Eine Nummer gibt im Moment noch die Zeilennummer an, aber dies möchte ich demnächst durch eine automatische Erkennung des Textes ersetzen.

Um dies zu veranschaulichen, habe ich als Beispiel drei Sub-VIs angefügt. Eines wird benutzt, wenn die Referenz eine Zahl, das andere, wenn sie ein Ring, und das dritte, wenn sie ein String ist. Dies würde ich aber gern in einem VI haben.
Das ganze funktioniert bereits so, aber ich würde gerne wissen, ob ich es noch optimieren und die drei VIs zu einem machen kann.
Re: Erkennung des Datentyps und seiner Darstellung [message #895 is a reply to message #893] Tue, 07 September 2004 21:39 Go to previous messageGo to next message
Franz Josef Ahlers is currently offline  Franz Josef Ahlers
Messages: 22
Registered: January 2004
occasional visitor
From: *dip0.t-ipconnect.de
Ich hoffe ich hab jetzt verstanden was du meinst.

3 Vorschläge:
1) falls du das Professional Development System hast, kannst Du damit Polymorphe VIs schreiben; ich hab das PDS nicht, kann also kein konkretes Beispiel für deinen Fall liefern

2) vielleicht kannst du die 'Configuration File VIs' nutzen, die im Funktionsmenü-->File enthalten sind (das sind die VIs, mit denen man .ini Dateien lesen und parsen kann). In .ini Dateien habe die Einträge die Form
name=wert
d.h. du müsstest in deinem input string das [TAB] durch ein = ersetzen. Jedenfalls sind die 'Configuration File VIs' polymorph und für 'Nicht-PDS-Besitzer' nutzbar. Ring-controls machen aber vermutlich Probleme

3) schau das angehängte Beispiel an. Dort ist polymorphie durch Nutzung von Variants erzielt. Häng im block diagramm mal die verschiedenen refnums an die subVI und schau was passiert. (Ring controls funktionieren aber ebenfalls nicht, ich seh zwar einen Weg, aber der Aufwand scheint mir zu hoch)

icon14.gif  Re: Erkennung des Datentyps und seiner Darstellung [message #897 is a reply to message #881] Wed, 08 September 2004 16:27 Go to previous messageGo to next message
Dominik Wöll is currently offline  Dominik Wöll
Messages: 34
Registered: April 2004
Location: Konstanz
continuous participant
From: *chemie.uni-konstanz.de
Lieber Franz Josef Ahlers,

vielen Dank für die Hilfe. Es funktioniert mit Deinem Beispiel genauso, wie ich mir das vorgestellt habe. Smile
Eine Frage hätte ich aber noch:
Ich habe als Referenzen Cluster mit verschieden Inhaltsstrukturen und möchte diese als Eingang für ein Sub-VI haben. Das ganze klappt aber nicht. Wenn die Cluster unterschiedliche Strukturen habe, kommt eine gebrochene Verbindung Sad . Mache ich das ganze aber ohne Sub-VI, dann geht es. Woran liegt das, und wie kann man das Problem lösen?
Als Beispiel habe ich ein VI mit dazugehörigem Sub-VI im attachment.

Viele Grüße,
Dominik
Re: Erkennung des Datentyps und seiner Darstellung [message #898 is a reply to message #897] Wed, 08 September 2004 17:55 Go to previous messageGo to next message
Franz Josef Ahlers is currently offline  Franz Josef Ahlers
Messages: 22
Registered: January 2004
occasional visitor
From: *dip0.t-ipconnect.de
Hallo Dominik,

Deine attachments laufen bei mir ohne Fehler. Wo liegt der Fehler? Kannst Du eine Version schicken, die NICHT läuft?

-Franz
icon14.gif  Re: Erkennung des Datentyps und seiner Darstellung [message #899 is a reply to message #898] Thu, 09 September 2004 09:26 Go to previous message
Dominik Wöll is currently offline  Dominik Wöll
Messages: 34
Registered: April 2004
Location: Konstanz
continuous participant
From: *chemie.uni-konstanz.de
Hallo Franz Josef,

jetzt funktioniert es bei mir auch. Ich weis allerdings nicht, was beim ersten Versuch falsch war.
Wie auch immer, vielen Dank für die sehr nützlich Hilfe!

Dominik

Previous Topic: Feste Zeichbreite bei String- bzw. Numerischer Eingabe
Next Topic: Treiber für Functionmeter gesucht
Goto Forum:
  


Current Time: Mon Oct 07 22:20:02 CEST 2024

Total time taken to generate the page: 0.00889 seconds