LabVIEWForum.de
feste Stringlänge; entweder mit "Blanks" auffüllen oder abschneiden - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: feste Stringlänge; entweder mit "Blanks" auffüllen oder abschneiden (/Thread-feste-Stringlaenge-entweder-mit-Blanks-auffuellen-oder-abschneiden)

Seiten: 1 2


feste Stringlänge; entweder mit "Blanks" auffüllen oder abschneiden - Dommas - 27.08.2010 09:44

Hallo zusammen!

Ich habe mal wieder eins von meinen spezial-Problemen:

Ich muss die Länge eines Strings auf 15 Zeichen beschränken, und ggf mit Blanks auffüllen. Soweit kein Problem und funktioniert auch (erster Teil der Sequenz unten). Wenn ich hier in den Inputstring was reinschreibe schneidet er mir das genau so ab wie ich das gerne hätte und zeigt mir auch alles so an wie ich es brauche.

Mein Problem ist jetzt, dass ich kein "normales" String-Element habe, sondern es Teil eines Clusters ist und von diesem Cluster aus befüllt werden soll und, an anderer Stelle, das Cluster quasi einfach angezeigt wird.
Hier schaffe ich es aber einfach nicht auf das gleiche Ergebnis wie oben zu kommen.

Hat von Euch jemand einen Tip für mich? Wenn es auch noch ohne die Sequenz geht wäre das natürlich noch toller.
Danke schon mal!
Gruß
Dommas


Lv09_img2


feste Stringlänge; entweder mit "Blanks" auffüllen oder abschneiden - SeBa - 27.08.2010 09:55

Dein Beispiel funktioniert doch... also ich versteh die Frage nicht...


Lass einfach die lokalen Variablen weg und zieh Drähte.. dann brauchst du auch keine Sequenzstruktur.



Gruß SeBa


feste Stringlänge; entweder mit "Blanks" auffüllen oder abschneiden - M Nussbaumer - 27.08.2010 10:04

Ein (String)-Control aus einem Cluster kannst du so auslesen:

Labview 8.5:
[attachment=29049]

Vorrausetzung ist, dass du das Label nicht mehr änderst.

Hoffe das hilft dir weiter

Gruss MNussbaumer


feste Stringlänge; entweder mit "Blanks" auffüllen oder abschneiden - Dommas - 27.08.2010 10:07

' schrieb:Dein Beispiel funktioniert doch... also ich versteh die Frage nicht...

im Prinzip schon, aber nicht ganz so, wie ich will.
Im Ausgabe String werden nur 15 Zeichen angezeigt. Aber im Eingabestring kann ich unbegrenzt tippen. Ist ja auch logisch, diesen Wert begrenze ich ja nicht. Eine Lokale Variable wie mit "InputString" kann ich nicht machen; PropertyNode ginge erstellen, aber ich weiß ehrlich gesagt nicht, was ich da auswählen muss.


' schrieb:Lass einfach die lokalen Variablen weg und zieh Drähte.. dann brauchst du auch keine Sequenzstruktur.

Ich würde sagen in diesem Fall brauch ich doch die lokalen Variablen! Ich schaue, ob der Inputstring mehr als 15Zeichen hat. wenn das zutrifft überschreibe ich den aktuellen Wert mit dem von einem Schleifendurchlauf früher.
Wenn ich aus der Case Strukur einen Draht auf das BundleByName mache muss ich den 2ten Case ja auch irgendwie verbinden. Hier brauche ich also auch in jedem Fall eine Variable, oder sehe ich was falsch?

Danke schön!


feste Stringlänge; entweder mit "Blanks" auffüllen oder abschneiden - Dommas - 27.08.2010 10:14

Hallo MNussbaumer,

sorry, aber Dein VI verstehe ich nicht wirklich. Deswegen kann ich das auch nicht so umbauen dass es mir was hilft...
Kannst Du mir das bitte kurz erklären?


EDIT:
Ich habs zwar immernoch nicht verstanden, was ich hier jetzt genau mache, aber ich habs geschafft das Ding so umzubauen, dass es tut, was ich brauchSmile

Danke schön!


feste Stringlänge; entweder mit "Blanks" auffüllen oder abschneiden - M Nussbaumer - 27.08.2010 10:28

Also du liest aus dem Cluster zuerst alle Controls aus:
Das ist das Referenz-Array. Aus der Referenz mit dem Namen des gewünschten Controls liest du dann den Wert aus.

Also:
1) Alle Elemente des Clusters auslesen -> Wir erhalten ein Array mit den Referenzen auf die Elemente des Clusters
2) Mittels der Eigenschaft Label (kA wie das in Deutsch ist) wird nun die gewünschte Referenz rausgefiltert
3) Auslesen des Wertes, da aber Cluster mehrere Datentypen haben kann kommt dort der Datentyp Variant raus
4) Umwandeln des Variant in String

Hoffe das ganze ist jetzt etwas klarer! Solltest du noch Fragen haben oder meine Erklärung zu ungenau sein einfach wieder melden

Gruss MNussbaumer


feste Stringlänge; entweder mit "Blanks" auffüllen oder abschneiden - SeBa - 27.08.2010 10:59

Warum dem User gestatten beliebig lange Strings einzutippen, nur um ihn dann damit zu quälen, dass die signifikanten Stellen 16 bis 23 einfach stillschweigend weggeschnitten werden?

So was z.b: "Versuchsaufbau_Datum_Prüfer_wasauchimmer"

Einfach gleich nur 15 Zeichen erlauben und fertig.

Snippet2009
[attachment=29050]


Gruß SeBa


feste Stringlänge; entweder mit "Blanks" auffüllen oder abschneiden - Dommas - 27.08.2010 11:10

So, habe das Ding jetzt mal ein bischen kommentiert in der Hoffnung dass es mal jemand hilft, wenn er das gleiche Problem hat.

Gruß Dommas


Lv09_img2


feste Stringlänge; entweder mit "Blanks" auffüllen oder abschneiden - Dommas - 27.08.2010 11:13

@SeBa:

Ich habe nie behauptet, dass das nicht einfacher geht! Deswegen habe ich ja diesen Thread eröffnet, weil ich es nicht hinbekommen habe.
Aber kann ich bei Deiner Lösung sagen, "fülle mit Blanks auf, bis der String 15 Zeichen hat"?


feste Stringlänge; entweder mit "Blanks" auffüllen oder abschneiden - SeBa - 27.08.2010 11:43

' schrieb:@SeBa:

Ich habe nie behauptet, dass das nicht einfacher geht! Deswegen habe ich ja diesen Thread eröffnet, weil ich es nicht hinbekommen habe.
Aber kann ich bei Deiner Lösung sagen, "fülle mit Blanks auf, bis der String 15 Zeichen hat"?


Ich hab auch nie bahauptet du hättest behauptet, dass....


Was hindert dich daran, den String aufzufüllen?

Snippet2009
[attachment=29052]



Gruß SeBa