Preencher array dentro de umwhile

08/05/2012

0

Como eu faço para preencher um array de n-posições, dentro de um while?
Atenção!!!!
Não é lista e nem for. É array dentro de um while

if(dr.HasRows){
while(dr.read())
preenche_aqui_meu_array;
Pjava

Pjava

Responder

Posts

08/05/2012

Joel Rodrigues

Cria um contador, por exemplo:
int cont = 0;
while(dr.Read())
{
vetor[cont] = elemento;
cont++
}
Responder

09/05/2012

Pjava

Realmente eu fiz isso e deu certo. Em realidade eu tenho uma dúvida e eu não soube explicar, razão pela qual ainda não resolvi. É o seguinte:
Eu tenho um recordset que me traz N registros. Meus arrays são inicializados com valor de uma variável, que chamo de dia, dessa forma:

doublearrayEmissor = new double[dia];

Essa variável, ela me traz a quantidade de dias de um mes. No meu while, vai trazendo informações, mas meu array somente suporta, por exemplo, 30 posições, para o mes de abril. Aí vem a dúvida. Preciso travar os registros parao tamanho do array(tentarei fazer isso por query) e onde não haver informações, preencher o array com valor 0(zero). Com lista eu não consegui isso, por isso fiz com array. Pode ser que eu esteja atropelando o negócio,mas acho ser isso. Essa é minha duvida de como preencher array em um while.Limitar o tamanho do while. Desculpa-me se não fui claro. Qualquer coisa eu tento esclarecer mais.
Responder

09/05/2012

Joel Rodrigues

Vamos lá, um pouco de teoria antes. O comando WHILE é executado ENQUANTO uma condição (booleana) for atendida, certo? Então eu posso querer executar esse laço enquanto meu contador for menor que um certo valor, correto? Ficaria semelhante a isso:
int cont = 0;
while(dr.Read() && cont < dia)
{
vetor[cont] = elemento;
cont++
}


Com isso, quando o valor de cont for igual a quantidade máxima de dias, o laço é interrompido e não passa para a próxima iteração. Como começamos a contar do zero, usamos o operador < para parar o laço. Se iniciássemos de 1, deveria ser usado <=.

Deu pra sacar a ideia?
Responder

09/05/2012

Pjava

Joel, primeiro obrigado pelas suas importantísimas ajuda para mim. O problema é que eu não estou sabendo passar as minhas dúvidas. Agora fazendo um debug na aplicação, acho que posso explicar melhor. A query me traz o código, o somatório e o dia. Então, para cada série do array, eu preciso informar que ele deve pegar pelo indice dia, assim. Vamos dizaer(é o rea l hoje) assim:
Aquery lista codigo 0 do dia 1 ao 21. Depois ela lista código 24 do dia 5 ao 25. Bem, acontece que como eu estou adicionando em cima do i, quando eu começo a preencher o array que leva o código 24, por exemplo, ele já começa na posíção 22 e não na 5. Eu deveria atribuir a posição do array ao dia e não fazer um incremento em i, pois isso faria ir até o fim, sem respeitaras posições. Como eu faço isso?
Responder

09/05/2012

Joel Rodrigues

Não sei se entendi exatamente, mas o índice do item do array que você vai passar não é exatamente o contador, é isso? Esse índice é o número do dia? Se for, você pode passar a variável dia entre colchetes, assim, dia será o índice do item. Seria isso?
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar