AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Sintaxis WLanguage / 
  • Tipos de cadenas de caracteres
  • Caso especial
  • Fixed string y ASCIIZ string
  • Manipular cadenas fijas
  • Atributo de extensión
  • Interpolación de cadenas (construcción dinámica de cadenas)
  • Notas
  • Valor predeterminado
  • Pasar una cadena de caracteres como parámetro a un procedimiento
  • Utilizar comillas en una cadena de caracteres
  • Comparación de los diferentes tipos de cadenas disponibles en WINDEV y WINDEV Mobile
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
Tipos de cadenas de caracteres
WLanguage propone diferentes tipos de cadenas de caracteres.
1. Los tipos más comunes son los siguientes:
  • Character
Carácter codificado en 1, 2 o 4 bytes según el modo de gestión de las cadenas de caracteres y la plataforma de ejecución.
  • En Windows:
    • en Ansi, un carácter está codificado en 1 byte,
    • en Unicode, un carácter está codificado en 2 bytes.
  • En Linux:
    • en Ansi, un carácter está codificado en 1 byte,
    • en Unicode, un carácter está codificado en 4 bytes.
  • En iOS, en Unicode, un carácter está codificado en 4 bytes.
Cuando un carácter está vacío, su valor corresponde a Charact(0).
PHP Cuando un carácter está vacío, su valor corresponde a una cadena vacía.
WEBDEV - Código Servidor Observación:
  • Si la configuración actual utiliza cadenas ANSI en tiempo de ejecución, las variables de tipo Character serán caracteres ANSI (comportamiento predeterminado).
  • Si la configuración actual utiliza cadenas Unicode en tiempo de ejecución, las variables de tipo Character serán caracteres Unicode.
Recordatorio: Para cambiar el formato de las cadenas de caracteres en la configuración actual:
  1. Abra la ventana de descripción del proyecto: en la pestaña "Proyecto", en el grupo "Proyecto", haga clic en "Descripción".
  2. En la pestaña "Proyecto", haga clic en el botón "Descripción de la configuración".
  3. En la ventana que aparece, vaya a la pestaña "Unicode" y seleccione el modo deseado.
WEBDEV - Código Navegador El tipo Character no está soportado. Es reemplazado por el tipo String.
  • Ansi string
Cadena de longitud variable que contiene solo caracteres ANSI.
Este formato es necesario para manipular:
  • archivos XML
  • archivos RTF
  • archivos PDF
  • funciones que utilizan el formato UTF8, etc.
  • Unicode string
Cadena de longitud variable que contiene solo caracteres UNICODE.
WEBDEV - Código Servidor En una configuración que utiliza cadenas Ansi en tiempo de ejecución, este tipo de cadena puede ser devuelto por la función AnsiToUnicode o por una de las funciones de gestión de cadenas Unicode.
Para obtener más información, consulte Gestión de Unicode.
WEBDEV - Código Servidor Este tipo de cadena de caracteres se utiliza de forma predeterminada si la configuración actual utiliza cadenas Unicode en ejecución.
WEBDEV - Código Navegador Este tipo de cadena de caracteres no está soportado. Es reemplazado por el tipo String.
PHP Este tipo de cadena de caracteres no está soportado.
  • String
Cadena de tamaño dinámico.

El tipo "String" es específico de WLanguage. Con este tipo, no es necesario declarar la longitud de la cadena. Esta puede variar al utilizar la variable.
WEBDEV - Código Servidor Observación:
  • Si la configuración actual utiliza cadenas ANSI en tiempo de ejecución, las variables de tipo String serán cadenas ANSI (comportamiento predeterminado).
  • Si la configuración actual utiliza cadenas Unicode en tiempo de ejecución, las variables de tipo String serán cadenas Unicode.
Recordatorio: Para cambiar el formato de las cadenas de caracteres en la configuración actual:
  1. Abra la ventana de descripción del proyecto: en la pestaña "Proyecto", en el grupo "Proyecto", haga clic en "Descripción".
  2. En la pestaña "Proyecto", haga clic en el botón "Descripción de la configuración".
  3. En la ventana que aparece, vaya a la pestaña "Unicode" y seleccione el modo deseado.
WEBDEV - Código Navegador Este tipo de cadena de caracteres está en formato Unicode.
  • Buffer
Área de memoria binaria. Permite escribir un código que puede ser compartido entre WINDEV y WINDEV Mobile para manipular datos en bruto. Para obtener más información, consulte el tipo "Buffer".
WEBDEV - Código Navegador El tipo Buffer no está soportado.
2. También se pueden utilizar otros tipos de cadenas de caracteres:
  • String on
Cadena de longitud fija, terminada con un 0 binario (como en C). El tamaño especificado es el número máximo de caracteres de la cadena.
Este tipo de cadena de caracteres permite crear un código compatible WINDEV/WINDEV Mobile al llamar a las API existentes desde ambas plataformas.
WEBDEV - Código Servidor Este tipo de cadena de caracteres está en formato ANSI.
  • ASCIIZ string on
Cadena terminada con un 0 binario (como en C).
El tamaño de una cadena ASCIIZ no puede exceder 2 GB. La longitud de la cadena ASCIIZ debe ser igual a la longitud de la cadena más 1 (para el cero binario).
WEBDEV - Código Navegador El tipo ASCIIZ String no está soportado. Es reemplazado por el tipo String.
  • Fixed string on
Cadena de longitud fija.
El tamaño de una cadena fija no puede exceder 2 GB. La cadena de caracteres se completa:
  • con 0 si la variable aún no está asignada.
  • con espacios si es necesario si la variable está asignada (similar al tipo "String" de Basic).
WEBDEV - Código Navegador El tipo Fixed String no está soportado. Es reemplazado por el tipo String.
  • Pascal string on
Cadena precedida por un byte que especifica la longitud (similar a Pascal). Este byte no es accesible. Por ejemplo, string[1] representa el primer carácter de la cadena y no su longitud.
La longitud de una cadena Pascal no puede exceder 255 caracteres. La longitud de la cadena Pascal debe ser igual a la longitud de la cadena.
WEBDEV - Código Navegador El tipo Pascal String no está soportado. Es reemplazado por el tipo String.
  • Unicode string on
Cadena de longitud fija que solo contiene caracteres en formato UNICODE.
WEBDEV - Código Navegador Este tipo de cadena de caracteres no está soportado. Es reemplazado por el tipo String.
PHP Este tipo de cadena de caracteres no está soportado.
Observaciones:
  • El tipo "String on" debe utilizarse para enviar parámetros de entrada/salida a una API de Windows.
  • Todos los tipos avanzados (excepto "String") son compatibles con los otros lenguajes de programación (Turbo Pascal Windows, C, Visual Basic Windows, etc.) o para recibir el resultado de una API de Windows.
  • WINDEV Mobile y WINDEV no admiten los mismos tipos de cadenas de caracteres. Para obtener más información sobre los diferentes tipos de cadenas de caracteres, consulte la sección Notas.
Caso especial
WEBDEV - Código ServidorWindowsPHP

Fixed string y ASCIIZ string

  • Al declarar una cadena ASCIIZ o una cadena fija, se asigna inmediatamente la memoria necesaria. Por lo tanto, debe evitar utilizar cadenas demasiado grandes.
  • La cadena fija se completa con espacios. Inicializar y asignar una cadena de gran tamaño (varios cientos de kilobytes) puede llevar bastante tiempo.
WEBDEV - Código NavegadorWindows

Manipular cadenas fijas

Las cadenas fijas no están disponibles en Java. Son reemplazadas en ejecución por el tipo String.
Sin embargo, se puede utilizar la función Complete en una variable de tipo String:
MaChaîne is string
MaChaîne = Complete("Test", 10)
// Equivalent à
// MaChaîne est une chaîne fixe sur 10 caractères
// MaChaîne = "Test"

Atributo de extensión <uindetectable>

El atributo de extensión <undetectable> oculta el valor de una cadena almacenada en memoria (por ejemplo, en un archivo de volcado de memoria).
De forma predeterminada (si no se especifica el atributo de extensión <undetectable>), todos los caracteres asignados a una variable de tipo String son visibles en un archivo de volcado de memoria. Estos caracteres aparecen junto con todos los datos en el archivo de volcado: esto hace imposible determinar cuál es la cadena, dónde empieza y dónde termina.

