Clipper On Line • Ver Tópico - Erro na função AT()

Erro na função AT()

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Erro na função AT()

Mensagempor Mario Mesquita » 27 Jan 2013 13:44

Boa tarde amigos!

Estou com problema em uma rotina em que preciso fazer uma busca em uma string.

Para qualquer clippeiro, a função AT() não é novidade.

Mas ao compilar o programa aparece a mensagem:

"Incorrect number of arguments in A".

Sendo que eu, por fim, reproduzi uma linha de exemplo de um guia do Harbour e dá a mesma coisa.

Não compila. Se fosse um erro de execução, mas na compilação...

Se alguem já passou por isso, desde já agradeço a ajuda.

Sds,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Erro na função AT()

Mensagempor Mario Mesquita » 27 Jan 2013 19:32

Estou testando uma rotina para abrir e ler um arquivo TXT, mas tá tudo dando errado.

Agora o MEMOREAD() não abre o arquivo.

No caso do AT(), troquei por RAT(). Compilou, mas não sei se vai funcionar pq ele não "puxa" o arquivo para a variável...

Será que é o Harbour?
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Erro na função AT()

Mensagempor Pablo César » 28 Jan 2013 07:06

Olá Mario, com certeza não há problema algum na inclusão das funções AT() e RAT() nem no MemoRead(). Para podermos dar uma resposta mais acertada, caberia você disponibilizar o seu código fonte para analisá-lo. Tudo depende do que você precisa, por quê o uso do AT(), qual é a necessidade (dê exemplo).
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Erro na função AT()

Mensagempor Mario Mesquita » 28 Jan 2013 09:16

Bom dia, Pablo.

Na verdade, o AT() só funciona com dois parametros. Tipo: xPosIni := AT( "<",xLn)

Eu estava passando mais dois parametros. Talvez seja porque eu esteja usando um tutorial do xHarbour e lá a função AT() tem quatro parametros.

Pode ser isso? Se for, é estranho, pois achei um tutorial on line que tem os 4 parametros...

Aproveitando: Não dá pra usar a função MEMOEDIT? Tentei, mas não faz nada. Aí usei RICHEDIT da MiniGui. Deu certo, mas estou penando pra quebrar as linhas para que fiquem dentro da janela de edição.

E de preferencia sem modificar o arquivo texto original colocando CR e LF...

Abraço,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

Erro na função AT()

Mensagempor Jairo Maia » 28 Jan 2013 09:24

Olá Mário,

Substitua as funções AT() e RAT() (são idênticas), pelas funções Hb_At() e Hb_Rat(), e a função MemoRead() por Hb_MemoRead().

Com MiniGui realmente a função AT() retorna este erro.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Erro na função AT()

Mensagempor Pablo César » 28 Jan 2013 09:34

Mario Mesquita escreveu:Bom dia, Pablo.

Na verdade, o AT() só funciona com dois parametros. Tipo: xPosIni := AT( "<",xLn)

Eu estava passando mais dois parametros. Talvez seja porque eu esteja usando um tutorial do xHarbour e lá a função AT() tem quatro parametros.

Pode ser isso? Se for, é estranho, pois achei um tutorial on line que tem os 4 parametros...
Bom dia Mario. No Harbour também possui 4 parâmetros, os quais o terceiro e quarto parâmetros são opcionais. No Harbour Reference Guide do nosso colega Giovanni Di Maria explica. Veja em: http://www.elektrosoft.it/tutorials/Harbour-Reference-Guide/harbour-reference-guide.htm#AT. Note os dois ultimos parâmetros, mesmos que opcionais, quando informados deverão ser do tipo numéricos (veja o primeiro caracter de cada parâmetro indicando o tipo).

Aproveitando: Não dá pra usar a função MEMOEDIT? Tentei, mas não faz nada. Aí usei RICHEDIT da MiniGui. Deu certo, mas estou penando pra quebrar as linhas para que fiquem dentro da janela de edição.
Sim o MemoEdit existe no Harbour consequentemente em HMG, Minigui e outras bibliotecas gráficas. Só não entendo o quê não deu certo pra você, pois sem código, não dá pra deduzir.

E de preferencia sem modificar o arquivo texto original colocando CR e LF...
Normalmente todo texto com mais de uma linha possui um quebra de linha (CRLF). Não entendi a sua colocação.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Erro na função AT()

Mensagempor Pablo César » 28 Jan 2013 09:38

Esclarecendo...

Jairo Maia escreveu:Substitua as funções AT() e RAT() (são idênticas), pelas funções Hb_At() e Hb_Rat(), e a função MemoRead() por Hb_MemoRead().
Ahhh sim é para utilizar 3 e/ou 4 parâmetro, sim ! O correto nesse caso é utilizar Hb_At() e Hb_Rat()

Com MiniGui realmente a função AT() retorna este erro.
Retorna erro quando colocado 3 e/ou quarto parâmetro. Isso porque as funções AT() e RAT() comportam-se exatamente como é em Clipper, isto é apenas aceitam dois parâmetros. Daí o erro, pois não corresponde a passagem de parâmetros pelo compilador HMG/Minigui, no entanto com Hb_At() e Hb_Rat() os parâmetros 3 e 4 tornam-se opcionais.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes

Erro na função AT()

Mensagempor Mario Mesquita » 28 Jan 2013 11:58

Jairo e Pablo, boa tarde.

Pois é. AT() e RAT() não suportam os 3º e 4º ´parametros. O guia que tenho do (x)Harbour não tem referencia a HB_AT() e HB_RAT().

Eu achei ontem o Guia on line do DeMaria, mas juro que tambem não vi referencia a essas duas funções...

O HMG e o Harbour são muito bons, mas carecem de documentação boa para consulta e/ou dúvidas. Que bom que a galera aqui dá uma ajuda.

Sobre as quebras de pagina, Pablo, eu recebo os arquivos em .TXT bruto sem CR-LF. Resolvi colocando as quebras para permitir a leitura dos mesmos. O problema era que eu não podia deixa-los nos TXTs pois tenho que devolve-los como recebi nesse aspecto, pois eles vão virar HTML ou algo do tipo em um site. Mas para isso coloquei um RUN para o NotePad e deixei o RICHEDIT apenas para leitura.

Já quebrou o galho.

Agora quero ver uma forma legal de fazer substituição de texto nesses arquivos. Com as funções tradicionais do clipper não tem mistério, vamos ver se não levo mais uma canseira dessas, rs.

Obrigado pela ajuda, pessoal!

Abraço,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 3 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro