|
|
|
|
- Tipos de cadenas de caracteres
- Caso especial
- 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
Tipos de cadenas de caracteres WLanguage propone diferentes tipos de cadenas de caracteres. 1. Los tipos más comunes son los siguientes: | | | 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).
| | 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.
| | Cadena de longitud variable que contiene solo caracteres UNICODE. | | 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. | | Á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". | 2. También se pueden utilizar otros tipos de cadenas de caracteres:
| | | 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. | | 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). | | 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).
| | 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. | | Cadena de longitud fija que solo contiene caracteres en formato UNICODE. | 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.
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 agrTooltip(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.
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)
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|