Ir para conteúdo
Fórum Script Brasil
  • 0

[resolvido] Como Representar Valor Inteiro


Guest --felipe --

Pergunta

Guest --felipe --

opa, quero alguma coisa que substitua este meu comando (a variavel i serve como um caracter e não um vetor):

for i:=1 to 100 do
  if (codcli[i]='0') or (codcli[i]='1') or (codcli[i]='2') or (codcli[i]='3') or (codcli[i]='4') or (codcli[i]='5') or (codcli[i]='6') or (codcli[i]='7') or (codcli[i]='8') or (codcli[i]='9') then aux:=aux+codcli[i];

quanto amadorismo de minha parte ¬¬

ueeuiheuih

faz parte ;)

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
Guest --felipe --
Ai esta como array do tipo string, é isso??

porque você não coloca a variável codcli como array do tipo integer??

a variavel não é array, eu estou verificando se o caracter "I" da variavel codcli(string) é inteiro

codcli[i]

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --felipe --
cara, não consegui entender o sentido destas variaveis, o que ira armazenar na variavel codcli??

cara esse codcli serve para armazenar os codigos que serão usados no select, pode ter 3 tipos de valores

- codcli = '' //sem filtro

- codcli = 32 // só seleciona os campos quando idpcb=32

- codcli = 101,23,35,12,7 // ai tem que selecionar todos esses..

vou te colar uma parte maior do codigo pra voce ver..

aux:='';
  cc:=false;
  cv:=false;
  lc:=WordsCount(codcli);
  s:='select pcb.*, feederpcb.*'+
     ' from pcb,feederpcb'+
     ' where feederpcb.idpcb=pcb.idpcb';
  if codcli <>'' then //verifica se codcli é vazio
  begin
    while cc=false do
    begin
      i:=1;
      for i:=1 to lc do
      begin
        if cv=false then //verifica se tem virgula no codcli, se não tiver quer dizer que só há um valor para ser filtrado
        begin
          if codcli[i]=',' then begin
            cv:=true;
            s:=s+ ' and ('; //se tiver virgula adiciona 'and (' e sai do for para recomeçar a verificação do primeiro caracter
            break;
          end;
        end
        else begin //se entrar aqui quer dizer que tem mais de 1 valor para filtrar
          if (codcli[i]='0') or (codcli[i]='1') or (codcli[i]='2') or (codcli[i]='3') or (codcli[i]='4') or (codcli[i]='5') or (codcli[i]='6') or (codcli[i]='7') or (codcli[i]='8') or (codcli[i]='9') then begin //verifica se codcli[i] é inteiro
            aux:=aux+codcli[i];
          end;
          if codcli[i+1]=',' then begin //se o proximo caracter for uma virgula, ele adiciona no select a condição
            s:=s+ 'feederpcb.idpcb=' +aux+ ' or ';
            aux:='';
          end;
          if i=lc then begin //se estiver no ultimo caracter adiciona o filtro no select e fecha o parenteses
            s:=s+ 'feederpcb.idpcb='+aux+')';
            cc:=true
          end;
        end;
      end;
      if cv=false then begin
        s:=s+' and feederpcb.idpcb=' + codcli;
        cc:=true;
      end;
    end;
  end;
  s:=s + ' order by feeder,idpcb';
  dm.aux2Query.close;
  dm.aux2Query.SQL.Clear;
  dm.aux2Query.sql.Add(s);
  dm.aux2Query.open;

todo este codigo mirabolante é porque o select tem que ficar assim (neste caso, codcli = 101,23,35,12,7):

select pcb.*, feederpcb.*

from pcb,feederpcb

where feederpcb.idpcb=pcb.idpcb

and (feederpcb.idpcb=101 or feederpcb.idpcb=23 or feederpcb.idpcb=35 or feederpcb.idpcb=12 or feederpcb.idpcb=7)

order by feeder,idpcb

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --felipe --
Opa

tente assim

for i := 1 to 100 do

if Length(codcli) >= i then

begin

if (codcli in ['0'..'9']) then

aux:=aux+codcli;

end

else

Break;

abraço

funcionou certinho

valeu ai mais uma vez

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...