PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Uso
  • Notas
  • El operador [ y ]
  • El operador [[ y ]]
  • Igualdad flexible e igualdad muy flexible
  • Operadores en los strings de caracteres y UNICODE
  • Posición en un string
  • Funciones WLanguage
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Uso
Las cadenas de caracteres pueden ser manejadas por funciones específicas de WLanguage o por los operadores +, [[ y ]].
Los operadores de los strings son los siguientes:
  • " + ": Para concatenar cadenas
  • " [ " y " ] ": Para concatenar cadenas opcionalmente
  • " [[ " y "]]" (doble corchete al abrir y doble corchete al cerrar): Operador para la extracción de una subcadena
  • " = ": Igualdad estricta
  • " ~= ": Igualdad flexible
  • " ~~ ": Igualdad muy flexible
  • " [= ": Comienza por
Text is string = "San Francisco"
Text[[5]]                // Returns "F"
Text[[5 TO 10]]           // Returns "Franci"
Text[[5 TO]]              // Returns "Francisco"
Text[[TO 10]]              // Returns "San Franci"
Text[[10 ON 4]]          // Returns "isco"
Text + " and New York"      // Returns "San Francisco and New York"
IF Text [= "San" THEN Trace(Text)
Versiones 16 y posteriores
Universal Windows 10 App Esta función está disponible para las aplicaciones de Windows Phone.
Nueva funcionalidad versión 16
Universal Windows 10 App Esta función está disponible para las aplicaciones de Windows Phone.
Universal Windows 10 App Esta función está disponible para las aplicaciones de Windows Phone.
Versiones 17 y posteriores
iPhone/iPad Esta función está disponible para las aplicaciones iPhone/iPad.
Nueva funcionalidad versión 17
iPhone/iPad Esta función está disponible para las aplicaciones iPhone/iPad.
iPhone/iPad Esta función está disponible para las aplicaciones iPhone/iPad.
Versiones 18 y posteriores
Universal Windows 10 App Esta característica está disponible en el modo de aplicaciones de Windows Store.
Widget Android Esta función está disponible en el modo Android Widget.
Nueva funcionalidad versión 18
Universal Windows 10 App Esta característica está disponible en el modo de aplicaciones de Windows Store.
Widget Android Esta función está disponible en el modo Android Widget.
Universal Windows 10 App Esta característica está disponible en el modo de aplicaciones de Windows Store.
Widget Android Esta función está disponible en el modo Android Widget.
Versiones 21 y posteriores
Universal Windows 10 App Esta función está disponible en el modo Universal Windows 10 App.
Apple Watch Esta función está disponible en el modo Apple Watch.
Nueva funcionalidad versión 21
Universal Windows 10 App Esta función está disponible en el modo Universal Windows 10 App.
Apple Watch Esta función está disponible en el modo Apple Watch.
Universal Windows 10 App Esta función está disponible en el modo Universal Windows 10 App.
Apple Watch Esta función está disponible en el modo Apple Watch.
Notas

El operador [ y ]

El operador [ y ] se utiliza para concatenar cadenas opcionalmente.. El separador no se concatena si la cadena de origen es una cadena vacía ("") o si la cadena de origen termina con el separador.
Algunos ejemplos:
  • StartString += [ EndStringString]
    EndString se concatena con StartString sólo si StartString no termina con EndString..
    Por ejemplo:
    StartString = "San Francisco"
    EndString = "Francisco"
    StartString += [EndString]
    // StartString contains "San Francisco"

    StartString = "San "
    EndString = "Francisco"
    StartString += [EndString]
    // StartString contains "San Francisco"
  • StartString += [ MiddleStringString] + EndString
    MiddleString se concatena con StartString sólo si StartString no termina con MiddleString y si EndString no comienza con MiddleString.. El separador no se concatena si la cadena de origen es una cadena vacía ("").
    Por ejemplo:
    StartString = "C:\MyFiles\"
    MiddleString = "\"
    EndString = "MyFile.TXT"
    StartString += [MiddleString] + EndString
    // StartString contains "C:\MyFiles\MyFile.TXT"

    StartString = "C:\MyFiles"
    MiddleString = "\"
    EndString = "\MyFile.TXT"
    StartString += [MiddleString] + EndString
    // StartString contains "C:\MyFiles\MyFile.TXT"

    StartString = "C:\MyFiles"
    MiddleString = "\"
    EndString = "MyFile.TXT"
    StartString += [MiddleString] + EndString
    // StartString contains "C:\MyFiles\MyFile.TXT"
  • MyString = [ StartStringString] + EndString
    StartString se concatena con EndString sólo si EndString no comienza con StartString..
    Por ejemplo:
    StartString = "Type"
    EndString = "Type of programming"
    MyString = [StartString] + EndString
    // StartString contains "Type of programming"

    StartString = "Type"
    EndString = " of programming"
    MyString = [StartString] + EndString
    // StartString contains "Type of programming"
Ejemplos:Ejemplos:
  • Rellenar una cadena con elementos separados por caracteres CR (Carriage Return). El separador no se concatena si la cadena de origen es una cadena vacía..
    ResString is string
    FOR EACH Customer
    ResString += [CR] + Customer.Name
    END
  • Crear una ruta de archivo sin preocuparse por los caracteres "\".
    fOpen(DirectoryName + ["\"] + FileName)

El operador [[ y ]]

El operador [[ y ]] se utiliza para extraer y reemplazar una subcadena.
WEBDEV - Código Navegador El operador [[ y ]] se utiliza para extraer una subcadena solamente.
Algunos ejemplos:
  • CADENAPOREXTRAER[[<Posición>]]
  • CADENAPOREXTRAER[[<Posición>]] = <Nueva cadena>: Reemplaza el carácter encontrado en la cadena por la nueva cadena.
    WEBDEV - Código Navegador La sintaxis mencionada de Above no está disponible en esta versión.
  • CADENAPOREXTRAER[[<Inicio> a <Fin>]]
  • STRINGTOEXTRACT[[<Start> to]]
  • CADENAPOREXTRAER[[a <Fin>]]
  • CADENAPOREXTRAER[[<Iniciar> en <Número>]]
Atención: Si está usando un Procedure que maneja las cuerdas con los operadores [[]], preste atención a la sintaxis usada. Puede modificar sus cadenas de caracteres sin ser consciente de ello..
Por ejemplo, el siguiente Procedure puede modificar parte de la cadena.
PROCÉDURE P(sString)
IF sString THEN sString="5"
// -- Call to the procedure via the line:
p(sVar[[3 TO]])
Para evitar modificar la cadena inicial, el parámetro debe ser pasado por valor:
  • usando paréntesis alrededor del parámetro en la llamada a la Procedure,
  • usando el Palabra clave local en la cabecera del Procedure.
Diferencia con WINDEV 7.5:
  • WINDEV: El operador [[]] utilizado con un valor negativo en el segundo límite devuelve una cadena vacía ("").
  • WINDEV 7.5: El operador [[]] utilizado con un valor negativo en el segundo límite devuelve la cadena completa.
Ejemplo: Análisis de una cadena de caracteres, carácter por carácter: EDT_HTML y EDT_TEXT son 2 controles de edición.
// Variables
sString is string = EDT_HTML
sCharact is string
i is int = 1
// Browse the HTML control
sCharact = sString[[i TO i]]
WHILE i <= Length(sString)
i++
// Process on sCharact here
// Next characters
sCharact = sString[[i TO i]]
END

Igualdad flexible e igualdad muy flexible

La igualdad flexible (~=) y la igualdad muy flexible (~~) operan sólo en las cadenas de caracteres (excepto en las cadenas fijas).. Estos operadores están acostumbrados:
  • no hacen ninguna diferencia entre los caracteres en mayúsculas y en minúsculas,
  • ignorar los caracteres de espacio encontrados antes y después de la cadena cuya prueba debe ejecutarse,
  • ignorar los caracteres acentuados en minúsculas,
  • ignorar los caracteres de espacio y los caracteres de puntuación dentro de las cadenas (sólo igualdad muy flexible).
HFSQL equivalence : Para recuperar la equivalencia a la muy flexible igualdad cuando se realiza una búsqueda en una clave de texto en un archivo HFSQL, se deben configurar las siguientes opciones cuando se describe el elemento en el análisis:
WEBDEV - Código Navegador El operador "Igualdad muy flexible" no está disponible en el código Navegador.

Operadores en los strings de caracteres y UNICODE

Los operadores disponibles son los siguientes:
  • " + ": Para concatenar cadenas
  • " [ " y " ] ": Para concatenar cadenas opcionalmente
  • " [[ " y " ]] " (doble corchete al abrir y doble corchete al cerrar): Operador para la extracción de una subcadena
  • " [= ": Comienza por
Operador "+", "[" y "]"
Se pueden concatenar dos cadenas UNICODE. Una cadena UNICODE y una cadena ANSI no pueden concatenarse.
Observación: Si la concatenación de dos cadenas AINSI se asigna a una cadena UNICODE (y a la inversa), la conversión se realizará implícitamente.
Operador "[[" y "]]"
Todas las sintaxis del operador [[]] están disponibles para las cadenas Unicode.
  • Si la cadena pasada en el parámetro está en formato ANSI, el resultado devuelto por el operador [[]] estará en formato ANSI.
  • Si la cadena pasada en el parámetro está en formato Unicode, el resultado devuelto por el operador [[]] estará en formato UNICODE.
  • Los parámetros de posición y los parámetros de longitud se expresan en número de caracteres.
Observación: Si el resultado del operador [[]] en una cadena ANSI se asigna a una cadena UNICODE (y a la inversa), la conversión se realizará implícitamente.

Posición en un string

  • La posición del primer carácter es set a 1 (y no a 0).
  • Posición devuelve la posición inicial de un string especificado dentro de otro string.

Funciones WLanguage

Los strings de caracteres también pueden ser manejados por las funciones:
Observación: en la mayoría de los casos, los operadores de [[]] son más eficientes que las funciones de WLanguage.
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
EXAMPLE
Procedure StringCountAscii(Texto,Caracter)

x, qtde is int = 0

ntotal is int = Length(Texto)

LOOP(ntotal)
x++
IF Texto[[x]] = Charact(Caracter) // 34 = aspa dupla //58 = : dois pontos
qtde++
END
END

RESULT qtde
BOLLER
06 12 2019