Bonjour,

Actuellement je suis en train de créer un parseur pour les requêtes SQL. J'arrive à parser caque élément d'une requête grâce à tonkenizer.
je voudrais affecter les valeurs de sortie a un tableau.

mon code est:


Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
60
61
62
63
64
65
66
67
68
69
70
71
72
import java.io.*;
import java.util.StringTokenizer;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
 
public class Validator {
 
	public static void main(String[] args){
 
	String fichier ="INSERT.tqsq";
	String ligne = new String();
	String text = new String();
	String token = "";
	String Query ="";
	String QuerySpace ="";
	String QueryLigne ="";
	String QueryDataIn ="";
	String QueryDataOut ="";
	String QueryDataEnd ="";
	String QueryType ="";
	String Instruction ="";
	int Longueur = 0;
 
 
	try{
		InputStream ips=new FileInputStream(fichier); 
		InputStreamReader ipsr=new InputStreamReader(ips);
		BufferedReader br=new BufferedReader(ipsr);
 
		while ((ligne=br.readLine())!=null){
			text = ligne;
		}
		br.close(); 
	}		
	catch (Exception e){
		System.out.println(e.toString());
	}		
 
	text=text.toUpperCase();
 
	String ModeParser=text;
	Pattern phrase1=Pattern.compile("MODE=\"(.*)\" NUMBER");
	Matcher mot1=phrase1.matcher(ModeParser);
	while(mot1.find()){
	QueryType = mot1.group(1);
	}	
	//System.out.println(QueryType);
 
	String aParser=text;
	Pattern phrase2=Pattern.compile("QUERY=\"(.*)\" QUERYPARAM");
	Matcher mot2=phrase2.matcher(aParser);
	while(mot2.find()){
	Query = mot2.group(1);
	}
 
 
	QuerySpace=Query.replace("
"," ");
	QueryLigne=QuerySpace.replace("	"," ");
	QueryDataIn=QueryLigne.replace("'["," ");
	QueryDataOut=QueryDataIn.replace("]'"," ");
	QueryDataEnd=QueryDataOut.replace(","," ,");
	Longueur = QueryDataEnd.length();
	//System.out.println(QueryDataEnd);
	//System.out.println(Longueur);
 
	StringTokenizer st = new StringTokenizer(QueryDataEnd);
 
	while (st.hasMoreTokens()) {
		token = st.nextToken();
 
		System.out.println(token );
Le résultat est:

INSERT
INTO
TRAINING_USER
(TRAINING_USER.SITE_ID
,
TRAINING_USER.SITE_NAME
)
VALUES
(
PARAM.1
,
PARAM.2
)
pourriez vous me dire comment puisse je creer un tableau avec les valeur de sortie?

Merci

Cordialement.

Javier