fonction d'analyse d'un champs de base de donnée

fonction d'analyse d'un champs de base de donnée - Java - Programmation

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

Reply

Marsh Posté le 09-03-2004 à 14:34:49   

Reply

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


---------------
IVG en france
Reply

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


---------------
http://runnerstats.net
Reply

Marsh Posté le 09-03-2004 à 14:41:06    

noldor a écrit :

là où il existe ?
 
ben tu te connectes à ta base avec JDBC, et tu fais la requête qui va bien


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  

Reply

Marsh Posté le 09-03-2004 à 14:41:51    

uriel a écrit :

pour le java ou le SQL ?
toutes les fonctions en rapport :
http://java.sun.com/j2se/1.4.2/doc [...] mmary.html
 


c deja fait j'ai pas trouvé grand chose mais je vais reregarder

Reply

Marsh Posté le 09-03-2004 à 14:43:04    

bentaih a écrit :


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  
 


 
et toi tu veux que mot ou toute la ligne, ou tout le mot qui inclut mot ?


Message édité par uriel le 09-03-2004 à 14:43:16

---------------
IVG en france
Reply

Marsh Posté le 09-03-2004 à 14:43:23    

bentaih a écrit :


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  
 

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 ...


---------------
http://runnerstats.net
Reply

Marsh Posté le 09-03-2004 à 14:44:20    

bentaih a écrit :


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  
 


 
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

Reply

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 :heink:  

Reply

Marsh Posté le 09-03-2004 à 14:46:30    

uriel a écrit :


 
et toi tu veux que mot ou toute la ligne, ou tout le mot qui inclut mot ?


non que le mot  

Reply

Marsh Posté le 09-03-2004 à 14:46:30   

Reply

Marsh Posté le 09-03-2004 à 14:48:00    

bentaih a écrit :


 
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 :heink:  
 

je m'excite pas. Je te dis juste que si tu veux une réponse précise, faut que ta question le soit aussi


---------------
http://runnerstats.net
Reply

Marsh Posté le 09-03-2004 à 14:51:08    

uriel a écrit :


 
et toi tu veux que mot ou toute la ligne, ou tout le mot qui inclut mot ?


 
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

Reply

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

Reply

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


---------------
http://runnerstats.net
Reply

Marsh Posté le 09-03-2004 à 14:56:28    

noldor a écrit :

t'as regardé du coté de StreamTokenizer ?  
ça devrait te permettre facilement de récupérer ton numéro


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 :jap:

Reply

Marsh Posté le 09-03-2004 à 15:02:27    

noldor a écrit :

t'as regardé du coté de StreamTokenizer ?  
ça devrait te permettre facilement de récupérer ton numéro


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)

Reply

Marsh Posté le 09-03-2004 à 15:08:14    

bentaih a écrit :


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)

et ? en quoi ça t'empêche d'utiliser StreamTokenizer ?


---------------
http://runnerstats.net
Reply

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????


Message édité par bentaih le 09-03-2004 à 15:12:59
Reply

Marsh Posté le 09-03-2004 à 15:14:51    

select * from table where commentaire like "%mot%" ?
 
j'ai surement mal compris ?

Reply

Marsh Posté le 09-03-2004 à 15:16:14    

nico168 a écrit :

select * from table where commentaire like "%mot%" ?
 
j'ai surement mal compris ?


 
en effet  
ca donnera donc  
pe123.....
peinture
peine
pe......

Reply

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...

Reply

Marsh Posté le 09-03-2004 à 15:31:09    

nico168 a écrit :

Et tu voudrais que ca te donne quoi ?
Donne des cas concrets. avec les exceptions a gérer...
 


tt ce qui qui est sous forme  
 
 pe 123......
 pe123......  
 
(123... je veut dire par la n'importe quel chiffre)

Reply

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

Reply

Marsh Posté le 09-03-2004 à 15:51:31    

nico168 a écrit :

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


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 :jap:

Reply

Marsh Posté le 09-03-2004 à 15:55:17    

nico168 a écrit :

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

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


Message édité par bentaih le 09-03-2004 à 15:56:57
Reply

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
 
 

Reply

Marsh Posté le 09-03-2004 à 16:13:08    

nico168 a écrit :

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
 
 
 


 
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 :jap:

Reply

Marsh Posté le 09-03-2004 à 16:38:05    

y a quoi dans tes champs qui contiennent des nombres ? ça aiderait à connaitre leur structure


---------------
http://runnerstats.net
Reply

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


Message édité par bentaih le 10-03-2004 à 11:07:16
Reply

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


---------------
http://runnerstats.net
Reply

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
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


 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 :)

Reply

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
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


 
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

Reply

Marsh Posté le 10-03-2004 à 11:40:47    

bentaih a écrit :


 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 :)  


 

Code :
  1. // Parse a line whose separator is a comma followed by a space
  2.     inputStr = "a, b, c,d";
  3.     patternStr = ", ";
  4.     fields = inputStr.split(patternStr, -1);
  5. // ["a", "b", "c,d"]


---------------
IVG en france
Reply

Marsh Posté le 10-03-2004 à 11:49:21    

uriel a écrit :


 

Code :
  1. // Parse a line whose separator is a comma followed by a space
  2.     inputStr = "a, b, c,d";
  3.     patternStr = ", ";
  4.     fields = inputStr.split(patternStr, -1);
  5. // ["a", "b", "c,d"]




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

Reply

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 :jap:
en fait tu devrais ajouter un systeme de or dans ta regexp un peu comme ca:

Code :
  1. / Parse a line with and's and or's
  2.     inputStr = "a, b, and c";
  3.     patternStr = "[, ]+(and|or)*[, ]*";
  4.     fields = inputStr.split(patternStr, -1);
  5.     // ["a", "b", "c"]


pour prendre en compte les 2 types


---------------
IVG en france
Reply

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 :jap:
en fait tu devrais ajouter un systeme de or dans ta regexp un peu comme ca:

Code :
  1. / Parse a line with and's and or's
  2.     inputStr = "a, b, and c";
  3.     patternStr = "[, ]+(and|or)*[, ]*";
  4.     fields = inputStr.split(patternStr, -1);
  5.     // ["a", "b", "c"]


pour prendre en compte les 2 types  


 
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  :jap:  

Reply

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 :jap:


---------------
IVG en france
Reply

Marsh Posté le 10-03-2004 à 12:07:28    

uriel a écrit :

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 :jap:


je prefere continuer j'aime pas lacher et je trouverais quoi qu'il  arrive  :)

Reply

Marsh Posté le 10-03-2004 à 12:25:58    

uriel a écrit :

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 :jap:


 
merci a tous pour votre aide  
si je ttrouve la solution ideal je la metterais  
si vous avez encore des remarque ca ferais plaisir
 :hello:

Reply

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


Message édité par kotw le 10-03-2004 à 15:37:10
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed