Aceptar datos en forma de columna, convertir a cadenaEstoy tratando de hacer lo siguiente:
Acepte esta entrada del usuario:
A1234965
A1233339
A1234736
A123494Z
A1233114
Conviértalo en la cadena: "A1234965,A1233339,A1234736,A123494Z,A1233114"
Sin límite en cuanto a la longitud de la "columna" ingresada. Quiero que el usuario pegue la "columna" en una ventana emergente que lo solicite, luego almacene esos datos como la cadena anterior. Mi verdadero problema es encontrar una manera de aceptar esa entrada del usuario ("cuadro de edición de texto" no permitirá que se pegue un formato de columna). Entonces, por supuesto, no sé cómo convertir esa entrada al formato de cadena que necesito. Cualquier ayuda sería apreciada. ¡Gracias!
Automatización y secuencias de comandosRe: Aceptar datos en forma de columna, convertir a cadenaUse la función Concat Items()
names default to here(1);
x={"aa","bb"};
y=concat items(x,",");Re: Aceptar datos en forma de columna, convertir a cadenaTendrá que dividir los datos primero usando Palabras() antes de usar Concat Items(). Dependiendo de dónde se peguen los datos, a veces es posible que deba realizar algunas sustituciones antes de usar Words(). Estos se pueden hacer con Regex () usando GLOBALREPLACE o Sustituir()/Sustituir en() .
También podría ser una buena idea eliminar los duplicados (se pueden usar matrices asociativas para esto, si no importa que se ordenen alfabéticamente).
Re: Aceptar datos en forma de columna, convertir a cadenaGracias, definitivamente usaré la función concat. Mi gran problema es aceptar la entrada del usuario. Estarían copiando una columna de una tabla de datos y pegándola en un cuadro de edición. En mi código actual (visto a continuación), solo tomará la primera celda de la columna copiada... Supongo que esto se debe a que estoy usando un "cuadro de edición de texto" y el tipo de datos de texto. ¿Hay un cuadro de edición y un tipo de datos que puedan tomar datos con este formato?:
A1234965
A1233339
A1234736
A123494Z
A1233114
Aquí está mi código actual:
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;
)
)
)
)
);Re: Aceptar datos en forma de columna, convertir a cadenaHola @aidanweb ,
Parece que ya sabe cómo analizar la entrada, pero que la visualización de la entrada le está dando problemas. Puede parecer que el cuadro de edición de texto solo toma una línea cuando, de hecho, todas las líneas se pegan bien, pero la altura del cuadro no le permite verlas (si usa la flecha hacia arriba y hacia abajo en el cuadro de edición verás las otras líneas).
Lo que haría sería ajustar el tamaño del cuadro de edición al hacer que el cuadro de diálogo tenga aproximadamente el tamaño esperado de la pasta. Puedes hacerlo agregando algo como:
b1<<SETNLINES></SETNLINES>

¡Espero que esto ayude!
@Julian
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);
Re: Aceptar datos en forma de columna, convertir a cadena
Re: Aceptar datos en forma de columna, convertir a cadenaComo dije antes, use Words() para dividirlo en una lista. Luego use Concat Items() para combinar esa lista nuevamente en una cadena. Podría ser suficiente usar \!N como separador con Words() pero a veces puede que no funcione correctamente
Names Default To Here(1);
str = "abc
def";
lst = Words(str, "\!N");
str2 = "'" || Concat Items(lst, "','") || "'";
show(str, lst, str2);
Re: Aceptar datos en forma de columna, convertir a cadenaGracias, esto ayuda toneladas. Todavía tengo problemas para convertir la entrada en una lista, formateada así: {"aa", "bb", "cc"}. Pensé que la función de palabras funcionaría de inmediato, ya que la entrada es solo una cadena larga... pero probablemente esté haciendo algo mal. Adjunté una captura de pantalla de mi registro.

Re: Aceptar datos en forma de columna, convertir a cadenaNo incluyeste el delimitador apropiado en el Palabras() función. En su caso, desea un carácter (o caracteres) de fin de línea como delimitador. Consulte la tabla de Secuencias de escape para cadenas entre comillas en el Reglas de sintaxis JSL .
Prueba esto:
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 );
)
)
)
)
);