1c 8.3 funciones de cadena. Nuevas funciones de cadena

  • 24.07.2023

Existen pocos mecanismos para trabajar con cadenas en consultas 1C. Primero, se pueden agregar cadenas. En segundo lugar, se puede tomar una subcadena de una cadena. En tercer lugar, las cadenas se pueden comparar, incluso por patrón. Eso es todo lo que puedes hacer con cadenas.

Adición de cadenas

El operador "+" se usa para agregar cadenas en una consulta. Solo puede agregar cadenas de longitud limitada.

SELECCIONE "Nombre: " + Contratistas.Nombre AS Columna 1 DESDE Directorio.Contratistas AS Contratistas WHERE Contratistas.Referencia = &Referencia

Función de subcadena

SUBCADENA(<Строка>, <НачальнаяПозиция>, <Длина>)

Un análogo de la función Environment() del modelo de objetos. La función Substring() se puede aplicar a datos de tipo cadena y le permite seleccionar un fragmento <Строки> , comenzando con un carácter de número <НачальнаяПозиция> (los caracteres de una cadena se numeran a partir del 1) y la longitud <Длина> caracteres. El resultado de la evaluación de la función tiene un tipo de cadena de longitud variable, y la longitud se considerará ilimitada si <Строка> tiene longitud y parámetro ilimitados <Длина> no es una constante o mayor que 1024.

Si la longitud de la cadena es menor que la especificada en el segundo parámetro, la función devolverá una cadena vacía.

¡Atención! No se recomienda utilizar la función SUBSTRING() para convertir cadenas de longitud ilimitada en cadenas de longitud limitada. En su lugar, es mejor usar el operador de conversión EXPRESS().

Función similar

Si necesitamos asegurarnos de que el atributo de cadena cumple con ciertos criterios, lo comparamos:

SELECCIONE Contrapartes.Nombre AS Columna 1 DESDE Directorio.Contrapartes COMO Contrapartes DONDE Contrapartes.Nombre = "Gazprom"

Pero, ¿y si se necesita una comparación más sutil? ¿No solo por la igualdad o la desigualdad, sino por la similitud con un cierto patrón? Eso es exactamente para lo que se creó la función LIKE.

LIKE: un operador para verificar si una cadena es similar a un patrón. Análogo de LIKE en SQL.

El operador LIKE le permite comparar el valor de la expresión especificada a la izquierda con la cadena de plantilla especificada a la derecha. El valor de la expresión debe ser de tipo cadena. Si el valor de la expresión coincide con la plantilla, el resultado del operador será VERDADERO, de lo contrario será FALSO.

Los siguientes caracteres en la cadena de plantilla son caracteres de servicio y tienen un significado diferente al carácter de cadena:

  • % (porcentaje): una secuencia que contiene cualquier número de caracteres arbitrarios;
  • _ (guión bajo): un carácter arbitrario;
  • […] (uno o más caracteres entre corchetes): cualquier carácter único que figure entre corchetes. Una enumeración puede contener rangos, como a-z, lo que significa cualquier carácter dentro del rango, incluidos los extremos del rango;
  • [^…] (entre corchetes, un signo de negación seguido de uno o más caracteres): Cualquier carácter único que no sea el que aparece después del signo de negación.

Cualquier otro símbolo significa en sí mismo y no lleva ninguna carga adicional. Si es necesario escribir uno de los caracteres enumerados por sí mismo, debe ir precedido de<Спецсимвол>. Mí mismo<Спецсимвол>(cualquier carácter adecuado) se define en la misma declaración después de la palabra clave CARÁCTER ESPECIAL.

El tipo String se encuentra en todos los lenguajes de programación. Es primitivo, y en 1C hay muchas funciones para trabajar con él. En este artículo, consideraremos en detalle las diversas formas de trabajar con tipos de cadena en 1C 8.3 y 8.2 usando ejemplos.

Línea

Para convertir una variable de cualquier tipo en una cadena, existe la función "String ()" del mismo nombre. El parámetro de entrada será la propia variable cuya representación en forma de cadena se desea obtener.

Cadena (Falso) // devuelve "No"
Cadena (12345) // devuelve "12 345"
Cadena(FechaActual()) //"21.07.2017 11:55:36"

Es posible convertir a una cadena no solo tipos primitivos, sino también otros, por ejemplo, elementos de directorios y documentos.

LP abreviado, L abreviado, P abreviado

Los parámetros de entrada de estas funciones son una variable de tipo cadena. Las funciones eliminan caracteres insignificantes (espacios, retornos de carro, etc.): de los lados izquierdo y derecho, solo del lado izquierdo y solo del lado derecho, respectivamente.

abbrl("Se eliminarán los espacios en ambos lados") // "Se eliminarán los espacios en ambos lados"
abbr("Se eliminarán los espacios de ambos lados") // "Se eliminarán los espacios de la izquierda"
abbr("Se eliminarán los espacios en ambos lados") // "Se eliminarán los espacios a la derecha"

Leo, Derecha, Medio

Estas funciones le permiten cortar parte de una cadena. La función Lion() devolverá la parte de la cadena en su lado izquierdo de la longitud especificada. La función "Derecha()" es similar, pero el recorte se realiza a la derecha. La función "Wed ()" le permite especificar el número de carácter desde el cual se seleccionará la cadena y su longitud.

Lion("String variable", 4) // devuelve "Stro"
Right("String variable", 7) // devuelve "variable"
avg("Variable de cadena", 2, 5)// devuelve "troco"

StrLength

La función determina el número de caracteres contenidos en una variable de cadena.

StrLength("Palabra") // el resultado de la ejecución será el número 5

Encontrar

La función permite buscar una parte de una cadena en una variable de cadena. El valor devuelto será un número que indica la posición del comienzo de la cadena encontrada. Si no se encuentran coincidencias, se devuelve cero.

Tenga en cuenta que la búsqueda distingue entre mayúsculas y minúsculas. Si hay más de una aparición de la subcadena de búsqueda en la cadena original, la función devolverá el comienzo de la primera aparición.

Find("uno, dos, uno, dos, tres", "dos") // la función devolverá el número 6

línea vacía

El uso de esta función le permite determinar si una cadena está vacía. Los caracteres insignificantes, como el espacio, el retorno de carro y otros, no se tienen en cuenta.

EmptyString("Vasily Ivanovich Pupkin") // la función devolverá False
EmptyString(" ") // la función devolverá True

V Reg, N Reg, TR Reg

Estas funciones son muy útiles al comparar y convertir variables de cadena. "Vreg()" devolverá la cadena original en mayúsculas, "HReg()" en minúsculas y "TReg()" la formateará de modo que el primer carácter de cada palabra individual esté en mayúscula y todos los caracteres subsiguientes en minúsculas.

VReg("DIRECTOR GENERAL") // valor de retorno - "DIRECTOR GENERAL"
HReg("DIRECTOR GENERAL") // valor de retorno - "CEO"
TReg("DIRECTOR GENERAL") // valor de retorno - "Director General"

StrReemplazar

Esta función es similar al reemplazo en los editores de texto. Le permite sustituir un carácter o conjunto de caracteres por otro en las variables de cadena.

StrReplace("rojo, blanco, amarillo", ",", ";") // devuelve "rojo; blanco; amarillo"

StrNumberRows

La función le permite determinar el número de líneas separadas por un retorno de carro en una variable de texto.

El ciclo en el ejemplo a continuación pasará por tres círculos porque la función StrNumberRows devolverá el valor 3:

Para ind \u003d 1 por StrNumber of Lines ("Line1" + Symbols.PS + "String2" + Symbols.PS + "Line3") Bucle
<тело цикла>
FinCiclo;

StrGetString

Esta función trabaja con texto multilínea de la misma forma que la anterior. Le permite obtener una cadena específica de una variable de texto.

StrGetString("Cadena1" + Símbolos.PS + "Cadena2" + Símbolos.PS + "Cadena3", 2) // devuelve "Línea2"

StrNumberOcurrencias

La función cuenta el número de ocurrencias de un carácter o subcadena en la cadena buscada.

StrNumberInstallations("a;b;c;d; ", ";") // la función devolverá el número 4

Símbolo y código de símbolo

Estas funciones le permiten obtener un carácter por su código Unicode, así como determinar este código por el carácter mismo.

SymbolCode("A") // la función devolverá el número 1 040
SymbolCode(1040) // la función devolverá "A"

Tareas frecuentes cuando se trabaja con cadenas

Concatenación de cadenas

Para concatenar varias cadenas (concatenar) simplemente use el operador de suma.

"Línea 1" + "Línea 2" //el resultado de sumar dos líneas será "Línea 1 Línea 2"

Tipo de conversión

Para convertir un tipo en una cadena, por ejemplo, una referencia a un elemento de diccionario, un número, etc., basta con usar la función "Cadena ()". Funciones como "ShortLP()" también convertirán las variables en una cadena, pero inmediatamente cortando los caracteres insignificantes.

String(1000) // devolverá "1000"

Tenga en cuenta que al convertir un número en una cadena, el programa agrega automáticamente un espacio que separa el millar. Para evitar esto, puede utilizar las siguientes estructuras:

StrReplace(String(1000),Personajes.NPP,"") // devuelve "1000"

String(Format(1000,"CH=")) // devolverá "1000"

Citas en una cadena

Muy a menudo tendrá que lidiar con la necesidad de poner comillas en una variable de cadena. Puede ser un texto de solicitud escrito en el configurador o simplemente una variable. Para resolver este problema, solo necesita establecer dos caracteres de comillas.

Header = String("¡Nosotros somos Horns and Hooves LLC!") // devuelve "¡Somos nosotros Roga and Hooves LLC!"

Multilínea, salto de línea

Para crear un texto de varias líneas, es suficiente agregarle caracteres de salto de línea (Symbols.PS).

MultilineText = "Primera línea" + Caracteres.PS + "Segunda línea"

Cómo eliminar espacios

Para eliminar espacios a la derecha o a la izquierda, puede usar la función "Stretch()" (así como "Scrpt()" y "ScreenP()"):

StringWithoutSpaces = ShortLP(" Muchas letras ") // la función devolverá el valor "Muchas letras"

Si, después de convertir un número en una cadena, necesita eliminar los espacios que no se separan, use la siguiente construcción:

StringWithoutSpaces = StrReplace(String(99999),Characters.NPP,"") // devuelve "99999"

Además, los programadores a menudo usan la siguiente construcción, que le permite eliminar o reemplazar todos los espacios de una variable de texto con otro carácter:

StringWithoutSpaces = StrReplace(" hola", " " ,"") // devuelve "hola"

Comparando cadenas entre sí

Puede comparar términos con el signo igual habitual. La comparación distingue entre mayúsculas y minúsculas.

"hola" = "hola" // devolverá falso
"Hola" = "Hola" // devolverá True
"Hola" = "Adiós" // devolverá Falso

Las características básicas de un lenguaje de programación generalmente incluyen trabajar con números y cadenas. Por lo general, estas características están integradas en el código del compilador (o se implementan clases "base" del lenguaje de programación).

En 1C, las capacidades de trabajar con cadenas están programadas en la propia plataforma. Hoy consideraremos las características de trabajar con cadenas 1C en programas en el lenguaje 1C incorporado.

Valor de línea 1C

1. Empecemos por lo más sencillo. Crear una variable y asignarle un valor constante de cadena se ve así en 1C:

Variable = "¡Hola mundo!";

Si desea especificar un carácter de comillas en un valor de cadena constante 1C, debe duplicarlo ""

Variable = "Hola, "mundo""!";

2. El salto de línea 1C se puede especificar de dos formas a la vez. El primero está usando el símbolo |

Variable = "Hola,
| ¡mundo! ";

El segundo es usar la enumeración del sistema Symbols. Le permite agregar un salto de línea 1C y otros caracteres no imprimibles, como TAB.

Variable = "Hola" + Símbolos.ps + "¡paz!";

3. Las configuraciones en 1C se pueden desarrollar no solo para un idioma (ruso, inglés u otro), sino simultáneamente para varios idiomas. En este caso, el idioma utilizado actualmente se selecciona en la parte inferior de la ventana 1C.

La lista de idiomas se encuentra en la ventana de configuración en la rama General/Idiomas. Cada idioma tiene un identificador corto como es o ing.

Está claro que al programar una configuración de este tipo, las líneas 1C también pueden ser multilingües. Para hacer esto, es posible crear una línea 1C de este tipo especificando a través de; opciones por ID de idioma:

Variable = "ru=""¡Hola, mundo!""; en=""¡Hola, mundo! """;

Si usa la línea 1C formada de esta manera como de costumbre, entonces será lo que está escrito en ella. Para que el sistema lo divida en dos opciones y use la deseada, debe usar la función NStr():

//correcto para configuraciones bilingües
Informe(NStr(Variable));

Atrezzo con línea tipo 1C

El requisito es un campo del directorio/documento 1C. Se diferencia de una variable en un programa en el lenguaje 1C en que su tipo se indica con precisión para el atributo (número, cadena 1C, etc.). Si necesita repasar qué son los accesorios, consulte el tutorial en .

Si especifica el tipo de atributo - línea 1C, también debe especificar los parámetros.

Las cadenas 1C tienen una longitud ilimitada (indicada como longitud = 0) y una longitud limitada, lo que indica el número exacto de caracteres. Las cadenas 1C de longitud ilimitada se almacenan en una tabla SQL separada, por lo que su uso es menos productivo que las limitadas.

Es por eso que el uso de cadenas 1C de longitud ilimitada tiene sus limitaciones: no es posible usarlas en todas partes. Por ejemplo, no es posible como número de documento, código de directorio, medida.

Trabajando con líneas 1C

Para trabajar con cadenas, hay varias funciones integradas de la plataforma 1C.

  • AbbrLP("¡Increíble, pero cierto!")
    Elimina espacios adicionales de la cadena 1C. También se puede usar para convertir cualquier tipo en una cadena 1C (por ejemplo, números).
  • Variable = "Vasya" + Abbrl("más") + "Olya"; //será "Vasya más Olya"
    Un ejemplo de sumar varios valores de cadena 1C. El resultado es una línea 1C.
  • Variable = León("Música", 2); // será "Mu"
    Variable = Promedio("Música", 2, 2); // será "ps"
    Variable = Derechos ("Música", 2); // será "ka"
    Varias opciones para obtener una subcadena a partir de una cadena 1C.
  • Variable = Buscar("Música", "ps"); //Serán 3
    Busque una subcadena en la cadena 1C, comenzando con el carácter 1.
  • Variable = StrLength("Música"); //Serán 6
    Devuelve el número de caracteres de una cadena 1C.
  • Notificar("Hola") //en el cuadro de mensaje en la parte inferior de la ventana 1C
    alert("hola") //diálogo emergente
    Status("Hello") //en la línea de visualización de estado en la parte inferior izquierda
    .

Llevar objetos a la línea 1C

Como sabes, el formato más popular para el intercambio de información estructurada en la actualidad es XML. Incluso la última versión de MS Office Word y Excel guarda archivos en este formato (docx y xlsx respectivamente, cambie la extensión a zip, ábralo en un archivador).

La plataforma 1C para el intercambio de datos ofrece varias opciones, la principal de las cuales también es XML.

1. El método más simple es usar la función ShortLP() o String(). Puede utilizar la función REPRESENTATION() en el texto de la consulta. El resultado de su acción es el mismo: generan una representación de cadena de cualquier objeto 1C para el usuario.

Para el directorio predeterminado, este será su nombre. Para un documento, el nombre, el número y la fecha del documento.

2. Cualquier objeto 1C (con restricciones) se puede convertir a XML y viceversa. El proceso de conversión se llama serialización.

ViewStringXml = XMLString(Valor); // obtener XML del valor 1C
Value1С = XMLValue(Type("CatalogReference.Nomenclature"),ViewStringXml); // obtenga el valor 1C de la cadena XML, debe especificar el tipo de 1C que debe recibirse

3. Existe una forma nativa de la plataforma 1C para convertir cualquier objeto 1C en una cadena. Migró de la versión 1C 7.7. Este formato no es entendido por otros programas, pero entiende otro 1C, lo que facilita su uso para intercambiar entre bases de datos 1C.

