AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de cadenas
  • Observación sobre la sintaxis "Buscar subcadenas en función de un separador"
  • Función ExtractString y UNICODE
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Permite:
  • extraer una subcadena de una cadena en función de un separador de cadenas especificado.
  • buscar subcadenas en una cadena en función de un separador de cadenas especificado.
Observaciones:
  • La búsqueda de subcadenas es más rápida que la extracción de subcadenas.
  • Puede utilizar un array de separadores. Esto le permite utilizar diferentes separadores al mismo tiempo.
Ejemplos de uso:
  • extraer datos leídos en un archivo externo,
  • extraer información devuelta por las funciones HListFile o HListKey,
  • extraer datos de una lista que contiene diferentes datos en la misma línea.
Ejemplo
Country is string = "France, Italy, Germany, Spain"
ExtractString(Country, 1, ", ")   // Returns "France"
ExtractString(Country, 2, ", ")   // Returns "Italy"
ExtractString(Country, 3, ", ")   // Returns "Germany"
ExtractString(Country, 4, ", ")   // Returns "Spain"
ExtractString(Country, 5, ", ")   // Returns EOT
MyString is string = "Strawberry, Raspberry, Chocolate and Banana"
ExtractString(MyString, 1, [", " , "," , " and "]) // Returns "Strawberry"
ExtractString(MyString, 2, [", " , "," , " and "]) // Returns "Raspberry"
ExtractString(MyString, 3, [", " , "," , " and "]) // Returns "Chocolate"
ExtractString(MyString, 4, [", " , "," , " and "]) // Returns "Banana"
WINDEVUniversal Windows 10 AppJavaCódigo de Usuario (UMC)Procedimientos almacenados
// Search for all the substrings
Country is string = "France, Italy, Germany, Spain"
SubString is string = ExtractString(Country, firstRank, ", ")
WHILE SubString <> EOT
Trace(SubString) // Returns "France", "Italy", "Germany", "Spain"
SubString = ExtractString(Country, nextRank, ", ")
END
WINDEVUniversal Windows 10 AppJavaCódigo de Usuario (UMC)Procedimientos almacenados
// Search for all the substrings
// The separators are in an array
sString is string = "Strawberry, Raspberry<br>Lemon<br>Chocolate and Banana"
sResult is string = ExtractString(sString, firstRank, [", " , " and ", "<br>"])
WHILE sResult <> EOT
Trace(sResult)
sResult = ExtractString(sString, nextRank, [", " , " and ", "<br>"])
END
Sintaxis

Extraer una subcadena en función de un separador de cadenas Ocultar los detalles

<Result> = ExtractString(<Initial string> , <Index> [, <Separator> [, <Search direction>]])
<Result>: Cadena de caracteres
Corresponde a:
  • La subcadena entre el separador en el <Índice> - 1 y el separador en <Índice> si no se especifica el parámetro <Dirección de búsqueda> o es igual a FromBeginning.
  • La subcadena entre el separador en el <Índice> - 1 y el separador en <Índice> desde el final de la cadena si el parámetro <Dirección de búsqueda> corresponde a FromEnd.
  • Toda la <Cadena inicial> si <Cadena inicial> no contiene ningún <Separador> e <Índice> es igual a 1.
  • La constante EOT si <Índice> es mayor que el número de separadores en la cadena.
<Initial string>: Cadena de caracteres
Cadena de caracteres (hasta 2 GB) que contiene la cadena a extraer.
<Index>: Entero
Posición de la subcadena a extraer. Por ejemplo, si el separador es un TAB e <Índice> es igual a 2, la subcadena se extraerá entre el primer y segundo TAB.
<Separator>: Cadena de caracteres opcional o array de cadenas opcional
Este parámetro puede corresponder a:
  • La cadena que delimita las subcadenas. Esta cadena no se incluye en el resultado. Este separador distingue entre mayúsculas y minúsculas.
  • Un array de cadenas. Las diferentes cadenas del array delimitan las subcadenas. Los separadores no se incluyen en el resultado. Estos separadores distinguen entre mayúsculas y minúsculas.
