Problemão com Stack Overflow
Pessoal, vou tentar ser sucinto, vou explicar tudo porque já não tenho mais idéia do que fazer.
Funciona assim:
Tenho um procedimento que pega dados de uma matriz string, passa para double e faz vários cálculos com esses valores. Nesses cálculos tem vários loops e todos os resultados vão para uma matriz tipo Double, com dimensões 5 x 10.
então, eu chamo outro procedimento que escrevi para escrever uma tabelinha com os dados dessa matriz resultado em um rich edit.
aí eu faço mais cálculos e utilizo o mesmo procedimento para escrever outros resultados.
TOTAL DE VEZES QUE CHAMO ESSA FUNÇÃO DE ESCREVER NO RICH EDIT = 7
Além disso, tenho um outro procedimento que escreve uma outra tabelinha bem similar à citadas anteriormente. Essa é chamada umas 20 vezes.
o código utilizado para escrever tais tabelas é este:
a outra tabela é bem similar, portanto este código é chamado umas 30 vezes durante o procedimento.
O resto no procedimento é tudo loops, contas e conversões, normais...
Isso é recursividade?? Era pra dar Stack Overflow?? Devo eu aumentar o tamnho do stack?? Como q eu faço isso??
Desculpem o tamanho do post galera, eh q eu estou meio desesperado. Muitíssimo obrigado pela atenção.
Walter´
Fatal error: Maximum execution time of 30 seconds exceeded in D:\web\forum.devmedia.com.br\httpdocs\down_postsforum.php on line 70
Funciona assim:
Tenho um procedimento que pega dados de uma matriz string, passa para double e faz vários cálculos com esses valores. Nesses cálculos tem vários loops e todos os resultados vão para uma matriz tipo Double, com dimensões 5 x 10.
então, eu chamo outro procedimento que escrevi para escrever uma tabelinha com os dados dessa matriz resultado em um rich edit.
aí eu faço mais cálculos e utilizo o mesmo procedimento para escrever outros resultados.
TOTAL DE VEZES QUE CHAMO ESSA FUNÇÃO DE ESCREVER NO RICH EDIT = 7
Além disso, tenho um outro procedimento que escreve uma outra tabelinha bem similar à citadas anteriormente. Essa é chamada umas 20 vezes.
o código utilizado para escrever tais tabelas é este:
procedure TfrmPrincipal.EscreveResultados(CausasDeVariacao: array of String; Resultados: TMatrizQDouble; TituloQuadro: String; LinhasTraco: array of Integer); var i,j: Integer; Dados: TMatriz; Lista: TStringList; begin SetLength(Dados,5,High(Resultados[0]) + 1); // FAZER AS ROTINAS DE ARREDONDAMENTO DOS NÚMEROS DE ACORDO COM AS CASA DECIMAIS NO LOOP QUE PROSSEGUE for j:= Low(Resultados[0]) to High(Resultados[0]) do begin if Resultados[0,j] <> 0 then Dados[0,j] := FloatToStr(Resultados[0,j]) else Dados[0,j] := ´-´; if Resultados[1,j] <> 0 then Dados[1,j] := FloatToStrF(Resultados[1,j],ffFixed,10,6) else Dados[1,j] := ´-´; if Resultados[2,j] <> 0 then Dados[2,j] := FloatToStrF(Resultados[2,j],ffFixed,10,6) else Dados[2,j] := ´-´; if Resultados[3,j] <> 0 then begin Dados[3,j] := FloatToStrF(Resultados[3,j],ffFixed,10,6); if Resultados[4,j] > 0.0001 then Dados[4,j] := FloatToStrF(Resultados[4,j],ffFixed,10,6) else Dados[4,j] := ´< 0,0001´; if (Resultados[4,j] < 0.05) and (Resultados[4,j] > 0.01) then Dados[3,j] := Dados[3,j] + ´* ´; if Resultados[4,j] < 0.01 then Dados[3,j] := Dados[3,j] + ´**´; if Resultados[4,j] > 0.05 then Dados[3,j] := Dados[3,j] + ´NS´; end else Dados[3,j] := ´-´; end; Lista := TStringList.Create(); Lista.Add(TituloQuadro); Lista.Add(´=========================================================================================================´); Lista.Add(´Causas de Variação GL SQ QM F P ´); Lista.Add(´---------------------------------------------------------------------------------------------------------´); for i := Low(CausasDeVariacao) to High(CausasDeVariacao) do begin Lista.Add(CausasDeVariacao[i] + StringOfChar(´ ´,25-Length(CausasDeVariacao[i])) + StringOfChar(´ ´,15-Length(Dados[0,i])) + Dados[0,i] + AlinhaADireita(Dados[1,i],15) + AlinhaADireita(Dados[2,i],15) + AlinhaADireita(Dados[3,i],15) + AlinhaADireita(Dados[4,i],15)); for j := Low(LinhasTraco) to High(LinhasTraco) do if i = LinhasTraco[j] - 1 then Lista.Add(´---------------------------------------------------------------------------------------------------------´); end; Lista.Add(´=========================================================================================================´); Lista.Add(´´); frmRelatTela.JvRichEdit1.Lines.AddStrings(Lista); Lista.Free;
a outra tabela é bem similar, portanto este código é chamado umas 30 vezes durante o procedimento.
O resto no procedimento é tudo loops, contas e conversões, normais...
Isso é recursividade?? Era pra dar Stack Overflow?? Devo eu aumentar o tamnho do stack?? Como q eu faço isso??
Desculpem o tamanho do post galera, eh q eu estou meio desesperado. Muitíssimo obrigado pela atenção.
Walter´
Fatal error: Maximum execution time of 30 seconds exceeded in D:\web\forum.devmedia.com.br\httpdocs\down_postsforum.php on line 70
Wart
Curtidas 0