Cadena = ValorEnCadenaInt(Valor1S); // obtener la cadena 1C del valor 1C
ValueToFile("C:\MiArchivo.txt", Valor1C); //otra opción, obtenemos un archivo con una cadena guardada del valor 1C
Valor1C = ValorDeCadenaInt(Cadena); // de regreso de la línea 1C
Valor1C = ValorDeArchivo("C:\MiArchivo.txt"); //volver del archivo

Editando las líneas 1C en el formulario

Además de trabajar con cadenas 1C en un programa 1C, por supuesto, me gustaría que el usuario pudiera editarlas. Hay varias posibilidades para esto:

1. La forma más sencilla es solicitar la entrada de la línea 1C bajo demanda. Este método se usa cuando se enseña programación 1C, en la vida se usa con mucha menos frecuencia (¡pero se usa!).

variable = "";
String = EnterValue(Variable, "Ingrese el nombre completo");

2. Para mostrar los detalles del objeto 1C (directorio / documento) o los detalles del formulario (ver), el campo de entrada se usa con mayor frecuencia. Esta es la herramienta más común en 1C para que el usuario trabaje con campos de edición.

3. Las capacidades del campo de entrada se pueden ampliar (consulte las propiedades del campo de entrada, haga clic derecho sobre él para obtener más detalles):

  • Casilla de verificación Modo de edición multilínea
  • Casilla de verificación de edición avanzada (disponible si la casilla de verificación anterior está marcada)
  • Casilla de verificación Modo de contraseña (ver ).

4. Si todas las posibilidades del campo de entrada no son suficientes para usted, hay un editor incorporado. Para agregarlo al formulario, debe agregar el Campo del documento de texto en el menú Formulario / Insertar elemento de control. En sus propiedades, puede especificar el modo de su operación: la propiedad Extensión.

Un campo de documento de texto no se puede vincular directamente a los datos. Es necesario escribir la siguiente función en el manejador de eventos del formulario OnOpening() (ver ):

FormElements.ElementNameTextDocumentField.SetText(StringValue); //aquí ValueString es el texto recibido, por ejemplo, del atributo

Y en el controlador de guardado, por ejemplo, en el botón Guardar, agregue un guardado:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ValueString aquí están los accesorios donde guardamos el valor

5. En la versión 1C 8.2.11, en los formularios administrados, existe una nueva posibilidad de representar la línea 1C: el campo Documento con formato.


Similar al campo de un documento de texto, es necesario configurar al abrir y escribir al guardar el texto usted mismo usando el programa.

  • En el objeto 1C, cuya forma estamos creando (libro de referencia, documento, procesamiento, etc.), agregue un atributo con el tipo Almacenamiento de valor
  • En la función OnReadOnServer(), establezca el texto del atributo

    //aquí Requisito es el atributo agregado del objeto 1C
    //aquí FormattedDocument es el nombre del campo en el formulario de edición
    &En el servidor

    FormattedDocument = CurrentObject.Attributes.Get();
    Procedimiento final

  • En la función BeforeWriteOnServer() o presionando el botón, escriba el texto del campo

    &En el servidor
    Procedimiento OnReadingOnServer(CurrentObject)
    CurrentObject.Attributes = NewValueStorage(FormattedDocument);
    Procedimiento final

Implementado en la versión 8.3.6.1977.

Hemos ampliado el conjunto de funciones para trabajar con cadenas. Hicimos esto para brindarle herramientas más avanzadas para analizar datos de cadenas. Las nuevas funciones serán convenientes y útiles en tareas tecnológicas de análisis de texto. En tareas relacionadas con el análisis de texto que contiene datos en forma formateada. Este puede ser el análisis de algunos archivos recibidos del equipo o, por ejemplo, el análisis de un registro tecnológico.

Todas las acciones que realizan las nuevas funciones, las podrías realizar antes. Con la ayuda de algoritmos más o menos complejos escritos en un lenguaje embebido. Por lo tanto, las nuevas funciones no le brindan ninguna oportunidad fundamentalmente nueva. Sin embargo, le permiten reducir la cantidad de código, hacerlo más simple y comprensible. Además, te permiten agilizar la ejecución de acciones. Porque las funciones implementadas en la plataforma funcionan, por supuesto, más rápido que un algoritmo similar escrito en el lenguaje integrado.

Función de formato StrTemplate()

