begin process at 2012 05 28 16:05:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

analyse lexicale, comment faire?


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

analyse lexicale, comment faire?

jeudi 31 août 2006 à 10:31:10 | analyse lexicale, comment faire?

selim68

Bonjour,
J'aimerai définir des criticités à des produits de ma base de données, ceux-ci seront définit par l'utilisateur, exemple de saisie possible:
   vert: taille>26 ET {poids<120 OU encombrement>100}
   jaune: taille>26 
   rouge:taille<26 ET {poids>120 OU encombrement>1000}

j'aimerai analyser cette chaine de caractères, cependant le problème peut devenir assez complexe, et je voulais savoir si vous avez des idées pour résoudre ce problème dans un premier temps OU bien si vous pouvez me proposer une autre solution (autre type de saisie, éventuellement) pour ce problème .
 Merci..
jeudi 31 août 2006 à 13:23:09 | Re : analyse lexicale, comment faire?

malalam

Administrateur CodeS-SourceS
Hello,

le mieux est encore sans doute de créer un formulaire adapté. Histoire d'éviter un parsing.
Sinon, il te reste à définir ta grammaire, et créer les règles avec des expressions régulières.

jeudi 31 août 2006 à 14:54:06 | Re : analyse lexicale, comment faire?

DiGhan

Salut,

je rejoins l'idée de malalam concernant les expression régulières.
jeudi 31 août 2006 à 17:12:12 | Re : analyse lexicale, comment faire?

selim68

pour le formulaire , c'est ne va pas trop parce que pour l'instant on ne sait toujours pas comment est ce que l'on va définir les criticités et aussi quelle paramètres aura une incidence dans la criticité.
sinon les pour les expressions régulières est ce que vous pouvez me donner un exemple pour que je vois comment vous faites.
Merci pour votre réponse en tout cas.

jeudi 31 août 2006 à 20:14:17 | Re : analyse lexicale, comment faire?

DiGhan

Salut,

voici une petite aide(si j'ai bien tout compris) :
<?php
function parse_string($pString,$pPattern) {
  $charac = array();
  preg_match_all($pPattern,$pString,$matches,PREG_SET_ORDER); //départ de l'analyse de la chaine
  $num = count($matches);
  #enregistrement des données récupérées dans un tableau plus facile à lire
  for ($i=0; $i<$num; $i++) {
    $charac[ $matches[$i][1] ] = $matches[$i][2];
}
return ($charac);
}

$string = "je veux un marteau de #couleur:verte ayant une #taille:16 et pesant un #poids:10"; //chaine à analyser
$pattern = '`#(couleur|taille|poids):([a-z0-9]+)`i'; //forme des entités à récupérer

$infos = parse_string($string,$pattern);
# affichage des infos retournées
echo "Caractéristiques de mon marteau:<br />\n";
foreach ($infos as $nom=>$val) {
  echo "$nom - $val<br />\n";
}
?>

adresse trés utilise: www.php.net / recherche: preg_... ou regex
vendredi 1 septembre 2006 à 09:28:15 | Re : analyse lexicale, comment faire?

coockiesch

Salut!
Le pb c'est que faisant ça, tu loupes l'ordre des opérateurs (et la prédominance des { })

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
vendredi 1 septembre 2006 à 10:10:58 | Re : analyse lexicale, comment faire?

selim68

oui effectivement, ce type de parsing revient a tout considérer comme une relation de ET entre les conditions : mais c'est pas trop ce que je voulais faire.
Cependant cette idée est interessante.
Il me semble qu'utiliser une décomposition en un arbre de l'expression permettrait déjà de simplifier le problème.
vendredi 1 septembre 2006 à 10:15:07 | Re : analyse lexicale, comment faire?

coockiesch

Oui, c'est ce à quoi, je pensais:
tu pourrais déjà parser selon les opérateurs ( ET, OU ) et les délimiteurs ( { } ) en un arbre. Ensuite, pour chaque item, il faudra effectuer la recherche des critères...

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
vendredi 1 septembre 2006 à 10:26:59 | Re : analyse lexicale, comment faire?

selim68

yaurai pas qqn qui a deja fait une classe arbre en PHP?
merci

vendredi 1 septembre 2006 à 10:41:00 | Re : analyse lexicale, comment faire?

selim68

je viens d'avoir une autre idée qui est beaucoup plus simple :

d'utiliser la fonction eval de php.

de remplacer ET par &&,  OU par ||, allongement par $allongement

dans la chaine de caractère à l'aide de replace.

et enfin d'utiliser la fonction eval tout en assurant que les variables ont été créé auparavant.
Cette façon de résoudre le problème étant beaucoup plus simple

 


1 2

Cette discussion est classée dans : problème, taille, saisie, analyse, lexicale


Répondre à ce message

Sujets en rapport avec ce message

Problème taille cellule HTML [ par birdofdarkness ] J'ai un problème avec la taille de mes cellules dans un tableau HTML [img]http://img96.imageshack.us/img96/4842/table6uv.jpg[/img] Je voudrais quelle Problème à gérer les GIF animés via la Galerie GD [ par Fran6web ] Bonjour à tous!Je me retrouve avec un problème comme l'indique le titre du sujet.J'utilise la galerie GD et lorsque le visiteur envoi sont image GIF a Problème GetImageSize [ par nashoy ] Bonsoir, J'aimerai afficher des images que l'utilisateur à lui-même "uploadé" sur le serveur ftp. Lors de l'affichage, je souhaiterai que ces images n Problème de côtes [ par SPLeeN86 ] J'aimerai faire cela pour pouvoir transmettre la variable uti par la méthode GET et faire une vérification sur la saisie avec une fonction javascript. Limitation taille expression regulière [ par Knolan ] Salut tout le monde !Je suis face à un petit problème d'expression regulière en PHP mais c'est pas un problème très courant en fait...Il semblerait qu menu pour la taille et la police dans un BBcode [ par slashf ] salut à tous  mon problème est le suivant:j'ai développer un BBcode et il tourne bien mais j'aimerai choisir une taille à partir d'une liste et non d' Ne pas faire attention aux majuscules lors d'une saisie [ par BlAzAk ] Bonjour,    Alors voila mon problème: J'ai fait un formulaire d'inscription sur mon site qui enregistre les données spécifiée dans une BDD SQL. Là tou Création de miniature pour grosse photo [ par La Guite ] Bonjour à tous, Je rencontre un problème de taille : création de miniature. Tout ce passe bien pour des photos de petites taille (< 1024x800). Mais v Adaptation taille bannière [ par ichigoZ710 ] Bonsoir,Voilà mon problème est simple je bosse pour un ami sur un site et il m'a demander de lui faire un truc pour sa bannière.Le problème c'est que Problème formulaire Google Chrome [ par Hellooow ] Bonjour à tous, J'ai rencontré quelques problèmes à cause de la saisie automatique des formulaires sur Google Chrome. En effet cette option de saisi


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,186 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales