Ajouter un commentaire

Niroken
Une aide:)

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

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 H  H  W     W  BBBB   L     X   X 
H H W W B B L X X
HHHH W W W BBBB L X
H H W W W B B L X X
H H W W BBBB LLLL X X