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

_marco_

ficheiros

15 mensagens neste tópico

Olá

Será que alguem me pode ajudar a fazer um prog em java para ler um ficheiro até a uma determinada linha.

Depois em cada linha retirar as palavras. Palavras estas que vão ser necessárias para colocar num formulário

para serem editadas.

Cumprimentos,

Marco.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Explica lá isso melhor.

O ficheiro tem alguma estrutura especifica ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, cada linha do ficheiro são 80 caracteres. E depois cada linha tem informação.

Por exemplo na 1ª linha tipo os primeiros 20 caracteres sao para a versao, os 40

seguintes para o tipo e os ultimos 20 é relativo a outro tipo de informação

O que eu nao consigo fazer é ler a informação até uma certa linha, linha essa

que apenas contem os 20 ultimos caracteres : "END OF HEADER".

Após ler até essa linha, tenho de tratar de cada linha individualmente (dividir em subStrings).

Cumprimentos,

Marco

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olá

Isso ta a dar sempre erros. Fazendo o import java.util.* , para depois criar o metodo scanner dá sempre erro.

Cumprimentos,

Marco

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

package teqc;

import java.io.*;
import java.util.*;
//import sun.tools.java.Scanner;


public class Ficheiros {
   static public void main(String[] args){
   File file =new File("D:\\Download\\teqc_bc\\convertido.rnx");
   String word="                                                                   END OF HEADER";
   String w="END OF HEADER";
   Vector v= new Vector();
   
   try{

     BufferedReader br = new BufferedReader(new FileReader(file));
     String line= br.readLine();
     Scanner s = new Scanner(line);
     while (line != null ) {
       System.out.println(line);
       if(line==word){
         break;
       }
       line=br.readLine();
         //if(line.equalsIgnoreCase(word))
                       //  break;
   }

     //  while ((line = br.readLine()) != null) {
     //    if(line.equalsIgnoreCase("END OF HEADER"))
     //      v.addElement(line);
     //           //System.out.println("Linha " + v.elementAt(1));
     //          }
     br.close();
     }

     catch(Exception e){
     System.out.println("Mensagem " + e.getMessage());
   }
   for(int i=0;i<v.size();i++){
     System.out.println("Linha " + v.elementAt(i));
     if(v.elementAt(i)==w){
       break;
     }
   }
}
}


Erros:

"Ficheiros.java": cannot resolve symbol: class Scanner in class teqc.Ficheiros at line 19, column 6

"Ficheiros.java": cannot resolve symbol: class Scanner in class teqc.Ficheiros at line 19, column 22

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebes-te o que quis dizer o Scanner consegue abrir e ler directamente do ficheiro linha a linha não precisas do buffer para nada.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Percebi, mesmo assim aparece os mesmos erros de à pouco

package teqc;

import java.io.*;
import java.util.*;
//import sun.tools.java.Scanner;


public class Ficheiros {
   static public void main(String[] args){
   //File file =new File("D:\\Download\\teqc_bc\\convertido.rnx");
   //String word="                                                                   END OF HEADER";
   //String w="END OF HEADER";
   //Vector v= new Vector();

  // try{

     //BufferedReader br = new BufferedReader(new FileReader(file));
     //String line= br.readLine();
     Scanner s = new Scanner(new File("D:\\Download\\teqc_bc\\convertido.rnx"));
     //while (line != "END OF HEADER" ) {
      // System.out.println(line);
       //if(line==word){
       //  System.out.println("Existe");
       //}
      // line=br.readLine();
         //if(line.equalsIgnoreCase(word))
                       //  break;
  // }

     //  while ((line = br.readLine()) != null) {
     //    if(line.equalsIgnoreCase("END OF HEADER"))
     //      v.addElement(line);
     //           //System.out.println("Linha " + v.elementAt(1));
     //          }
    // br.close();
    // }

    // catch(Exception e){
    // System.out.println("Mensagem " + e.getMessage());
  // }
  // for(int i=0;i<v.size();i++){
   //  System.out.println("Linha " + v.elementAt(i));
  //   if(v.elementAt(i)==w){
  //     break;
  //   }
  // }
}
}

Entao exemplifica s.f.f

Cumprimentos,

Marco

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu nao tenho aqui nenhum compilador agora á mau por isso isto vai a olho LOL


Scanner sc = new Scanner( new File("Ficheiro") );
String linha;

while( sc.hasNextLine() ){
    linha = sc.nextLine();
   //Aqui fazes o que queres a essa linha.
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois mas mesmo assim aparece os tais erros. Faço o import com este caminho: import java.util.*

que é onde deveria estar o scanner. Será do meu compilador (jbuilder x).

Cumprimentos,

Marco

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tenta tirar o package e compilar isso com o javac mesmo da consola.

Realmente não encontro razões para isso não funcionar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O compilador não conhece a classe Scanner.

Estás a utilizar que versão do Java?

Tem que ser da verão 1.5 para cima, inclusive.

O package é java.util que já esta a ser importado...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando disse para retirar o package referia-me ao package que ele criou o package teqc.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Quando disse para retirar o package referia-me ao package que ele criou o package teqc.

Sim, eu percebi.

Quando refiro o package é o necessário para a classe Scanner.

Não me estava a referir às tuas indicações, espero não ter sido mal interpretado!

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