Foi um erro de digitação, acontece. E em momento algum citei seu nome,
apenas disse que "outras pessoas". E isso é tudo. Não estou interessado
em ficar batendo boca em uma lista de discussão pública. Ninguém que
está nessa lista está para ler esse tipo de e-mail, mas assuntos
profissionais.

E para finalizar, digo:

Sim, agora eu me refiro a vc. Td que escrevi ali está sendo direcionado
para vc. Gostando ou não. Sem mais.



Elias Magalhães da Paixão Junior

___________________________________

Análise de Sistemas e Banco de Dados

Consultoria e desenvolvimento de programas, sistemas e websites

Tel.: (0XX21) 8262-7955


-----Mensagem original-----
De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED]
Em nome de Eduardo Castro Alves
Enviada em: segunda-feira, 14 de maio de 2007 10:19
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: RES: [delphi-br] Violação de Memória em Array

Bem, então você terá que estudar Delphi e como se expressar melhor.

Você colocou isso:

logsCapturados:=log.create;

Então vamos ver se vc entende desenhando.

Se logsCapturados é um vetor, para você criar você deve passar o indice 
de qual você está criando.

logsCapturados[INDICE] := LOG.CREATE;

Só estou surpreso por que se você conhece tanto assim de vetores não 
saber isso.

Quanto ao passar um vetor como parametro para um metodo é o mesmo de 
qualquer outro objeto ou variável.

Referente a ser humilde ou não acho que você não pode me julgar. Disse e

repito VOCÊ TEM QUE ESTUDAR MUITO MAIS isso não significa que eu não sou

humilde e sim que você precisa ESTUDAR E PRESTAR MAIS ATENÇÃO NO QUE 
VOCÊ ESTÁ FAZENDO.


Eduardo
Ps: Ja foi o tempo que eu ficava perdendo o meu tempo com estas 
discussões, por tanto não responderei nenhum outro email sobre este
assunto.



Elias Magalhães da Paixão Junior escreveu:
>
> Concordo plenamente que eu tenho que estudar muito e tb concordo que
que
> outras pessoas no mundo também, bem como outras precisam aprender
certas
> coisas como humildade, educação e decência.
>
> Eduardo, agradeço sua “boa vontade” mas lamento lhe informar que sei
> como se utiliza um array mas que vai ser bom pois essas dicas podem
> servir para alguma outra pessoa, que assim como eu tb tem de estudar
> muito.
>
> Para que entendam melhor o que eu escrevi, vou colocar a procedure
> inteira.
>
> A declaração:
>
> private
> logsCapturados:array of icmpScan_cl_log_usr;
>
> A procedure:
>
> procedure icmpScan_cl_log_adm.procuraLogs;
> var
> busca: TSearchRec;
> logList: TStrings;
> Ret,i: Integer;
> host: string;
> begin
> Ret := FindFirst('append\*.ims', faAnyFile, busca);
> logList:=TStringlist.Create;
> i:=0;
> try
> while Ret = 0 do
> begin
> logList.Add(busca.Name);
>
>
host:=copy(logList.ValueFromIndex[i],pos('_',logList.ValueFromIndex[i])+
>
1,length(logList.ValueFromIndex[i])-3-(pos('_',logList.ValueFromIndex[i]
> )+1));
> logsCapturados[i]:=icmpScan_cl_log_usr.create(host); --> O
> erro acontece aqui. Como se a variável não tivesse sido declarada.
> Ret := FindNext(busca);
> i:=i+1;
> end;
> finally
> begin
> FindClose(busca);
> end;
> end;
> end;
>
>
> E voltando a dizer, que se eu declarar esse array como uma variável da
> procedure, ao invés da unit, funciona.
>
> Elias Magalhães da Paixão Junior
> ___________________________________
> Análise de Sistemas e Banco de Dados
> Consultoria e desenvolvimento de programas, sistemas e websites
> Tel.: (0XX21) 8262-7955
> -----Mensagem original-----
> De: delphi-br@yahoogrupos.com.br 
> <mailto:delphi-br%40yahoogrupos.com.br> 
> [mailto:delphi-br@yahoogrupos.com.br 
> <mailto:delphi-br%40yahoogrupos.com.br>]
> Em nome de Eduardo Castro Alves
> Enviada em: segunda-feira, 14 de maio de 2007 07:58
> Para: delphi-br@yahoogrupos.com.br
<mailto:delphi-br%40yahoogrupos.com.br>
> Assunto: Re: [delphi-br] Violação de Memória em Array
>
> Acho que vc deve estudar muito. Segue abaixo um exemplo de um vetor
> dinâmico e um de tamanho fixo.
>
> var
> i : Integer;
> A1 : Array of String;
> A2 : Array [0..10] of String;
>
> begin
>
> Memo1.Clear;
> SetLength(A1, 20); // defino o tamanho do vetor
> for i := 0 to Length(A1) - 1 do
> A1[i] := 'Vetor A1 Linha ' + IntToStr(i);
>
> for i := 0 to 10 do
> Memo1.Lines.Add(A1[i]);
>
> for i := 0 to 10 do
> A2[i] := 'Vetor A2 Linha ' + IntToStr(i);
>
> for i := 0 to 10 do
> Memo1.Lines.Add(A2[i]);
>
> end;
>
> Eduardo
>
> Elias Magalhães da Paixão Junior escreveu:
> >
> > Amigos,
> >
> > Preciso perturbá-los mais uma vez, pois não consigo encontrar
solução.
> > Em uma unit, tenho o seguinte array declarado:
> >
> > Private
> > logsCapturados: array of log --> Já tentei estático tb.
> >
> >
> > Logo depois, em uma procedure, ele é criado:
> >
> > logsCapturados:=log.create;
> >
> > Aqui ocorre o erro de violação de memória, aquele mesmo que ocorre
> > quando o objeto não existe. O fato mais curioso é que se eu declarar
o
> > array DENTRO da procedure, ele funciona normalmente, com o mesmo
> código.
> > Quando eu declaro como parte da classe, acontece isso. Alguém
sabe???
> >
> > Elias Magalhães da Paixão Junior
> > ___________________________________
> > Análise de Sistemas e Banco de Dados
> > Consultoria e desenvolvimento de programas, sistemas e websites
> > Tel.: (0XX21) 8262-7955
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Links do Yahoo! Grupos

 

Responder a