• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

firejonh

Guardar informação em arrays atraves de um ficheiro

2 mensagens neste tópico

Boa tarde pexoal,

Eu tenho um ficheiro notas.dad onde estão os seguintes dados e no programa que estou a fazer em java tenho que ler do ficheiro estes valores:

4

8.4 12.4 "João Martins"

10.2 15.0 "Ana Almeida"

19.1 14.5 "Carlos Silva"

13.2 10.1 "Inês Costa"

O que é pedido é fazer um array bidimensional double aos 2primeiros valores, um array int no 3ºvalor e um array string no 4ºvalor. Onde o 4 da primeira linha é o numero de linhas do ficheiro. Este valor nao pode entrar no valores recolhidos para o array.

Eu tentei fazer axim mas não deu. Têns sugestões?

Scanner fichpadroes= new Scanner(new File("padroes.dad"));

while(fichpadroes.hasNext()){

double [][]uva;

uva= new double[fichpadroes.nextInt()][2];// 500 linha onde estão os 2 parametros

for(int peso=1;peso<uva.length;peso++){// imprime como matriz

uva[peso]= fichpadroes.hasNextDouble();

}

int []uva1;

uva1= new int[fichpadroes.nextInt()];

for(int pigm=1;pigm<uva1.length;pigm++){

uva1[pigm]=fichpadroes.nextInt();

}

String  []uva2;

uva2= new String[fichpadroes.nextInt()];

for(int classe=1;classe<uva2.length;classe++){

uva2[classe]=fichpadroes.next();

}

}

fichpadroes.close();

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Uma solução quick & dirty será:

A primeira coisa é leres o ficheiro até encontrares a 1ª linha que não seja vazia.

Ai lês o valor como inteiro, que é o número de linhas que tens de ler.

Depois fazes um ciclo de 1 até ao valor que leste lendo cada uma das linhas de cada vez.

Por cada linha que leste, eliminas todas as " existentes e fazes um split da string por espaços, obténs assim um array.

Esse array terá na primeira posição o primeiro valor double, na segunda posição o segundo valor double e em todas as restantes posições todas as palavras da restante linha, que só tens de concatenar adicionando um espaço entre cada palavra.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora