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