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.
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
Curtir tópico
+ 0
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;
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:
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
Clique aqui para fazer login e interagir na Comunidade :)