fonction d'analyse d'un champs de base de donnée - Java - Programmation
Marsh Posté le 09-03-2004 à 14:37:40
pour le java ou le SQL ? 
toutes les fonctions en rapport : 
http://java.sun.com/j2se/1.4.2/doc [...] mmary.html 
Marsh Posté le 09-03-2004 à 14:38:16
là où il existe ? 
 
ben tu te connectes à ta base avec JDBC, et tu fais la requête qui va bien
Marsh Posté le 09-03-2004 à 14:41:06
| noldor a écrit : là où il existe ?  | 
 
c  un peu plus compliquer que cela  
le mot rechercher et dans un champ ou les info sont sous forme de text genre  
blablablabbba mot balalllavbllalalalla 
blalalalalalmotballlallal 
donc la seule requete possible me donne des cas indesirable  
Marsh Posté le 09-03-2004 à 14:41:51
| uriel a écrit : pour le java ou le SQL ?  | 
 
c deja fait j'ai pas trouvé grand chose mais je vais reregarder
Marsh Posté le 09-03-2004 à 14:43:04
| bentaih a écrit :   | 
 
 
et toi tu veux que mot ou toute la ligne, ou tout le mot qui inclut mot ?
Marsh Posté le 09-03-2004 à 14:43:23
| bentaih a écrit :   | 
sois plus précis dans ce que tu veux, en nous donnant un exemple par exemple. parce que là, si on en est réduit à deviner ce que tu veux faire ...
Marsh Posté le 09-03-2004 à 14:44:20
| bentaih a écrit :   | 
 
 
en plus de cela il me faudra extraire le mot " en fait c un numero" pour qu'il soit isolé ds une table  afin de s'en servir
Marsh Posté le 09-03-2004 à 14:46:00
| noldor a écrit : sois plus précis dans ce que tu veux, en nous donnant un exemple par exemple. parce que là, si on en est réduit à deviner ce que tu veux faire ...  | 
 
 
pas besoin de s'exciter  
ce que j'ai expliqué est clair dis moi ce que tu veux savoir de plus et tu le sauras  
                 merci  
  
Marsh Posté le 09-03-2004 à 14:46:30
| uriel a écrit :   | 
 
non que le mot  
Marsh Posté le 09-03-2004 à 14:48:00
| bentaih a écrit :   | 
je m'excite pas. Je te dis juste que si tu veux une réponse précise, faut que ta question le soit aussi
Marsh Posté le 09-03-2004 à 14:51:08
| uriel a écrit :   | 
 
 
pour etre un peu plus clair je reexlique  
j'ai un champ commentaire dans ma base de donnée qui contient tt un tas d'infos  et parmis ces infos il y a un numero qui m'interesse "pe123...." 
donc il faudra peut etre prevoir un programme java pour faire l'annalyse du champ et extraire le n° voulu 
voila si vs avez d'autre question j'expliquerais 
Marsh Posté le 09-03-2004 à 14:53:20
| noldor a écrit : je m'excite pas. Je te dis juste que si tu veux une réponse précise, faut que ta question le soit aussi  | 
 
voila j'ai essayé d'etre clair , mais je sais pas si c suffisant
Marsh Posté le 09-03-2004 à 14:53:53
t'as regardé du coté de StreamTokenizer ?  
ça devrait te permettre facilement de récupérer ton numéro
Marsh Posté le 09-03-2004 à 14:56:28
| noldor a écrit : t'as regardé du coté de StreamTokenizer ?   | 
 
non j'ai pas vu  
je connais pas , je vais essayer de travailler avec mnt 
mais es  ce que tu peux   me montrer vite fais la methode avec la quelle il faut travailler avec StreamTokenizer ? 
   merci  
 
Marsh Posté le 09-03-2004 à 15:02:27
| noldor a écrit : t'as regardé du coté de StreamTokenizer ?   | 
 
oui je vois ce que ca fait comme  fonction seulement il va lire ds des fichiers texte ce qui n'est pas mon cas je travail en mode texte sous linux (pour preciser)
Marsh Posté le 09-03-2004 à 15:08:14
| bentaih a écrit :   | 
et ? en quoi ça t'empêche d'utiliser StreamTokenizer ?
Marsh Posté le 09-03-2004 à 15:11:52
| noldor a écrit : et ? en quoi ça t'empêche d'utiliser StreamTokenizer ?  | 
 
