Texto
La concatenación necesita Text en ambos lados
+ une dos Text. "Count: " + 5 no es "Count: 5". Es el valor de reserva para tipos mixtos,
Integer 0. Convierta primero los números, los Bool y los identificadores en Text con
StringFormat.
StringFormat(format, value0, value1)
- Reemplaza cada
{0}porvalue0y cada{1}porvalue1. Cualquiera de los dos valores puede ser de cualquier tipo. No existe{2}ni hay especificadores de formato como{0:N2}. - Siempre recibe tres argumentos. Pase
""para un valor que no use:StringFormat("{0} items", n, ""). - Para más de dos valores, anide llamadas o concatene los resultados (consulte el ejemplo de abajo).
- Un Real siempre se muestra con seis decimales (
0.500000). Redondéelo primero a Integer para obtener un número entero, o escálelo (MathRound(r * 100)) para una salida de punto fijo. {0}se reemplaza antes que{1}, así que si el texto devalue0contiene{1}, también se reemplaza.
w = WindowGetActive();
s = StringFormat(StringFormat("{0} x {1} at ", WindowGetWidth(w), WindowGetHeight(w)) + "({0}, {1})",
WindowGetX(w), WindowGetY(w));
UtilityPrint(s); // p. ej. 1280 x 720 at (100, 80)
Medir, buscar, extraer
StringGetLengthcuenta unidades de código UTF-16, no caracteres. Un emoji fuera del plano multilingüe básico cuenta como 2.StringGetIndexOf(text, search)da un índice basado en 0, o-1cuando no se encuentrasearch. Distingue mayúsculas de minúsculas, y no hay un “último índice de” (recórralo con un bucle).StringGetSubstring(text, start, length):startse basa en 0. Unlengthque sobrepasa el final se recorta, y unstarten el final o más allá da"". Unstarto unlengthnegativos son un error y detienen la acción.- No hay sintaxis de indexación (
s[0]). UseStringGetSubstring(s, i, 1)para un carácter. StringContains,StringStartsWith,StringEndsWithyStringReplaceson exactas y distinguen mayúsculas de minúsculas. Para una comprobación que no las distinga, pase antes ambos lados a minúsculas.StringToUpper/StringToLowersiguen las reglas de mayúsculas y minúsculas de la configuración regional del usuario, así que la i con y sin punto del turco se trata correctamente.StringTrimquita los espacios en blanco de ambos extremos, incluido el\rque queda de los finales de línea\r\nde Windows.StringReplaceyStringSplitdetienen la acción si el texto que se busca o el delimitador están vacíos.
Dividir crea una caché que se lee por índice
Un valor no puede contener una lista, así que StringSplit(text, delimiter) guarda las partes en el
contexto del script en ejecución y devuelve cuántas hay. Lea cada parte con
StringGetSplitPartAt(i); un índice fuera del intervalo da "". El siguiente StringSplit del
mismo script reemplaza esa caché, así que copie una parte en una variable antes de dividir otra
cosa. Toda función integrada …EnumerateAll, …FindAll… o …GetAll…, junto con su lector
…EnumeratedAt, funciona del mismo modo.
Comparar texto
== es exacto y distingue mayúsculas de minúsculas. </> comparan de forma ordinal por unidad de
código UTF-16, que no es el orden del diccionario: todas las letras ASCII mayúsculas van antes que
todas las minúsculas, y las letras acentuadas van después de la z. No presente ese orden a un
usuario como si fuera alfabético.