Pierregeorgesalexandre
Messages postés22Date d'inscriptionmardi 22 novembre 2005StatutMembreDernière intervention 5 novembre 2006
-
22 juil. 2006 à 19:17
yousef450
Messages postés2Date d'inscriptiondimanche 6 août 2006StatutMembreDernière intervention22 mai 2009
-
8 août 2006 à 13:30
bonjour à tous,
j'ai une database dbase dans laquelle je veux effectuer une recherche d'un enregistrement contenant un texte précis.
Comment faire pour que cette recherche soit indépendante de la case utilisée,
je veux trouver Pierre...meme si dans ma recherche je demande :
- pierre
- ou pIerre
- ou PieRRe
etc...
cs_jfs59
Messages postés178Date d'inscriptionmardi 29 avril 2003StatutMembreDernière intervention 2 février 2010 22 juil. 2006 à 20:30
tu impose une casse pour les deux ! tu passe tous en minuscule ou alors tout en majuscule (le mot lu dans la base et celui recherché) .. et tu compare ensuite !
cs_jfs59
Messages postés178Date d'inscriptionmardi 29 avril 2003StatutMembreDernière intervention 2 février 2010 22 juil. 2006 à 20:32
si tu est sur du format une majuscule + minuscules tu passe tous en minuscule et ensuite la premiere lettre en majuscule uniquement (pour le mot recherché uniquement cette fois) tu compare ensuite
f0xi
Messages postés4205Date d'inscriptionsamedi 16 octobre 2004StatutModérateurDernière intervention12 mars 202235 23 juil. 2006 à 21:57
je sais pas si dbase possede une syntaxe differente de SQL mais logiquement tu peux faire cela avec le mots clef LIKE :
SELECT * FROM table WHERE name LIKE 'pierre'
sinon dans du texte normal (liste ou memo) on ferait :
// variable globale permettant de recuperer l'index de l'item en cours
var oldindex : integer = -1;
// fonction permettant de chercher la prochaine ligne contenant le texte SFind
function FindAndSelect(const SFind : string; const FromIndex : integer = -1) : integer;
begin
// on init result a -1
result := -1;
// si la liste est vide on sort
if List.count = 0 then exit;
// on increment OldIndex
inc(OldIndex);
// si on a choisi un index de depart on place la valeur dans OldIndex
if FromIndex <> -1 then
OldIndex := FromIndex;
// on verifie le debordement d'interval
if OldIndex >= List.count then OldIndex := 0;
// boucle de recherche
for i := OldIndex to List.count-1 do
// si le texte SFind et present dans la ligne
if pos(lowercase(SFind), lowercase(list.items[i])) <> 0 then begin
// on recupere l'index dans OldIndex pour la prochaine recherche
OldIndex := i;
// on renvois l'index dans le resultat de la fonction
Result := i;
// on selectionne la ligne dans la liste
list.itemindex := i;
// on arrete la boucle
break;
end;
end;
Vous n’avez pas trouvé la réponse que vous recherchez ?
yousef450
Messages postés2Date d'inscriptiondimanche 6 août 2006StatutMembreDernière intervention22 mai 2009 8 août 2006 à 13:30
je sais pas si dbase possede une syntaxe differente de SQL mais logiquement tu peux faire cela avec le mots clef LIKE :
SELECT * FROM table WHERE name LIKE 'pierre'
sinon dans du texte normal (liste ou memo) on ferait :
// variable globale permettant de recuperer l'index de l'item en cours
var oldindex : integer = -1;
// fonction permettant de chercher la prochaine ligne contenant le texte SFind
function FindAndSelect(const SFind : string; const FromIndex : integer = -1) : integer;
begin
// on init result a -1
result := -1;
// si la liste est vide on sort
if List.count = 0 then exit;
// on increment OldIndex
inc(OldIndex);
// si on a choisi un index de depart on place la valeur dans OldIndex
if FromIndex <> -1 then
OldIndex := FromIndex;
// on verifie le debordement d'interval
if OldIndex >= List.count then OldIndex := 0;
// boucle de recherche
for i := OldIndex to List.count-1 do
// si le texte SFind et present dans la ligne
if pos(lowercase(SFind), lowercase(list.items[i])) <> 0 then begin
// on recupere l'index dans OldIndex pour la prochaine recherche
OldIndex := i;
// on renvois l'index dans le resultat de la fonction
Result := i;
// on selectionne la ligne dans la liste
list.itemindex := i;
// on arrete la boucle
break;
end;
end;