Java:affichage d'une partie du fichier texte
Fermé
courageuse
Messages postés
5
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
15 avril 2009
-
15 avril 2009 à 21:15
Utilisateur anonyme - 17 avril 2009 à 10:19
Utilisateur anonyme - 17 avril 2009 à 10:19
A voir également:
- Java:affichage d'une partie du fichier texte
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Jeux java itel touche - Forum Mobile
3 réponses
courageuse
Messages postés
5
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
15 avril 2009
15 avril 2009 à 23:15
15 avril 2009 à 23:15
please help
Utilisateur anonyme
16 avril 2009 à 02:59
16 avril 2009 à 02:59
Bonjour,
Tu veux afficher par exemple après la 9ème ligne (donc à partir de la ligne 10) ?
Ou bien après la ligne contenant une chaîne précise (exemple ligne = "Ligne 9" ?
Dans le 1er cas tu utilises un compteur de lignes que tu incrémentes chaque fois que ligne !=null
Dans le second cas c'est moins facile car il faut connaître le contenu exact de la dernière ligne à ignorer
Après modf de to code BufferedReader et avec un fichier "desLignes.txt" contenant 52 lignes "Ligne 1" à "Ligne 52" :
InputStream is = null;
InputStreamReader isr = null;
BufferedReader br = null;
String affichage = "";
String ligne;
String fich2 = "desLignes.txt";
boolean ignorer;
// premier cas:
int ctrLigne = 0;
int apres = 19; // ou si on veut quad même tout lister apres = -1;
try
{
is = new FileInputStream(fich2);
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
while((ligne = br.readLine())!= null)
{
ctrLigne++;
if (ctrLigne > apres)
{
affichage+= ligne + "\n";
}
}
br.close();
System.out.println("affichage du premier cas:\n" + affichage + "\n\n");
javax.swing.JOptionPane.showMessageDialog(null," FIN DU PRENIER CAS.");
}
catch (IOException ioe)
{
System.out.println(ioe.toString());
javax.swing.JOptionPane.showMessageDialog(null," Fichier "
+ fich2 + " non trouvé");
}
// et pour le second cas:
affichage = "";
try
{
is = new FileInputStream(fich2);
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
//BufferedReader Fich2 = new BufferedReader(new FileReader("desLignes.txt"));
String apresLaLigne = "Ligne 29";
// ou bien String apresLaLigne = "<tout>"; // si on veut tout afficher
if (apresLaLigne.equals("<tout>"))
ignorer = false;
else
ignorer = true;
while((ligne = br.readLine())!= null)
{
if (ignorer) // true par defaut
{
if (ligne.equals(apresLaLigne))
ignorer = false;
}
if ( (ignorer == false) && (!ligne.equals(apresLaLigne)) )
{
affichage+= ligne + "\n";
}
}
br.close();
System.out.println("affichage du second cas:\n" + affichage);
javax.swing.JOptionPane.showMessageDialog(null," FIN.");
}
catch (IOException ioe)
{
System.out.println(ioe.toString());
javax.swing.JOptionPane.showMessageDialog(null," Fichier "
+ fich2 + " non trouvé");
}
Cordialement,
Dan
Tu veux afficher par exemple après la 9ème ligne (donc à partir de la ligne 10) ?
Ou bien après la ligne contenant une chaîne précise (exemple ligne = "Ligne 9" ?
Dans le 1er cas tu utilises un compteur de lignes que tu incrémentes chaque fois que ligne !=null
Dans le second cas c'est moins facile car il faut connaître le contenu exact de la dernière ligne à ignorer
Après modf de to code BufferedReader et avec un fichier "desLignes.txt" contenant 52 lignes "Ligne 1" à "Ligne 52" :
InputStream is = null;
InputStreamReader isr = null;
BufferedReader br = null;
String affichage = "";
String ligne;
String fich2 = "desLignes.txt";
boolean ignorer;
// premier cas:
int ctrLigne = 0;
int apres = 19; // ou si on veut quad même tout lister apres = -1;
try
{
is = new FileInputStream(fich2);
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
while((ligne = br.readLine())!= null)
{
ctrLigne++;
if (ctrLigne > apres)
{
affichage+= ligne + "\n";
}
}
br.close();
System.out.println("affichage du premier cas:\n" + affichage + "\n\n");
javax.swing.JOptionPane.showMessageDialog(null," FIN DU PRENIER CAS.");
}
catch (IOException ioe)
{
System.out.println(ioe.toString());
javax.swing.JOptionPane.showMessageDialog(null," Fichier "
+ fich2 + " non trouvé");
}
// et pour le second cas:
affichage = "";
try
{
is = new FileInputStream(fich2);
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
//BufferedReader Fich2 = new BufferedReader(new FileReader("desLignes.txt"));
String apresLaLigne = "Ligne 29";
// ou bien String apresLaLigne = "<tout>"; // si on veut tout afficher
if (apresLaLigne.equals("<tout>"))
ignorer = false;
else
ignorer = true;
while((ligne = br.readLine())!= null)
{
if (ignorer) // true par defaut
{
if (ligne.equals(apresLaLigne))
ignorer = false;
}
if ( (ignorer == false) && (!ligne.equals(apresLaLigne)) )
{
affichage+= ligne + "\n";
}
}
br.close();
System.out.println("affichage du second cas:\n" + affichage);
javax.swing.JOptionPane.showMessageDialog(null," FIN.");
}
catch (IOException ioe)
{
System.out.println(ioe.toString());
javax.swing.JOptionPane.showMessageDialog(null," Fichier "
+ fich2 + " non trouvé");
}
Cordialement,
Dan
Merci Danimo pour ta reponse. cé une bonne idée, cela me permet d'afficher a partir d'un numero de ligne le reste du fichier. mais si je veux afficher seulement une partie du fichier.par exemple mon fichier est composé:
....
...
...
[azerty]
....
....
...
[querty]
.......
.......
...
si je veux afficher de [azerty] jusqu'a le [] suivant(oû on s'arrete).
tous le fichier est composé comme cette architecture. le nom entre accolade est saisie comme entrée au clavier por lister ces détails(ces lignes qui le suive)
est que vous avez une idée.
merci
....
...
...
[azerty]
....
....
...
[querty]
.......
.......
...
si je veux afficher de [azerty] jusqu'a le [] suivant(oû on s'arrete).
tous le fichier est composé comme cette architecture. le nom entre accolade est saisie comme entrée au clavier por lister ces détails(ces lignes qui le suive)
est que vous avez une idée.
merci
Utilisateur anonyme
17 avril 2009 à 10:19
17 avril 2009 à 10:19
Salut,
InputStream is = null;
InputStreamReader isr = null;
BufferedReader br = null;
String fich2 = "desLignes.txt";
try
{
is = new FileInputStream(fich2);
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
String affichage = "";
String affTitre = "Affichage ";
String ligne;
boolean ignorer;
int ctrLigne = 0;
int ligneDeb = 0;
int ligneFin = 0;
String depuis = "";
/**
*
* Si on veut lister tout: depuis = "<tout>";
*
* ou bien:
* si on veut lister par exemple depuis la ligne 12 jusqu'a la ligne 40
* ligneDeb = 12; et ligneFin = 40;
*
* ou bien:
* si on veut lister depuis "[azerty]" non inclus jusqu'au prochain "[" non inclus:
* depuis = "[azerty]";
* LA BALISE DÉBUT DE FICHIER (1ERE LIGNE) EST OBLIGATOIRE SINON PAS D'AFFICHAGE
* POSSIBLE DU 1ER GROUPE.
* PAR CONTRE LA BALISE FIN DE FICHIER NE L'EST PAS MAIS PEUT EXISTER.
*
**/
// Pour essayer :
// Ces 2 lignes
//ligneDeb = 12;
//ligneFin = 40;
// ou bien cette ligne
//depuis = "<tout>";
// ou bien celle-ci
depuis = "[debut 3]";
// à remplacer par une saisie clavier
if (depuis.equals("<tout>"))
{
affTitre+= "de tout.\n";
ligneDeb = 1;
ligneFin = 99999;
}
if (ligneDeb !=0)
{
if (!depuis.equals("<tout>"))
{
affTitre+= "du num. de ligne " + ligneDeb + " au num. de ligne "
+ ligneFin + ".\n";
}
while((ligne = br.readLine())!= null)
{
ctrLigne++;
if ( (ctrLigne >= ligneDeb) && (ctrLigne <ligneFin +1) )
{
affichage+= ctrLigne + " " + ligne + "\n";
}
}
br.close();
System.out.println(affTitre + "\n" + affichage + "\n\n");
}
// et pour le cas entre limites "[xxxxx]" et "["
if (ligneDeb == 0)
{
affTitre+= "de " + "\"" + depuis + "\" jusqu'au prochain debut de ligne " + "\"[\"\n"
+ " (bornes non comprises.)\n";
affichage = "";
ignorer = true;
while((ligne = br.readLine())!= null)
{
if (ignorer) // true par defaut
{
if (ligne.equals(depuis))
ignorer = false;
}
if ( (ignorer == false) && (!ligne.equals(depuis)) )
{
int index = ligne.indexOf("[");
if ( (ignorer == false) && (index == 0) )
{
//affichage+= ligne + "\n";
break;
}
else
if (ignorer == false)
{
affichage+= ligne + "\n";
}
}
}
br.close();
System.out.println(affTitre + "\n" + affichage);
}
javax.swing.JOptionPane.showMessageDialog(null," FIN.");
}
catch (IOException ioe)
{
System.out.println(ioe.toString());
javax.swing.JOptionPane.showMessageDialog(null," Fichier "
+ fich2 + " non trouvé");
}
Cordialement,
Dan
InputStream is = null;
InputStreamReader isr = null;
BufferedReader br = null;
String fich2 = "desLignes.txt";
try
{
is = new FileInputStream(fich2);
isr = new InputStreamReader(is);
br = new BufferedReader(isr);
String affichage = "";
String affTitre = "Affichage ";
String ligne;
boolean ignorer;
int ctrLigne = 0;
int ligneDeb = 0;
int ligneFin = 0;
String depuis = "";
/**
*
* Si on veut lister tout: depuis = "<tout>";
*
* ou bien:
* si on veut lister par exemple depuis la ligne 12 jusqu'a la ligne 40
* ligneDeb = 12; et ligneFin = 40;
*
* ou bien:
* si on veut lister depuis "[azerty]" non inclus jusqu'au prochain "[" non inclus:
* depuis = "[azerty]";
* LA BALISE DÉBUT DE FICHIER (1ERE LIGNE) EST OBLIGATOIRE SINON PAS D'AFFICHAGE
* POSSIBLE DU 1ER GROUPE.
* PAR CONTRE LA BALISE FIN DE FICHIER NE L'EST PAS MAIS PEUT EXISTER.
*
**/
// Pour essayer :
// Ces 2 lignes
//ligneDeb = 12;
//ligneFin = 40;
// ou bien cette ligne
//depuis = "<tout>";
// ou bien celle-ci
depuis = "[debut 3]";
// à remplacer par une saisie clavier
if (depuis.equals("<tout>"))
{
affTitre+= "de tout.\n";
ligneDeb = 1;
ligneFin = 99999;
}
if (ligneDeb !=0)
{
if (!depuis.equals("<tout>"))
{
affTitre+= "du num. de ligne " + ligneDeb + " au num. de ligne "
+ ligneFin + ".\n";
}
while((ligne = br.readLine())!= null)
{
ctrLigne++;
if ( (ctrLigne >= ligneDeb) && (ctrLigne <ligneFin +1) )
{
affichage+= ctrLigne + " " + ligne + "\n";
}
}
br.close();
System.out.println(affTitre + "\n" + affichage + "\n\n");
}
// et pour le cas entre limites "[xxxxx]" et "["
if (ligneDeb == 0)
{
affTitre+= "de " + "\"" + depuis + "\" jusqu'au prochain debut de ligne " + "\"[\"\n"
+ " (bornes non comprises.)\n";
affichage = "";
ignorer = true;
while((ligne = br.readLine())!= null)
{
if (ignorer) // true par defaut
{
if (ligne.equals(depuis))
ignorer = false;
}
if ( (ignorer == false) && (!ligne.equals(depuis)) )
{
int index = ligne.indexOf("[");
if ( (ignorer == false) && (index == 0) )
{
//affichage+= ligne + "\n";
break;
}
else
if (ignorer == false)
{
affichage+= ligne + "\n";
}
}
}
br.close();
System.out.println(affTitre + "\n" + affichage);
}
javax.swing.JOptionPane.showMessageDialog(null," FIN.");
}
catch (IOException ioe)
{
System.out.println(ioe.toString());
javax.swing.JOptionPane.showMessageDialog(null," Fichier "
+ fich2 + " non trouvé");
}
Cordialement,
Dan