[ Índice ]
==> Função para manipulação de strings do tipo procura e substitui. Data Publicação: 23/07/2004 ==> Equivalência entre Métodos Classe ABC e Comandos Clarion (Legacy) Data Publicação: 23/07/2004
! procura strA em str e substitui por strB Prototype: ( string, string, string ), string Parameters: ( str, strA, strB )
!data section lenStrA long,auto lenStrB long,auto lenStr long,auto i long,auto
!code section lenStr = len( clip( str ) ) lenStrA = len( clip( strA ) ) lenStrB = len( clip( strB ) ) i = instring( clip( strA ), clip( str ), 1, 1 ) loop until ( i = 0 ) str = str[ 1 : i-1 ] & clip( strB ) & str[ i + lenStrA : lenStr ] i = instring( clip( strA ), clip( str ), 1, i + lenStrB ) end return( str )
!Exemplos de uso s = TrocaSeq( ’ABCDE’, ’A’, ’B’) !s = ’BBCDE’ s = TrocaSeq( ’ABCDE’, ’a’, ’B’) !s = ’ABCDE’ s = TrocaSeq( ’ABCDE’, ’BCD, ’1’) !s = ’A1E’ s = TrocaSeq( ’ABCDE’, ’D’, ’za’) !s = ’ABCzaE’
| Comando Clarion (Legacy) | (Método ABC) ACCESS | (Método ABC) RELATE |
| ADD | (TRY) INSERT | - |
| GET | (TRY) FETCH | - |
| DELETE | - | DELETE |
| PUT | UPDATE | UPDATE |
!Exemplos de uso
Quando você utiliza métodos da classe ABC em vez de comandos da Classe Clarion (Legacy) você deve cuidar a sintaxe de uso
do método.
** Abertura de Arquivo:
Relate:Clientes.Open (abre arquivo de clientes e demais relacionados)
Relate:Clientes.Close (fecha o arquivo e todos demais relacionados)
Access:Clientes.Open (abre apenas o arquivo de cliente)
Access:Clientes.Close (fecha o arquivo)
** Equivalente ao Comando ADD do Clarion(Legacy)
IF ACCESS:CLIENTES.INSERT( ) = LEVEL:BENIGN
MESSAGE('GRAVOU OK')
END
IF ACCESS:CLIENTES.TRYINSERT( ) <> LEVEL:BENIGN
MESSAGE('IMPOSSÍVEL A LIBERAÇÃO')
END
** O TRYINSERT( ) OU TRYFETCH( ) não retornam a mensagem de erro padrão permitindo que o usuário trate
o erro podendo até mesmo criar sua própria rotina de tratamento de erros. Outro detalhe que em caso de erro
o Buffer não é limpo, evitando-se assim muitas vezes a necessidade de se fazer um REGET.
** ESTRUTURA DE LEITURA SEQUENCIAL DE UM ARQUIVO.
CHAVE='ZERO'
COMANDO SET(CHAVE,CHAVE) !Posiciona o ponteiro de leitura na posição indicada pelo campo anteiro (CHAVE)!não mudou.
LOOP
IF ACCESS:CLIENTES.NEXT( ) <> LEVEL:BENIGN ! OU SEJA FIM DE ARQUIVO=33
BREAK
ELSE
PROCESSAMENTO ( INCLUSÃO,ALTERAÇÃO,EXCLUSÃO)
END
END
** Os erros são agora tratados com referência no retorno de Level:Benign.
se a ação é bem sucedida ela igual a Level:benign se ela for diferente,
significa que a ação desejada não foi concluída.