Fórum Qual o Erro Nesse Array/Instruçao? #364267

25/09/2008

0

Alo Colegas!

Criei um array para armazenar notas de alunos e posteriormente contar as maiores e menores, porém tá dando [b:6119c54cd9] Acesss violation at adress 006EF0B9 In module ´mbEscola.exe´ - write of adress[/b:6119c54cd9] e eu nao entendi nada...

o array é

var aNOTAFIM: array of double;

Daí como eu nao sei a quantidade total de notas a serem inseridas no array, criei um contador para dimensionar o mesmo.

nCounter: Integer;

e fiz a seguinte instruçao dentro de um WHILE:

SetLength(aNOTAFIM,aCOUNTER);
aNOTAFIM[aCounter] := dmD.qrBoletim.FieldByName(´TOTALNOTAS´).AsFloat;
Inc(aCounter);

Testando o valor do contador, o tamanho do array os dois estao ok, é na hora de inserir o valor no vetor que tá dando pau [b:6119c54cd9]aNOTAFIM[aCounter] := ... [/b:6119c54cd9]

Onde eu estou errando?


Obrigado mais uma vez, aos que puderem me ajudar.


Microbios

Microbios

Responder

Posts

25/09/2008

Emerson Nascimento

um array é iniciado em 0 (zero), portanto, você deveria acessa-lo assim:
aNOTAFIM[aCounter[b:32e184222c]-1[/b:32e184222c]] := dmD.qrBoletim.FieldByName(´TOTALNOTAS´).AsFloat;

de qualquer forma, eu alteraria a rotina e deixaria de usar uma variável.
eu faria assim:
SetLength(aNOTAFIM, Length(aNOTAFIM)+1);
aNOTAFIM[High(aNOTAFIM)] := dmD.qrBoletim.FieldByName(´TOTALNOTAS´).AsFloat;


Responder

Gostei + 0

25/09/2008

Microbios

Emerson.en;

Sua soluçao funciona como um relógio suíço. Muito obrigado pela ajuda!
Nao é a primeira que voce me salva... ehehheeheh

Obrigadao!

:lol:


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar