Conjuntos de caracteres
Al contrario que en C, en gambas los string empiezan por la posición 1.
En gambas se utiliza para las strings el juego de caracteres UTF-8 lo que hace que muchas órdenes genéricas de string no funcionen correctamente (cuando intervienen códigos ascii extendidos).

Para resolver esto existe la clase string que tiene las mismas órdenes, pero preparadas para trabajar con UTF-8.

Así por ejemplo
print len("bebé") = 5 (porque en UTF8 los caracteres extendidos tienen dos bytes)
print string.len("bebé") = 4 (porque al utiliza r UTF-8 se entiende que la é tiene dos bytes en vez de uno

Strings vacíos
if string="" then if len(string)=0 then
if string<>"" then if len(string)>0 then

Pero en gambas esto es mas sencillo
if string th en ====> no está vacía
if not string th en ==> está vacía

Comandos para manipulación de strings

len
Devuelve la longitud de un string
longitud=len(string)


Upper Ucase Lower Lcase
Upper y Ucase son sinónimos y convierten una string a mayúsculas
Lower y lcase son sinónimos y convierten una string a minúsculas.
Estos comandos no funcionan con UTF-8

Trim ltrim rtrim
Quita espacios en la string.
ltrim ====> quita los espacios a la izquierda hasta el primer caracter no espacio
rtrim ====> quita los espacios a la derecha hasta el primer caracter no espacio
trim ====> quita los espacios a la izquierda y a la derecha

left, mid, right
Aquí hay serias diferencias con VB

x=left(string,4) ====> extrae los cuatro primeros caracteres por la izquierda
x=left(string) ====> extrae el primer caracter de la izquierda
x=left(string,-5) ====> Si el número de caracteres es negativo entonces indica el número de caracteres a no extraer
left("pepito grillo".-7)="pepito")
x=mid(string,inicio,longitud) ====> extrae a partir de inicio los caracteres especificados en longitud
x=mid(string,inicio) ====> extrae todo desde la posicion inicio
x=mid(string,inicio,-longitud) ====> si la longitud es negativa entonces indica la cantidad de caracteres partiendo de la derecha a no extraer
mid("pepito grillo",2,-7)="epito"
x=right(string,4) ====> extrae los cuatro primeros caracteres de la derecha
x=right(string) ====> extrae el primer caracter de la derecha
x=right(string,-5) ====> Si el número de caracteres es negativo entonces indica el número de caracteres a no extraer
right("pepito grillo",-7)="grillo"

space
crea un string con X espacios
string="Perico" & spaces(10) ====> "Perico "

replace
reemplaza ca da ocurrencia de la plantilla por lo indicado
stringa =replace(strin gb,plantilla ,reemplazo)
stringa =replace("abcdef","bc","xx") ====> stringa="axxdef"

string
devuelve un string con X veces la cadena propuesta
cadena=string(10,".") ====> cadena=".........."

instr rinstr
devuelve la posición de la primera ocurrencia de su bstring en la cadena
rinstr igual pero por la derecha
posicion=instr("0123456789","23") ====> posición = 3
posicion=rinstr("0123456789","23") ====> posición = 6

split
divide una string en varias separadas por un separador indicado.

dim array as string[]
array=split(string,"|")


asc chr
¡Ojo! gambas funciona con UTF-8. Los caracteres del ascii extendido (por encima del 128) no funcionarán bien.
asc(x) devuelve el código ascii de X
chr(x) devuelve el ca racter que corresponde al código ascii X

Bin
Devuelve un string que es la conversión al binario de un valor
x=bin(y) ====> x = valor binario de y

hex
Devuelve un string qu e es la conversión al hexadecimal de un valor
x=hex(y) ====> x = valor hexadecimal de y

str$ val
str convierte un valor numérico a string
val convierte un string en un valor numérico respetando las especificaciones del país de fecha s y números

SConv
Convierte una expresión UTF-8 al juego de caracteres del sistema

Dconv
Convierte una expresión del juego de caracteres del sistema a UTF-8

Conv
Convierte una expresión de un sistema de caracteres a otro

format
formatea un valor con un determinado formato.
Los formatos predefinidos son :
gb.GeneralNumber ====> escribe con doce dígitos decimales. Si el número es muy grande o muy pequeño lo
convierte a formato científico.
gb.fixed ====> equivale a "0.00 "
gb.percent ====> equivale a "###%"
gb.generaldate ====> escribe la fecha solo si tien e info de fecha . Escribe la hora solo si tiene in fo de h ora.
gb.longdate ====> fecha larga
gb.mediumda te ====> fecha media
gb.shortdate ====> fecha corta
gb.longtime ====> h ora larga
gb.mediumtime ====> hora media
gb.shorttime ====> h ora corta
gb.currency ====> usa el símbolo de mon eda na ciona l
gb.interna ciona l ====> usa el símbolo internacional de moneda

Operadores

Concatenar strings
string3=string1 & string2
string1 &=string2 ====> string1 = string 1 & string2

Búsqueda de subcadenas
string like plantilla

Comparación de cadenas
string <> string ====> true si son distintas
string1 < string2 ====> true si string1 es mas corta que string2
string1 <= string2 ====> true si string1 es menor o igual que string2