Si no se especifica este parámetro, el separador predeterminado es TAB.
<Search direction>: Constante opcional
Dirección de búsqueda:
FromBeginning
(Valor predeterminado)
Busca del primer al último carácter de la cadena.
FromEndBusca del último al primer carácter de la cadena.
WINDEVUniversal Windows 10 AppJavaCódigo de Usuario (UMC)Procedimientos almacenados

Buscar subcadenas en función de un separador Ocultar los detalles

<Result> = ExtractString(<Initial string> , <Search options> [, <Separator>])
<Result>: Cadena de caracteres
Corresponde a:
  • la siguiente o anterior subcadena dependiendo de la búsqueda especificada. <Resultado> no contiene separadores.
  • la constante EOT al final de la búsqueda.
<Initial string>: Cadena de caracteres
Cadena de caracteres (hasta 2 GB) que contiene la cadena a extraer.
<Search options>: Constante de tipo Integer
Dirección de búsqueda:
firstRankInicia la búsqueda de subcadenas separadas por los delimitadores especificados desde el inicio de la cadena.
lastRankInicia la búsqueda de subcadenas separadas por los delimitadores especificados desde el final de la cadena.
nextRankContinúa la búsqueda iniciada con la constante firstRank
previousRankContinúa la búsqueda iniciada con la constante lastRank
<Separator>: Cadena de caracteres opcional o array de cadenas opcional
Este parámetro puede corresponder a:
  • La cadena que delimita las subcadenas. Esta cadena no se incluye en el resultado. Este separador distingue entre mayúsculas y minúsculas.
  • Un array de cadenas. Las diferentes cadenas del array delimitan las subcadenas. Los separadores no se incluyen en el resultado. Estos separadores distinguen entre mayúsculas y minúsculas.
Si no se especifica este parámetro, el separador predeterminado es TAB.
Observaciones

Observación sobre la sintaxis "Buscar subcadenas en función de un separador"

  • Este tipo de búsqueda solo se puede utilizar en cadenas constantes. Por lo tanto, se debe utilizar un elemento del proyecto (variable, control, campo, etc.) como cadena inicial.
  • Cuando se inicia una búsqueda con las constantes firstRank o lastRank, la información de la búsqueda se almacena en la memoria hasta que se hayan examinado todas las subcadenas. Se recomienda utilizar este tipo de búsqueda solo cuando se deben examinar todas las subcadenas.

Función ExtractString y UNICODE

Los parámetros <Cadena inicial> y <Separador> pueden corresponder a:
  • cadenas ANSI.
  • cadenas UNICODE.
  • buffers.
Se pueden utilizar cadenas ANSI, cadenas Unicode y buffers en los diferentes parámetros de la función.
La siguiente regla de conversión se utiliza para sistemas Ansi (Windows o Linux):
  • Si al menos una de las cadenas es un buffer, todas las cadenas se convierten en buffers y la operación se realiza con buffers.
  • Si no se cumple la primera condición y hay al menos una cadena de caracteres Unicode, todas las cadenas se convierten en Unicode y la operación se realiza en Unicode (la conversión se realiza con el conjunto de caracteres actual, si es necesario).
  • De lo contrario, la operación se realiza en Ansi.
La regla de conversión utilizada para los sistemas Unicode es la siguiente:
  • Si al menos una de las cadenas es un buffer, todas las cadenas se convierten en buffers y la operación se realiza con buffers.
  • De lo contrario, la operación se realiza en Unicode.
Para obtener más información sobre UNICODE, consulte Gestión de UNICODE.
Recordatorio: Los parámetros de idioma se definen al llamar a la función ChangeCharset.
Componente: wd290vm.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
ExtractString exemplo 1
Eu faria assim:

ArrNomes is array of string
X is Int=0
N_exclama is int = stringcount(texto, “!”)
Nome is string
Loop(N_exclama)
X++
Nome=extractString(texto, x, “!”) //começo pro fim
Add(ArrNomes, Nome)
End
Boller
28 11 2023

Última modificación: 22/06/2023

Señalar un error o enviar una sugerencia | Ayuda local