Bonjour,
Je voudrais faire une méthode qui soit capable de lire un fichier, puis d'ajouter à un vecteur le contenu de le commentaire trouvé
depuis son début ("/**") et jusqu'à sa fin ("*/"). Mais j'avoue que j'ai un peu du mal avec l'agorithme
Je sais lire un fichier ligne par ligne
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| try
{
File file = new File(fileName);
FileReader reader = new FileReader(file);
BufferedReader in = new BufferedReader(reader);
String line;
while ((line = in.readLine()) != null)
{
}
in.close();
}
catch (IOException e)
{
e.printStackTrace();
} |
je sais détecter le début d'un commentaire (façon porka certes mais j'en ai besoin rapidement)
if(line.lastIndexOf("/**")!=-1) // début du commentaire
je sais détecter le milieu d'un commentaire
if(line.lastIndexOf("*")!=-1)
je sais détecter la fin d'un commentaire
if(line.lastIndexOf("*/")!=-1)
ce que je fais c'est que j'ajoute la ligne ainsi retournée dans un vecteur, mais comment je suis dans une boucle, j'ai pas le commentaire(du début à la fin) dans une case du vecteur, mais le début dans une case, le milieu dans la suivante (et d'autre tant qu'il y a un milieu), et puis la fin dans une autre case.
Mais je voudrais récupérer le commentaire en entier
Je vous pas comment je peux faire, auriez vous des idées pour moi ?
EDIT : Je pense que je suis pas assez explicite, j'ai fais ça
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| package com.datalion.ant.plugin;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Hashtable;
/**
* This class is supposed to extract comment from files
*
* @author Marwan Rabbaa
* @version 1.0 beta 1
* @since 21/03/08
*
*/
public class Reader
{
private static void readFile(String fileName)
{
Hashtable <Integer, String> comments = new Hashtable<Integer, String>();
try {
File file = new File(fileName);
FileReader reader = new FileReader(file);
BufferedReader in = new BufferedReader(reader);
String line;
while ((line = in.readLine()) != null)
{
String string = line.trim();
String comment = "";
Integer i = new Integer(0);
if(string.lastIndexOf("/**")!=-1)
{
comment = string;
}
else if(string.lastIndexOf("*")!=-1)
{
comment += string;
}
else if (string.lastIndexOf("*/") != -1)
{
comment += string;
}
System.out.println("---DEBUT--- ");
System.out.println(comment);
System.out.println("---FIN--- ");
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(comments);
}
public static void main(String[] args) {
readFile("/Documents and Settings/mrabbaa/"
+ "Mes documents/workspace/skyrecon/class/org.skyrecon.handler.FileHandler.php");
}
} |
mais voila chaque ligne est un commentaire, ce que je voudrais c'est détecter les commentaires sur plusieurs lignes
Partager