Akzeptieren Sie Daten in Form einer Spalte und konvertieren Sie sie in einen StringIch versuche Folgendes zu tun:
Akzeptieren Sie diese Eingabe vom Benutzer:
A1234965
A1233339
A1234736
A123494Z
A1233114
Konvertieren Sie es in die Zeichenfolge: „A1234965,A1233339,A1234736,A123494Z,A1233114“
Die Länge der eingegebenen „Spalte“ ist unbegrenzt. Ich möchte, dass der Benutzer die „Spalte“ in ein Popup-Fenster einfügt, in dem er danach fragt, und diese Daten dann als obige Zeichenfolge speichert. Mein eigentliches Problem besteht darin, eine Möglichkeit zu finden, diese Eingaben vom Benutzer zu akzeptieren („Textbearbeitungsfeld“ lässt kein Spaltenformat einzufügen). Dann weiß ich natürlich nicht, wie ich diese Eingabe in das benötigte String-Format umwandeln soll. Jede Hilfe wäre dankbar. Danke!
Automatisierung und SkripterstellungBetreff: Daten in Form einer Spalte akzeptieren und in einen String konvertierenVerwenden Sie die Funktion Concat Items()
names default to here(1);
x={"aa","bb"};
y=concat items(x,",");Betreff: Daten in Form einer Spalte akzeptieren und in einen String konvertierenSie müssen die Daten zuerst mit aufteilen Wörter() bevor Sie Concat Items() verwenden. Je nachdem, woher die Daten eingefügt werden, müssen Sie manchmal einige Ersetzungen durchführen, bevor Sie Words() verwenden können. Diese können mit durchgeführt werden Regex() mit GLOBALREPLACE oder Substitute()/Substitute Into() .
Es könnte auch eine gute Idee sein, Duplikate zu entfernen (Assoziative Arrays können hierfür verwendet werden, wenn es keine Rolle spielt, dass sie alphabetisch sortiert werden).
Betreff: Daten in Form einer Spalte akzeptieren und in einen String konvertierenVielen Dank, ich werde auf jeden Fall die Concat-Funktion verwenden. Mein großes Problem besteht darin, die Benutzereingaben zu verarbeiten. Sie würden eine Spalte aus einer Datentabelle kopieren und in ein Bearbeitungsfeld einfügen. In meinem aktuellen Code (siehe unten) wird nur die erste Zelle der kopierten Spalte benötigt ... Ich gehe davon aus, dass das daran liegt, dass ich ein „Textbearbeitungsfeld“ und den Datentyp „Text“ verwende. Gibt es ein Bearbeitungsfeld und einen Datentyp, die Daten mit folgendem Format aufnehmen könnten?:
A1234965
A1233339
A1234736
A123494Z
A1233114
Hier ist mein aktueller Code:
Lots = "abc";
w = New Window("Lot(s) of Interest",
Border Box(top(50), bottom(50), Left(50), Right(50),
V List Box(
H Center Box(Text Box("Lot(s) of Interest Input")),
Spacer Box(size(1, 30)),
H List Box(Text Box("Lots: "), b1 = Text Edit Box(Lots)),
Spacer Box(size(1, 10)),
H Center Box(
Button Box("Save",
Lots = b1 << get text;
w << closeWindow;
)
)
)
)
);Betreff: Daten in Form einer Spalte akzeptieren und in einen String konvertierenHallo @aidanweb ,
Es hört sich so an, als ob Sie festgelegt haben, wie der Eintrag analysiert werden soll, die Anzeige des Eintrags jedoch zu Problemen führt. Es mag so aussehen, als ob das Textbearbeitungsfeld nur eine Zeile aufnimmt, obwohl alle Zeilen problemlos eingefügt werden können, die Höhe des Felds jedoch nicht zulässt, dass Sie sie sehen können (wenn Sie im Bearbeitungsfeld mit der Auf- und Abwärtspfeiltaste fahren). Sie werden die anderen Zeilen sehen).
Was ich tun würde, wäre, die Größe des Bearbeitungsfelds beim Erstellen des Dialogfelds auf ungefähr die erwartete Größe des Einfügens voreinzustellen. Sie können dies tun, indem Sie etwas hinzufügen wie:
b1<<SETNLINES></SETNLINES>

Ich hoffe das hilft!
@julianisch
Lots = "abc";
w = New Window("Lot(s) of Interest",
Border Box(top(50), bottom(50), Left(50), Right(50),
V List Box(
H Center Box(Text Box("Lot(s) of Interest Input")),
Spacer Box(size(1, 30)),
H List Box(Text Box("Lots: "), b1 = Text Edit Box(Lots)),
Spacer Box(size(1, 10)),
H Center Box(
Button Box("Save",
Lots = b1 << get text;
w << closeWindow;
)
)
)
)
);
b1<<SetNLines(10)<<set width(150);
Betreff: Daten in Form einer Spalte akzeptieren und in einen String konvertieren
Betreff: Daten in Form einer Spalte akzeptieren und in einen String konvertierenWie ich bereits sagte, verwenden Sie Words(), um es in eine Liste aufzuteilen. Verwenden Sie dann Concat Items(), um diese Liste wieder zu einer Zeichenfolge zusammenzufassen. Es reicht möglicherweise aus, \!N als Trennzeichen bei Words() zu verwenden, aber manchmal funktioniert es möglicherweise nicht richtig
Names Default To Here(1);
str = "abc
def";
lst = Words(str, "\!N");
str2 = "'" || Concat Items(lst, "','") || "'";
show(str, lst, str2);
Betreff: Daten in Form einer Spalte akzeptieren und in einen String konvertierenVielen Dank, das hilft sehr. Ich habe immer noch ein Problem beim Konvertieren der Eingabe in eine Liste mit folgendem Format: {"aa", "bb", "cc"}. Ich hätte gedacht, dass die Wortfunktion sofort funktionieren würde, da die Eingabe nur eine lange Zeichenfolge ist ... aber ich mache wahrscheinlich etwas falsch. Ich habe einen Screenshot meines Protokolls angehängt.

Betreff: Daten in Form einer Spalte akzeptieren und in einen String konvertierenSie haben das entsprechende Trennzeichen vergessen Wörter() Funktion. In Ihrem Fall möchten Sie ein Zeilenendezeichen (oder mehrere Zeilenendezeichen) als Trennzeichen. Siehe die Tabelle der Escape-Sequenzen für Zeichenfolgen in Anführungszeichen im JSL-Syntaxregeln .
Versuche dies:
Names Default To Here( 1 );
Lots = "abc";
w = New Window( "Lot (s) of Interest",
Border Box( top( 50 ), bottom( 50 ), Left( 50 ), Right( 50 ),
V List Box(
H Center Box( Text Box( "Lot (s) of Interest Input" ) ),
Spacer Box( size( 1, 30 ) ),
H List Box( Text Box( ("Lots: ") ), b1 = Text Edit Box( Lots, <<SETNLINES></SETNLINES> //include the delimiters for carriage and new line in the Words() function
newlots = Words( Lots, "\!r\!n" );
Show( Lots );
Show( newlots );
)
)
)
)
);