El atributo <undetectable> ofusca el valor almacenado en memoria. El valor de la cadena no se puede determinar basándose en los caracteres visibles en el archivo de volcado.
Este atributo de extensión es especialmente útil para almacenar un nombre de usuario o una contraseña en memoria, pasar una contraseña a la función HPass, o conectarse a una base de datos.
Ejemplo:
MyStringInMemory is string <undetectable>
MyStringInMemory = "Password"
Observaciones:
  • El uso del atributo de extensión <undetectable> puede ralentizar la aplicación. Solo debe utilizarse en cadenas que lo requieran.
  • El atributo de extensión <undetectable> no está disponible para cadenas de longitud fija.
Interpolación de cadenas (construcción dinámica de cadenas)
La interpolación de cadenas consiste en combinar variables (o expresiones) y cadenas. Para ello, WLanguage cuenta con:
  • Una opción específica en la pestaña "Compilación" de la ventana de descripción del proyecto: Permitir "[% %]" en las cadenas.
  • Una sintaxis específica:
    [%VariableName or Expression%]
    Por ejemplo:
    // Ask for customer confirmation
    IF YesNo(Yes, "Do you confirm the creation of customer [%sCustomerName%]") = No THEN
    RETURN
    END
Observaciones:
  • Si la opción no está seleccionada en la pestaña "Compilación" de la ventana de descripción del proyecto, la cadena aparece tal cual: el nombre de la variable (o expresión) aparece en la cadena.
  • Utilice "-%" antes de los caracteres "[% %]" para que no se interpreten. Algunas funciones WLanguage requieren esta sintaxis específica. Ejemplo:
    grTooltip(GR_Deadline, grTooltipFormat, "[%CATEGORY%]" + CR + CR+ "[%VALUE%]" + " H")
    cambia a
    grTooltip(GR_Deadline, grTooltipFormat, -%"[%CATEGORY%]" + CR + CR + -%"[%VALUE%]" + " H")
  • Al traducir este tipo de cadenas, el nombre de la variable (o expresión) dentro de [% %] no debe traducirse. Sin embargo, puede mover la etiqueta [%VariableName or Expression%] dentro de la cadena.
Notas

Valor predeterminado

  • Una variable de tipo "String" o "String on" declarada pero no inicializada corresponde a una cadena vacía ("").
  • Una variable de tipo "Buffer" declarada pero no inicializada está vacía.
  • Una variable de tipo "Buffer on" declarada pero no inicializada se completa con 0.

Pasar una cadena de caracteres como parámetro a un procedimiento

Se puede pasar una variable de tipo "String" como parámetro a un procedimiento.
Atención: Si la variable tiene una longitud fija, debe eliminar los espacios. Por ejemplo:
MyString is string
MyString = "WINDEV is great"
// Delete spaces from MyString
MyString = NoSpace(MyString)
CountLetter(MyString)
// CountLetter is a procedure

Utilizar comillas en una cadena de caracteres

Para utilizar comillas en una cadena de caracteres, deben duplicarse.
Por ejemplo:
MyString is string
MyString = "The ""General conditions"" option must be checked"
Info(MyString)
// Displays: The "General conditions" option must be checked
WEBDEV - Código ServidorWindows

Comparación de los diferentes tipos de cadenas disponibles en WINDEV y WINDEV Mobile

WINDEV/WEBDEV
Formato de cadena
WINDEV Mobile
Formato de cadena
StringANSIUnicode
CharacterANSIUnicode
ASCIIZ string onCadena ANSI de N caracteresno disponible
Fixed string onCadena ANSI de N caracteresno disponible
Pascal string onCadena ANSI de N caracteresno disponible
Unicode stringUnicodeUnicode
BufferBinarioBinario
String onCadena ANSI de N caracteresCadena Unicode de N caracteres
Unicode string onCadena Unicode de N caracteresCadena Unicode de N caracteres
Buffer onMemo binario de N bytesMemo binario de N bytes
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: 08/09/2023

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