Erro na função AT()

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Erro na função AT()

Mensagem por Mario Mesquita »

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 do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Erro na função AT()

Mensagem por Mario Mesquita »

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 do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Erro na função AT()

Mensagem por Pablo César »

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 do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Erro na função AT()

Mensagem por Mario Mesquita »

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 do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Erro na função AT()

Mensagem por Jairo Maia »

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 do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Erro na função AT()

Mensagem por Pablo César »

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/Har ... ide.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 do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Erro na função AT()

Mensagem por Pablo César »

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 do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Erro na função AT()

Mensagem por Mario Mesquita »

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.
Responder