import java.io.*;
import java.util.regex.*;
public class ParserSql
{
public static void main(String[] args)
{
ParserSql parserSql = new ParserSql();
parserSql.ParserSqlForRecupTableName("toto.txt");
parserSql.ParserSqlForRecupTableFields("toto.txt");
}
public void ParserSqlForRecupTableName(String inputFile)
{
try
{
BufferedReader lecteurAvecBuffer = null;
lecteurAvecBuffer = new BufferedReader(new FileReader(inputFile));
String ligneLue;
while((ligneLue = lecteurAvecBuffer.readLine()) != null)
{
if (ligneLue.matches(".*CREATE TABLE.*"))
{
boolean TableNameBegin = false;
String TableName = "";
for (int i = 0; i < ligneLue.length(); i++)
{
if (ligneLue.charAt(i) == '`' && TableNameBegin == true)
{
System.out.println("TableName : " + TableName);
return;
}
if (TableNameBegin == true)
{
TableName += ligneLue.charAt(i);
}
if (ligneLue.charAt(i) == '`' && TableNameBegin == false)
{
TableNameBegin = true;
}
}
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
public void ParserSqlForRecupTableFields(String inputFile)
{
try
{
BufferedReader lecteurAvecBuffer = null;
lecteurAvecBuffer = new BufferedReader(new FileReader(inputFile));
String ligneLue;
System.out.println("TableFields : ");
while((ligneLue = lecteurAvecBuffer.readLine()) != null)
{
if (ligneLue.trim().matches("`.*"))
{
String[] ligneLueTab = ligneLue.split(" ");
for (int i = 0; i < ligneLueTab.length; i++)
{
if (ligneLueTab[i].trim().equals("NOT"))
System.out.print(ligneLueTab[i] + " " + ligneLueTab[i + 1] + "#");
else
System.out.print(ligneLueTab[i] + "#");
}
System.out.println("");
}
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Bon voila ceci résoud ton problème en ce qui concerne
l' extraction du nom de la table et des champs.
J'ai fait ce code assez rapidement, si cela n 'est pas assez
clair je le détaillerais...
Pour en faire bon usage, il suffit de remplacer les "toto.txt"
par le nom de ton fichier, ce code fonctionne pour le format
de fichier que tu as fourni sur le post ci avant.
Bonne chance
Bon voila ceci résoud ton problème en ce qui concerne
l' extraction du nom de la table et des champs.
J'ai fait ce code assez rapidement, si cela n 'est pas assez
clair je le détaillerais...
Pour en faire bon usage, il suffit de remplacer les "toto.txt"
par le nom de ton fichier, ce code fonctionne pour le format
de fichier que tu as fourni sur le post ci avant.
Bonne chance