SubStr
Extrai um pedaco de uma string a partir de uma posicao inicial e quantidade de caracteres.
Assinatura: SubStr(cString, nInicio, nQtd) -> cString
Retorna: Character
SubStr() retorna uma substring de cString comecando na posicao nInicio com nQtd caracteres. Pegadinha critica: indice comeca em 1, nao em 0, e o terceiro parametro e quantidade — nao posicao final.
Sintaxe
cResultado := SubStr(cString, nInicio, nQtd)Exemplo
cData := "20260105"
cAno := SubStr(cData, 1, 4) // "2026"
cMes := SubStr(cData, 5, 2) // "01"
cDia := SubStr(cData, 7, 2) // "05"
// Pegar pedaco do meio de uma string:
cOriginal := "PROD-12345-AZ"
cCodigo := SubStr(cOriginal, 6, 5) // "12345"Quando usar
- Parsing manual de strings com formato fixo (datas em string, codigos compostos)
- Extrair flags em campos concatenados
- Quebrar codigos com prefixo/sufixo
Pegadinhas
- Indice comeca em 1.
SubStr("ABC", 0, 1)retorna string vazia, nao "A" - Terceiro parametro e quantidade, nao posicao final.
SubStr("ABCDE", 2, 3)= "BCD" (3 chars a partir do 2) - Se
nQtdexcede o tamanho restante, retorna o que tem ate o fim sem erro
Parâmetros
| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
cString | Character | sim | String origem |
nInicio | Numeric | sim | Posicao inicial (base 1) |
nQtd | Numeric | sim | Quantidade de caracteres a extrair |
Exemplos
Extrair ano de data string
cAno := SubStr("20260105", 1, 4) // "2026"