Esta función sustituye los parámetros en una cadena. La necesidad de tal conversión surge a menudo, por ejemplo, cuando se muestran mensajes de advertencia. La sintaxis de esta función es la siguiente:

Plantilla de cadena(<Шаблон>, <Значение1-Значение10>)

<Шаблон>es la cadena en la que se sustituyen las representaciones de parámetros.

<Значение1> , ... <Значение10>- estos son los parámetros (máximo - diez), cuyas representaciones deben sustituirse en la cadena.

Para especificar un lugar específico en la plantilla en el que desea realizar la sustitución, debe usar marcadores de la forma %1, ... %10. La cantidad de marcadores involucrados en la plantilla y la cantidad de parámetros que contienen valores deben coincidir.

Por ejemplo, el resultado de ejecutar dicho operador:

habrá una línea:

Error de datos en la línea 2 (requiere tipo de fecha)

Función de cadena StrCompare()

Esta función compara dos cadenas sin distinción entre mayúsculas y minúsculas. Por ejemplo, así:

Podría realizar la misma acción antes de usar el objeto ValueComparison:

Sin embargo, usar la nueva función parece más simple. Y además, la función, a diferencia del objeto Value Compare, funciona tanto en el cliente ligero como en el cliente web.

Funciones de cadena StrBeginsC(), StrEndsTo()

Estas funciones determinan si una cadena comienza con una subcadena específica o si una cadena termina con una subcadena específica. El algoritmo de estas funciones no es difícil de implementar en un lenguaje integrado, pero su presencia le permite escribir un código más claro y comprensible. Y trabajan más rápido.

Por ejemplo, son convenientes para usar en la instrucción If:

Funciones para trabajar con cadenas StrSplit(), StrJoin()

Estas funciones dividen la cadena en partes según el delimitador especificado. O viceversa, combinan varias líneas en una, insertando el separador seleccionado entre ellas. Son convenientes para crear o analizar registros, un registro tecnológico. Por ejemplo, puede desmontar fácilmente una entrada de registro tecnológico en partes adecuadas para un análisis posterior:

Función de trabajar con cadenas StrFind()

En lugar de la antigua función Find(), hemos implementado una nueva función que tiene funciones adicionales:

  • Buscar en diferentes direcciones (desde el principio, desde el final);
  • Buscar desde la posición especificada;
  • Busque una ocurrencia con el número especificado (segundo, tercero, etc.).

De hecho, duplica las capacidades de la función anterior. Esto se hace para mantener la compatibilidad con los módulos compilados en versiones anteriores. Se recomienda no utilizar más la antigua función Find().

A continuación se muestra un ejemplo que utiliza las nuevas capacidades de búsqueda. Buscar hacia atrás es útil cuando necesita la última parte de una cadena formalizada, como el nombre completo de un archivo en una URL. Y buscar desde una posición específica ayuda en los casos en los que necesita buscar en un fragmento conocido y no en toda la cadena.

PARTE 1. MÉTODOS (26).

1.1. Métodos básicos (10). Independiente, construido sobre sus algoritmos simples.

Str_Complete() (relleno de derecha a izquierda con caracteres específicos).

Str_Inverse () (inversión - caracteres de derecha a izquierda).

Str_Codes() (códigos de caracteres hasta "," y una matriz con códigos)

Str_Symbols() (cadena de códigos separados por "," o de una matriz con códigos)

Str_ReplaceCharacters() (reemplazando un carácter por otro).

Str_FromArray() (cadena de la matriz de fragmentos separados por un separador)

Str_FindIn() (busca una subcadena (incluida la de la derecha) con el número de entrada especificado).

Str_FindGr() (Busca un grupo de caracteres incluidos en el conjunto de caracteres especificado)

Str_FindNumber() (Busca un número, incluso a la derecha con el número de ocurrencia especificado)

Str_Interpret() (a una matriz, según la sintaxis establecida)

1.2. Métodos derivados (12). En realidad, este es el uso de cuatro métodos-algoritmos generalizados (ver Parte 2)

