AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de cadenas
  • Encontrar una cadena de caracteres
  • Gestión de ambigüedades
  • Función PositionOccurrence 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
Busca la posición X de una cadena dentro de otra. También examina todas las posiciones de una subcadena dentro de una cadena.
Además, busca la posición X de una de las cadenas de un array.
Ejemplo
n = PositionOccurrence("Antananarivo, Madagascar", "g", 1) // Returns 19
n = PositionOccurrence("Antananarivo, Madagascar", "zen", 1) // Returns 0
n = PositionOccurrence("Antananarivo, Madagascar", "n", 1) // Returns 2
n = PositionOccurrence("Antananarivo, Madagascar", "n", 2) // Returns 5
// Find the third "a" starting from the end:
// The position is given from the beginning
n = PositionOccurrence("Antananarivo, Madagascar", "a", 3, FromEnd)
// Returns 18
// Find an array of strings
n = PositionOccurrence("Antananarivo, Madagascar", ["an", "ar"], 1) // Returns 4
n = PositionOccurrence("Antananarivo, Madagascar", ["an", "ar"], 2) // Returns 6
n = PositionOccurrence("Antananarivo, Madagascar", ["an", "ar"], 3) // Returns 8
n = PositionOccurrence("Antananarivo, Madagascar", ["an", "ar"], 4) // Returns 23
// Find positions of all the letters "a" and "A"
MyString is string = "Antananarivo, Madagascar"
MyPosition is int = PositionOccurrence(MyString, "a", firstRank, IgnoreCase)
WHILE MyPosition <> 0
Trace(MyPosition) // Returns 1, 4, 6, 8, 16, 18, 20, 23
MyPosition = PositionOccurrence(MyString, "a", nextRank, IgnoreCase)
END
// Find positions of all the letters "a", "A", "r" and "R"
MyString is string = "Antananarivo, Madagascar"
MyPosition is int = PositionOccurrence(MyString, ["a", "r"], firstRank, IgnoreCase)
WHILE MyPosition <> 0
Trace(MyPosition) // Returns 1, 4, 6, 8, 9, 16, 18, 20, 23, 24
MyPosition = PositionOccurrence(MyString, ["a", "r"], nextRank, IgnoreCase)
END
// Find positions of all the letters "an" and "ar"
MyString is string = "Antananarivo, Madagascar"
MyArray is array of 2 strings
ArrayAdd(MyArray, "an")
ArrayAdd(MyArray, "ar")
MyPosition is int = PositionOccurrence(MyString, MyArray, firstRank, IgnoreCase)
WHILE MyPosition <> 0
Trace(MyPosition) // Returns 1, 4, 6, 8, 23
MyPosition = PositionOccurrence(MyString, MyArray, nextRank, IgnoreCase)
END
Sintaxis

Buscar la posición de una subcadena en una cadena Ocultar los detalles

<Result> = PositionOccurrence(<Initial string> , <Search string> , <Index of occurrence to search for> [, <Search options>])
<Result>: Entero
Si <Cadena buscada> es una cadena de caracteres, el resultado es la posición del primer carácter de la ocurrencia a buscar en la cadena inicial o 0 si no se encuentra la cadena buscada.
Si <Cadena buscada> es un array de cadenas, el resultado es la posición del primer carácter de la primera cadena encontrada en el array de cadenas o 0 si no se encontró ninguna cadena en el array.
<Initial string>: Cadena de caracteres
Cadena en la que se realizará la búsqueda (tamaño máximo: 2 GB).
<Search string>: Cadena o array de cadenas
Este parámetro puede corresponder a:
  • La cadena que se buscará en la cadena inicial.
  • Un array de cadenas que se buscarán en la cadena inicial.
<Index of occurrence to search for>: Entero
Número de la instancia de <Cadena buscada>. <Resultado> contendrá la posición de esta instancia.
Si este parámetro es menor que 1, el valor de <Resultado> es 0.
Si el valor de este parámetro es mayor que el número de caracteres en <Cadena inicial>, <Resultado> es igual a 0.
<Search options>: Constante opcional
Indica la dirección y las opciones de la 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
IgnoreCaseBusca sin distinguir entre mayúsculas, minúsculas o acentos
WholeWordBusca una palabra completa (entre caracteres de puntuación o espacios)

Examinar las posiciones de una subcadena en una cadena Ocultar los detalles

<Result> = PositionOccurrence(<Initial string> , <Search string> , <Browse options> [, <Search options>])
<Result>: Entero
Si <Cadena buscada> es una cadena de caracteres, el resultado es la posición de la primera instancia (dependiendo de la dirección de búsqueda) en la cadena inicial o 0 si se ha completado la búsqueda.
Si <Cadena buscada> es un array de cadenas, el resultado es la posición del primer carácter de la anterior o siguiente instancia (dependiendo de la dirección de búsqueda) en el array de cadenas o 0 si se ha completado la búsqueda.
<Initial string>: Cadena de caracteres
Cadena en la que se realizará la búsqueda (tamaño máximo: 2 GB).
<Search string>: Cadena o array de cadenas
Este parámetro puede corresponder a:
  • La cadena que se buscará en la cadena inicial.
  • Un array de cadenas que se buscarán en la cadena inicial.
<Browse options>: Constante de tipo Integer
Dirección de recorrido:
firstRankInicia la búsqueda de subcadenas separadas por la <Cadena buscada> especificada desde el inicio de la cadena.
lastRankInicia la búsqueda de subcadenas separadas por la <Cadena buscada> especificada 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
<Search options>: Constante opcional
Indica la dirección y las opciones de la 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
IgnoreCaseBusca sin distinguir entre mayúsculas y minúsculas.
WholeWordBusca una palabra completa (entre caracteres de puntuación o espacios)
Observaciones

Encontrar una cadena de caracteres

De forma predeterminada, la búsqueda distingue entre mayúsculas y minúsculas: las mayúsculas y minúsculas de la cadena buscada deben ser idénticas a las de la subcadena en la cadena inicial. Para realizar una búsqueda que no distinga entre mayúsculas y minúsculas, utilice la constante IgnoreCase.

Gestión de ambigüedades

Cuando las cadenas buscadas son subcadenas de otras cadenas en el array, se tienen en cuenta las cadenas más largas.
Ejemplo: Si se debe buscar el array de cadenas ["bien", "bienvenida", "bienvenido"] en "No está bien visto no darle la bienvenida a los invitados", la primera instancia encontrada será "bienvenida" (y no "bien").
Reportes y Consultas

Función PositionOccurrence y UNICODE

Los parámetros <Cadena inicial> y <Cadena buscada> 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
Haga clic en [Agregar] para publicar un comentario

Última modificación: 05/07/2023

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