05.21 Funções de cadeias de caracteres

Date

Sintaxe: Date(exp)

Retorna data e/ou tempo atuais no formato especificado pela expressão numérica exp. O valor de exp pode ser um dos seguintes:

1 – retorna um formato de data idêntico à função Datestamp do ISIS/Pascal (i.e. uma cadeia de caracteres de 18-byte no formato MM-DD-YY HH:MM:SS). Por exemplo, para o dia 30 de setembro de 1998, às quinze horas e três minutos:
DATE(1)
Retornaria: 09-30-98 15:03:44

2 – retorna somente a data. Por exemplo:
DATE(2)
Retornaria: 09-30-98

3 – retorna somente o tempo. Por exemplo:
DATE(3)
Retornaria: 15:03:44

DB

Retorna o nome da base de dados atual.

SS

Sintaxe: SS(pos,len,formato)

Retorna parte da cadeia de caracteres produzida por formato. A sub-cadeia inicia na posição indicada pelo valor de pos e terá tantos caracteres quanto o valor especificado em len. Por exemplo:

SS(1,3,v100),

Obs.: Os valores de pos e len podem ser expressos por funções numéricas. Por exemplo:

SS(1,SIZE(V100),v100),

F

Sintaxe: F(expressão1,expressão2,expressão3)

Converte o valor numérico da sua representação interna com o ponto flutuante, para uma cadeia de caracter. expressão1,expressão2 e expressão3 são expressões numéricas.

  • expressão1 número a ser convertido;

  • expressão2 tamanho mínimo de saída do número;

  • expressão3 número de casas decimais.

Esta função pode ser utilizada para alinhar uma coluna de números no ponto decimal, escolhendo-se um tamanho apropriado.

Exemplos:

Formato Valor

f(1) 1.000000000E+00

f(1,10) 1.000E+00

f(-1,10,2) -1.00

f(1,5,2) 1.00

REF

Sintaxe: REF(expressão,formato)

  • expressão: é o valor numérico que indica o MFN do registro a ser linkado;

  • formato: é qualquer formato válido de extração de dados a ser aplicado no registro linkado.

Extrai dados alternativos do arquivo-mestre, permitindo reunir campos que estão armazenados em diferentes registros de uma mesma base, mas aparecendo ao usuário como campos de um único registro.

A função REF permite vincular um registro a partir do MFN de um segundo registro.

Por exemplo, considerando um registro de artigo de periódico e outro de periódico no todo:

Artigo Periódico

MFN 259 MFN 6

10 Alves, Gladis 20 Economia Aplicada

20 Economia do RS na década de 90

  1. 6

Aqui, o campo 10 é usado para autor, o 20 para título e o 30 contém o MFN do registro do periódico. Você pode, então exibir a combinação destas informações usando o formato de exibição:

v10/v20/’In:’ref(val(v30),v20)

A função VAL( ) converte o conteúdo do campo 30 em seu valor numérico correspondente.

O comando REF extrai o campo 20 do registro cujo número do MFN está no campo 30. O registro será:

Alves, Gladis

Economia do RS na década de 90.

In: Economia Aplicada

Embora esta seja uma forma relativamente simples de implantar o relacionamento, utilizar a função REF como no exemplo acima traz uma séria limitação, uma vez que “Economia Aplicada” necessariamente sempre terá que estar no MFN número 6.

Esta limitação pode ser resolvida usando a função L, que realiza uma consulta no arquivo invertido e devolve o MFN do primeiro posting que possui o termo buscado. Na prática, utiliza-se um código de relacionamento que deve ser digitado num determinado campo da base de dados. Exemplo:

Artigo Periódico

MFN 259 MFN 6

10 Alves, Gladis 20 Economia Aplicada

20 Economia do RS na década de 90 100 EA

30 EA

Agora, no registro que armazena o artigo, o campo 30 é usado para indicar o código do título do periódico. No registro do periódico, o código de relacionamento fica no campo 100. Para que esta programação funcione, é necessário incluir o campo 100 na FST. É mais seguro usar um prefixo para a abreviatura. Na FST use:

Tag: 100 Técnica: 0 Formato: ”CDG=”v100

Para exibir a combinação das informações aplica-se:

V10/v20/’In:’ ref(L(“CDG=”v30),v20)

Relacionamento entre bases de dados CDS/Isis

Desde a versão 1.0, Winisis vem incorporando ferramentas que possibilitam vincular duas ou mais bases de dados no que diz respeito à visualização dos dados. Em outras palavras, a entrada de dados e a manutenção do arquivo invertido devem ser feitas separadamente.

As funções REFL e LR podem especificar um qualificador de base de dados para se referir a uma base de dados alternativa em relação a base que estiver em uso. Quando a aplicação é assim projetada, a base de dados especificada na função REF pode ser diferente da especificada nas funções L e LR.

O qualificador de base de dados é especificado da seguinte maneira:

– >dbref

dbref é o nome da base de dados relacionada, a qual (ou seu arquivo DBN.PAR) deve estar no diretório especificado no parâmetro 5 do SYSPAR.PAR.

Por exemplo:

ref->bib(l(v10),v200)

ref->bib(l->bib(v10),v100,v200)

ref->bib(l->cds(v10),v300,v400)

ref->PER(“CDG=”v30),v20)

Deixe um comentário