FoxPró para Delphi----SEEK

Delphi

29/07/2003

Pessoal...
estou com a seguinte função em foxpró:

FOR I := 1 to LENG(ALLTRIM(mseqcodbar))/2
mprocura := COPY(mseqcodbar,mpos,2);
SEEK mprocura

minha dúvida é o que ´SEEK´ faz???
como passar pro delphi esse código???


Catharina

Catharina

Curtidas 0

Respostas

Inutaishou

Inutaishou

29/07/2003

Catharina, o Seek é o mesmo que o FindKey(Ou Find) do Delphi...
Não sei se está certo, mas acho que para passar isso para Delphi é assim:

For I := 1 To Lenght(Trim(mseqcodbar))/2 Do Begin
mprocura := copy(mseqcodbar,mpos,2);
Tabela.FindKey(mprocura);
End;


Veja se funciona...


GOSTEI 0
Inutaishou

Inutaishou

29/07/2003

Catharina, a tabela que você está acessando é uma tabela dbf???


GOSTEI 0
Catharina

Catharina

29/07/2003

Eu tenho essa função em fox que é dbf, mas na verdade estou reaproveitando essa função no Delphi - Sql .


GOSTEI 0
Inutaishou

Inutaishou

29/07/2003

Ahhhh... Entendi...


GOSTEI 0
Catharina

Catharina

29/07/2003

FUNCTION CONVERTECODBARRA(Str:String):Char;
var mpos, mprocura,mlinhacodigo :string;
I :integer;
begin
mlinhacodigo := ´!´;
mpos := ´1´;

FOR I := 1 downto (LENGTH(ALLTRIM(mseqcodbar))/2) do begin
mprocura := inttostr(COPY(mseqcodbar,mpos,2));
Tabela.FindKey(mprocura);
mlinhacodigo := mlinhacodigo + PROT069.ascii;
mpos := mpos + 2;
end;

Estou com vários erros nesta função:
na linha do For:
[Error] rel_notificacao.pas(625): Incompatible types: ´Integer´ and ´Extended´

na linha seguinte:(mprocura)
[Error] rel_notificacao.pas(626): Incompatible types


GOSTEI 0
Inutaishou

Inutaishou

29/07/2003

Tente corrigir o For... Para:
FOR I := 1 downto StrToInt(FloatToStr(LENGTH(ALLTRIM(mseqcodbar))/2)) do begin 


E quanto ao outro erro, é necessário saber que tipo de variável é mseqcodbar...


GOSTEI 0
Catharina

Catharina

29/07/2003

mseqcodbar: string;

Se possível gostaria de tirar outra dúvida, é o seguinte:
nessa mesma função ele abre uma tabela asc, em resumo,
não estou entendendo o pq, teria como me explicar essa função? Isso tudo é pq estou fazendo um relatório pra impressão de um boleto bancário BB, com codigo de barra.
Se puder me ajudar, agradeço... realmente estou confusa.

//Essa função é a original em Fox-Pró
FUNCTION CONVERTECODBARRA()
PARAMETERS seqcodbar

m.selecionado = ALIAS()

SELECT PROT069

m.linhacodigo = ´!´
m.pos = 1

FOR I = 1 to LEN(ALLTRIM(m.seqcodbar))/2
m.procura = SUBSTR(m.seqcodbar,m.pos,2)
SEEK m.procura
m.linhacodigo = m.linhacodigo + PROT069.ascii
m.pos = m.pos + 2
ENDFOR

m.linhacodigo = m.linhacodigo + CHR(34)

RETURN m.linhacodigo


GOSTEI 0
POSTAR