Comparar strings e depois adicionar em um memo

Delphi

09/02/2007

Olá amigos, dei um pesquisada aqui no forum e não encontrei o que estava precisando, por isto estou abrindo este espaço para pedir ajuda.

Tenho uma Constante deste tipo:

const
exemplo: String = (´03,05,07,08,11,15,19,25,31,35´) ;

Tenho uma listbox com informações assim adicionadas:

01
02
04
06
07
09
15
22
25
31
33

O que estou pretendendo?

Quero que quando clicar no botão específico, sejam adicionadas em um memo os valores assim:

04,07,15,25,22

Em resumo é o seguinte:

O primeiro número da constante, serve para procurar na listbox a linha correspondente a este número, no exemplo acima o primeiro número da constante é 03, portanto, tenho que encontrar o terceiro númedo da listbox que no exemplo é 04 e adicionar este 4 em um memo, e assim por diante.

Alguém poderia me ajudar, pois já tentei de várias formas e nunca dar certo.

Obrigado.


Ranyeryfip

Ranyeryfip

Curtidas 0

Respostas

Nasguone

Nasguone

09/02/2007

Bem não sei se entendi muito o que vc quer mas tente algo assim
crie uma variavel que vai ler su string, e variaveis que irão copiar os numeros que vc quer de dentro desta string
Tipo assim:
Var
VarPrincipal, Var01,Var02,Var03 :tring
begin
varprincipal := sua string;
var01 := Copy(varprincipal,1,2);
var02 := Copy(varprincipal,4,5);
var03 := Copy(varprincipal,7,8);
concatene tudo isso e depois passe para um memo
Ou use um array ao invez de variaveis.......



Espero que te ajude
ECS


GOSTEI 0
Ranyeryfip

Ranyeryfip

09/02/2007

Bem não sei se entendi muito o que vc quer mas tente algo assim crie uma variavel que vai ler su string, e variaveis que irão copiar os numeros que vc quer de dentro desta string Tipo assim: Var VarPrincipal, Var01,Var02,Var03 :tring begin varprincipal := sua string; var01 := Copy(varprincipal,1,2); var02 := Copy(varprincipal,4,5); var03 := Copy(varprincipal,7,8); concatene tudo isso e depois passe para um memo Ou use um array ao invez de variaveis....... Espero que te ajude ECS


Amigo, obrigado pela ajuda mas assim não dar certo. Tipow eu tenho que pegar o primeiro número da minha STRING e com esse copiar na LISTBOX os caracteres que estão na linha da LISTBOX.

Eu queria fazer uma rotina que fosse pegando parte parte da constante e fazendo isto abaixo:

Const
exemplo: String = ´03,07,09,10´;

listbox1.ItemIndex:= strtoint(´03´) - 1;
memo1.Lines.Add(listbox1.items[listbox1.itemindex]);

E fizesse o exemplo acima com os outros valores 07,09,10 e assim sucessivamente. Fazendo um por um eu sei, mas o código vai ficar muito grande pois, são várias constantes.

Espero a ajuda de vocês.


GOSTEI 0
Nasguone

Nasguone

09/02/2007

procedure TForm1.Button1Click(Sender: TObject);
var
var01,var02,var03,var04,varcontada : string;
R,valindex : integer;
begin
var01 := ´01´;
var02 := ´02´;
var03 := ´03´;
var04 := ´04´;
ListBox1.ItemIndex:=0;
ValIndex :=ListBox1.ItemIndex;
for R := valindex to ListBox1.Count -1 do
begin
ValIndex := ValIndex + 1;
ListBox1.ItemIndex := ValIndex;
varcontada := ListBox1.Items.Strings[R];
if (trim(varcontada) = trim(var01)) or
(trim(varcontada) = trim(var02)) or
(trim(varcontada) = trim(var03)) or
(trim(varcontada) = trim(var04)) then
begin
memo1.Lines.Add(listbox1.items[valindex]);
end;

end;
end;



eu fiz um teste aqui ele leu e gravou no memo veja se e isso
coloquei um botao uma listbox e um memo


GOSTEI 0
Ranyeryfip

Ranyeryfip

09/02/2007

procedure TForm1.Button1Click(Sender: TObject); var var01,var02,var03,var04,varcontada : string; R,valindex : integer; begin var01 := ´01´; var02 := ´02´; var03 := ´03´; var04 := ´04´; ListBox1.ItemIndex:=0; ValIndex :=ListBox1.ItemIndex; for R := valindex to ListBox1.Count -1 do begin ValIndex := ValIndex + 1; ListBox1.ItemIndex := ValIndex; varcontada := ListBox1.Items.Strings[R]; if (trim(varcontada) = trim(var01)) or (trim(varcontada) = trim(var02)) or (trim(varcontada) = trim(var03)) or (trim(varcontada) = trim(var04)) then begin memo1.Lines.Add(listbox1.items[valindex]); end; end; end; eu fiz um teste aqui ele leu e gravou no memo veja se e isso coloquei um botao uma listbox e um memo


[b:41d9c17d54]Mais uma vez muito obrigado pela ajuda.[/b:41d9c17d54]

Mas no caso eu não tenho essas variáveis abaixo:

var01 := ´01´;
var02 := ´02´;
var03 := ´03´;
var04 := ´04´;

Eu vou ter várias constantes, tipo:
const
a: String = ´04,06,07,08´;
b: String = ´02,03,09,15´;

Quero fazer uma rotina que vá quebrando essas strings. E procurando ela na listbox.

Vlw pela ajuda.


GOSTEI 0
Nasguone

Nasguone

09/02/2007

Então crie parametros com as variaveis inteira e quebre ela alimentando um array tipo string;
voce pode utilizar um copy string da inteira para variavel e a partir do array fazer o for para copiar para o memo..


GOSTEI 0
Ranyeryfip

Ranyeryfip

09/02/2007

nasguone,

Obrigado pelo empenho em me ajudar.

Consegui fazer da maneira que queria.

Vlw.


GOSTEI 0
POSTAR