pardon j'ai pas bien expliqué 
mes donnée sont dans une base de donnée dbf que j'ai convertis (en base accessible avec par mysql) a l'aide d'un prog java et un drivers  
donc pas de fichier texte ds mon cas  
ou je me trompe????
Marsh Posté le 09-03-2004 à 15:14:51
select * from table where commentaire like "%mot%" ? 
 
j'ai surement mal compris ?
Marsh Posté le 09-03-2004 à 15:16:14
| nico168 a écrit : select * from table where commentaire like "%mot%" ?  | 
 
 
en effet  
ca donnera donc  
pe123..... 
peinture 
peine 
pe......
Marsh Posté le 09-03-2004 à 15:20:16
Et tu voudrais que ca te donne quoi ? 
Donne des cas concrets. avec les exceptions a gérer... 
Marsh Posté le 09-03-2004 à 15:31:09
| nico168 a écrit : Et tu voudrais que ca te donne quoi ?  | 
 
tt ce qui qui est sous forme  
 
 pe 123...... 
 pe123......  
 
(123... je veut dire par la n'importe quel chiffre) 
Marsh Posté le 09-03-2004 à 15:39:46
ben...a mon avis tu ne peut pas en SQL, 
moi je recupererais les données avec select * from table where commentaire like "%pe%" puis je ferais un traitement regex sur les resultat pour recuperer l'info qui m'interesse
Marsh Posté le 09-03-2004 à 15:51:31
| nico168 a écrit : ben...a mon avis tu ne peut pas en SQL,  | 
 
c'es ce que j'ai  fais pour la requete sql  
mais le traitement regex je sais pas ce que c'est  
peut m'expliquer un peu s'il te plait 
                                           
                                     merci  
 
Marsh Posté le 09-03-2004 à 15:55:17
| nico168 a écrit : ben...a mon avis tu ne peut pas en SQL,  | 
je te donne le code de mon prog java pour afficher les resultat de tt les commentaires ou il y a pe 
 
import java.sql.*; 
import java.util.Properties; 
import java.io.*; 
 
class transfert 
{ 
        public transfert(String c_table) 
        { 
                try { 
                        FileWriter fch= new FileWriter(c_table); 
                 
                        System.out.println("----------------------------------\n" ); 
                        System.out.println("Verif table " + c_table +"\n" ); 
                        System.out.println("----------------------------------\n" ); 
 
                        String my_sql = new String("" ); //va permettre de construire la requete SQL dynamique 
 
                        String c_sql = new String("SELECT COMMENTAIRE FROM table WHERE COMMENTAIRE LIKE '% PE%'" ); 
 
....... 
 
 
 
 
donc mnt les donnée je les recupere mais faudra les traiter pour avoir juste le "pe...." sans les autre mots
Marsh Posté le 09-03-2004 à 16:06:25
regex,regular expression, ou expression rationnelle en francais. 
c'est un outils qui permet de faire des recherche/substition de motif dans du texte. 
la syntaxe est assez deroutante au debut mais tres puissante. 
Je ne connais pas java, mais j'imagine qu'il y a moyen de faire des regexs, ce lien semble confirmer. 
http://mindprod.com/jgloss/regex.html 
 
 
Marsh Posté le 09-03-2004 à 16:13:08
| nico168 a écrit : regex,regular expression, ou expression rationnelle en francais.  | 
 
 
ok 
je suis entrain de les lire mais il me semble que c'est pas tt a fait suffisant 
mais j'essayerais de bien comprendre  
si qq a une autre solution n'hesiter a m'aider svp  
merci a tous  
 
Marsh Posté le 09-03-2004 à 16:38:05
y a quoi dans tes champs qui contiennent des nombres ? ça aiderait à connaitre leur structure
Marsh Posté le 10-03-2004 à 11:06:36
| noldor a écrit : y a quoi dans tes champs qui contiennent des nombres ? ça aiderait à connaitre leur structure  | 
 
c'est un seul champ de commentaire et il contient comme je l'ai deja dis :  
un n° que j'aimerais bien extraire de tt le commentaaire  
donc genre  
plan rrtettue tito pe 5254758  hhjehhhvejv 
mais y a aussi  
plan rrtettue tito peinture  pe 5254758  hhjehhhvejv 
   
d'ou le probleme car je pourais pas extraire que les n° avec des requetes tte simple car ma requete prendra en consideration aussi tt les pe inclus dans des mots
Marsh Posté le 10-03-2004 à 11:11:43
si les items sont séparés clairement par un espace, c'est fait en qques lignes avec un StringTokenizer 
sinon, comme dit précédemment, les regexp conviennent très bien 
 
sinon, l'archi de la base semble mal foutu : le numéro devrait se trouver dans un champ à part, puisqu'il contient du sens
Marsh Posté le 10-03-2004 à 11:16:53
| noldor a écrit : si les items sont séparés clairement par un espace, c'est fait en qques lignes avec un StringTokenizer  | 
 
 oui effectivement la base de donnée est trés mal foutu mais imposs de la changé ( base enorme) 
mnt j'ai trouvé une fonction qui peut faire l'affaire  
c'est string[]split(string regex) 
mais es ce que tu n'as pas un exemple d'utilisation de cette fonction  merci  
 
Marsh Posté le 10-03-2004 à 11:18:35
| noldor a écrit : si les items sont séparés clairement par un espace, c'est fait en qques lignes avec un StringTokenizer  | 
 
 
j'ai essayé de le faire hier avec StringTokenizer mais j'ai pas reussi peut tu me donnée un exemple si t'es sur  que c qui resoudra mon probleme
Marsh Posté le 10-03-2004 à 11:40:47
| bentaih a écrit :   | 
 
 
| Code : 
 | 
Marsh Posté le 10-03-2004 à 11:49:21
| uriel a écrit :   
   | 
 
ca ne resout pas mon probleme vu que ds les n° il y pe32244   et pe 65434 
donc ce dernier genre est faisable mais le premier pas  
je sais pas si je me trompe dis moi stp
Marsh Posté le 10-03-2004 à 11:53:10
il faudrait adapter la regexp pour ton cas, mais c'est un exemple de la fonction split  
 
en fait tu devrais ajouter un systeme de or dans ta regexp un peu comme ca: 
| Code : 
 | 
 
pour prendre en compte les 2 types 
Marsh Posté le 10-03-2004 à 12:04:10
| uriel a écrit : il faudrait adapter la regexp pour ton cas, mais c'est un exemple de la fonction split  
   | 
 
 
donc dans mon cas ca va etre  
 public string[] split(string regex) 
   { 
         inputStr = "resultat requete mysql"; 
         patternStr = "[PE ]+(and|or)*[PE]*"; 
         fields = inputStr.split(patternStr, -1); 
   } 
je suis sur que c pas ca je crois que j'ai pas bien compris ce que tu dis  
je m'excuse d'etre chiant mais comme j'ai dis au debut je suis debutant  
mirci   
  
Marsh Posté le 10-03-2004 à 12:05:37
je juge pas, java et les regex c'est pas le pied  
 
y a des packages bien mieux fait que ceux de l'API java, mais si c'est pas necessaire autant pas s'encombrer 
Marsh Posté le 10-03-2004 à 12:07:28
| uriel a écrit : je juge pas, java et les regex c'est pas le pied  | 
 
je prefere continuer j'aime pas lacher et je trouverais quoi qu'il  arrive   
 
Marsh Posté le 10-03-2004 à 12:25:58
| uriel a écrit : je juge pas, java et les regex c'est pas le pied  | 
 
 
merci a tous pour votre aide  
si je ttrouve la solution ideal je la metterais  
si vous avez encore des remarque ca ferais plaisir 
  
 
Marsh Posté le 10-03-2004 à 15:34:48
Salut, pour l'utilisation de StringTokenizer, tu peux essayer ça pour voir : 
 
String src = new String(); 
String strTemp = c_sql.toLowerCase(); 
StringTokenizer token = new StringTokenizer (strTemp, " ,pe" ); 
while (token.hasMoreTokens()) 
{ 
  src = token.nextToken(); 
} 
 
les trucs du genre "pe123" ou "pe 123" donneront "123" dans src
Marsh Posté le 09-03-2004 à 14:34:49
salut tt monde
je suis debutant en java et entrain de faire un petit programme qui va me chercher un mot specifique la ou il exite dans un champ de ma base de donnée es ce qq peut m'aider en me donnant une idée sur une fonction ou une methode a suivre .
merci