Str_Number() (desde el principio y desde el final de la cadena, no tenga "miedo" a los caracteres que no son dígitos.

Str_Find() (busca una subcadena (incluyendo mayúsculas y minúsculas y a la derecha) con el número de entrada especificado).

Str_Replace() (búsqueda (incluyendo mayúsculas y minúsculas y a la derecha) y reemplace las subcadenas del delimitador).

Str_Piece() (un trozo de cadena entre las ocurrencias especificadas del delimitador (izquierda o derecha)).

Str_ReplacePiece() (reemplazo en la cadena de origen "pieza" con la cadena especificada).

Str_VArray() (entre las ocurrencias especificadas del delimitador (incluso a la derecha y sin mayúsculas y minúsculas).

Str_MoveBySyllables() (dividido en subcadenas "Hard", con un guión).

Str_MoveWords() (dividido en subcadenas "Suavemente")

Str_Cut() ("Cortar" en subcadenas de longitudes especificadas)

Str_Short() (reemplace el grupo izquierdo de caracteres "reducidos" con una "cadena de reemplazo"

Str_Short() (reemplace el grupo derecho de caracteres "reducidos" con una "cadena de reemplazo"

Str_Short() (reemplace en medio de un grupo de caracteres "reducidos" con una "cadena de reemplazo"

Str_Expand (expansión a la longitud especificada aumentando el número de caracteres especificados)

1.3. Métodos detallados (3). "Elaboración" de una línea con transferencia a una tabla con información detallada.

Str_inTableIn() (a la tabla según el sistema de separadores anidados).

Str_inTableGroup (a la tabla según el filtro multinivel).

Str_inTableNumbers (en una tabla con números y fragmentos entre ellos).

PARTE 2. MÉTODOS-ALGORIMOS GENERALIZADOS (3).

Str_Entry() (métodos ”Buscar” y ”Reemplazar”).

Str_Fragments() (métodos “Pieza”, “ReemplazarPieza”, “ToArray”, “ToTableIn”).

Str_Short() (métodos "Short", "ShortP", "Short", "Expand".

Str_Split() (métodos “Mover por sílabas”, “Mover por palabras”, “Cortar”).

PARTE 3. FUNCIÓN UNIVERSAL.

Es una especie de interfaz de programación condicional que permite

aplicar varios métodos a una cadena a la vez. Implementado como

funciones con siete parámetros ("Demo" se basa en esta función):

Str_(Métodos, Submétodos, Entrada, Param1, Param2, Longitud_Número_Posición, Salida Adicional)

Opciones:

- “Métodos” - varios métodos “combinados” y (o) uno “exclusivo”

(códigos o nombres de un solo carácter, posible a través de ",")

- ”Submétodos” - varias opciones ”combinables” y (o) “exclusivas”

método “exclusivo” (códigos o nombres de un solo carácter);

- “Entrada” - Cadena, matriz o tabla de valores;

- "Param1" - cadena de búsqueda, sustituciones, delimitadores, filtros;

- "Param2" - cadena o símbolos de reemplazo;

- “Length_Number_Position” -Número, Números a través de un separador o una matriz con Números;

- “Salir” - Número o Cadena o Matriz o Tabla de Valores;

Nombres y (o) Códigos de un carácter de métodos-submétodos, así como números en

(Length_Position_Number) puede ser en cualquier caso y separado

cualquiera de los siguientes delimitadores: ”, :;”.

PARTE 4. ALGUNOS EJEMPLOS.

HaveNumbersINSTring=(Str_FindNumbers(InString)<>Indefinido);

HaveDigitsINSTring=(Str_FindGr(InString,"+0123456789")>0);

ThereLatin=(Str_FindGr(VxStr, Str_Interpret("lL"))>0);

HaveSpecifiedSigns=(Str_NfindGr(VxStr, "+ to hornYu.0p9")>0);

IsUnprintable=(Str_FindGr(VxStr, Str_Interpret("-l-L-r-R-P-Z-C"))>0);

PARTE 5. CONCLUSIÓN.

Siempre que sea posible, se gestiona con una sola pasada a lo largo de la línea. El segundo pase - por lo general ya en fragmentos. No usó la función StrNumberOccurrences() incorporada.

Funciones integradas utilizadas: Left(), Right()Mid(),StrLength()

- (posicionar y recuperar parte de una cadena -debe ser "rápido").