ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Function Duvida

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Diogo_
Novato
Novato


Registrado: Sábado, 14 de Janeiro de 2006
Mensagens: 20

MensagemEnviada: Qui Jan 04, 2007 4:22 pm    Assunto: Function Duvida Responder com Citação

Olá

eu tava tentando fazer um array de varios numeros so que vai ser hyper chato fazer de todos os numeros entao tava tentando fazer uma função que me desse as arrays seria algo como

no Edit1.Text eu coloquei = 01,00,05,a6,7b

são 4 arrays e a função pega esses numeros e transforma em
Teste[0] := $01;
Teste[1] := $00;
Teste[2] := $05;
Teste[3] := $a6;
Teste[3] := $7b;

alguem sabe como fazer isso?
eu não sei como informar a função que a cada virgula ',' é um numero novo...

Obrigado
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gustavocco
Administrador
Administrador


Registrado: Sexta-Feira, 6 de Fevereiro de 2004
Mensagens: 4253
Localização: Chapecó - SC

MensagemEnviada: Qui Jan 04, 2007 4:56 pm    Assunto: Responder com Citação

Olá, aqui to passando um exemplo jogando num listbox, só altera o código passando ao array...

Código:

var texto: string;
begin
     if edit1.text = '' then exit;
     texto := edit1.text;
     ListBox1.Clear;
     while pos(',',texto) > 0 do begin
           ListBox1.Items.Add('$'+copy(texto,1,pos(',',texto)-1));
           Delete(texto,1,pos(',',texto));
     end;
     ListBox1.Items.Add('$'+texto);
end;


Espero que ajude.

Flw.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
tiagosoler
Novato
Novato


Registrado: Terça-Feira, 1 de Março de 2005
Mensagens: 75

MensagemEnviada: Qui Jan 04, 2007 5:26 pm    Assunto: funcao Responder com Citação

procedure gravatextomatriz();
var texto, novotexto: string;
contador, qtvirugulas: byte;
matriz: array of string;
begin
texto:=Edit1.Text;
qtvirgulas:=0;
for contador:=0 to Length(texto) do begin
if MidStr(texto, contador, contador)=',' then qtvirgulas:=qtvirgulas+1;
end;
SetLength(matriz, qtvirgulas);
for contador:=0 to High(matriz) do begin
novotexto:=LeftStr(texto, Pos(',', texto)-1);
Insert('$', novotexto, 0);
matriz[contador]:=novotexto;
texto:=Copy(texto, Pos(',' texto)+1, Length(texto));
end;
end;
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
tiagosoler
Novato
Novato


Registrado: Terça-Feira, 1 de Março de 2005
Mensagens: 75

MensagemEnviada: Qui Jan 04, 2007 5:32 pm    Assunto: funcao usando listbox tem erro Responder com Citação

a funcao passada antes da minha como exemplo usando listbox tem erro:
a sintaxe da procedure delete esta errada
o correto é: Delete(var S: string; Index, Count:Integer);
alem disso deletando só a virgula do texto os demais caracteres a esquerda irao acumular para o proximo item.

Wink
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Diogo_
Novato
Novato


Registrado: Sábado, 14 de Janeiro de 2006
Mensagens: 20

MensagemEnviada: Qui Jan 04, 2007 5:49 pm    Assunto: Responder com Citação

Aew pessoal muito obrigado pelas respostas usei o codigo do gustado editei umas coisas ficou bem rapido

Código:
var
texto: string;
NumTeste: integer;
begin
NumTeste := 0;
     if EditNum.text = '' then exit;
     texto := EditNum.text;
     Memo1.Clear;
     while pos(',',texto) > 0 do begin
           Memo1.Lines.Add('Teste['+IntToStr(NumTeste)+']'+' := $'+copy(texto,1,pos(',',texto)-1)+';');
           Delete(texto,1,pos(',',texto));
           NumTeste := NumTeste+1;
     end;
     Memo1.Lines.Add('Teste['+IntToStr(NumTeste)+']'+' := $'+texto+';');
end;


resultado ele bota :
Teste[0] := $01;
Teste[1] := $05;
Teste[2] := $09;
Teste[3] := $08;

da forma como eu queria muito obrigado!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
gustavocco
Administrador
Administrador


Registrado: Sexta-Feira, 6 de Fevereiro de 2004
Mensagens: 4253
Localização: Chapecó - SC

MensagemEnviada: Qui Jan 04, 2007 5:56 pm    Assunto: Responder com Citação

Blz diogo.. bom q serviu o exemplo.


tiagosoler escreveu:

a funcao passada antes da minha como exemplo usando listbox tem erro:
a sintaxe da procedure delete esta errada
o correto é: Delete(var S: string; Index, Count:Integer);
alem disso deletando só a virgula do texto os demais caracteres a esquerda irao acumular para o proximo item.

Mas o código está na sintaxe...
Traduzindo ... o código:
Delete(texto,1,pos(',',texto));
Delete o conteúdo da variavel texto, que inicie na posição 1 até a posição da virgula(incluindo a virgula.);
Tenta testar o codigo.. funciona bem. Wink



Flw ai.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB