-
Comparaison de chaine
Bonjour,
Mon problème concerne la fonction _tcsicmp et le ORDER BY d'Access.
Pour comparer deux chaines de caractères, j'utilise _tcsicmp(strChaine1, strChaine2);
Je construis un tableau de chaines de caractères trié en utilisant le _tcsicmp, le résultat est le suivant:
&
1
2
:
;
_
A
aa
B
à
è
é
Ce tableau est remplit par rapport à un recordset obtenu en effectuant cette requête (SELECT <Monchamp> FROM <MaTable> ORDER BY <Monchamp>; ) Malheureusement le résultat de cette requête me donne:
&
:
;
_
1
2
A
à
aa
B
é
è
J'obtiens deux résultats totalement différents, il n'est pas possible de changer le trie dans Access, par conséquent je recherche le moyen d'obtenir le même trie dans mon tableau de chaines.
Est ce que quelqu'un a une idée ?
Cordialement,
BR
-
Je pense que le plus simple est de modifier l'algo de tri de ton coté plutot que du coté d'ACCESS
Pour avoir un algo de tri maison tu peux utiliser la STL. Si mes souvenirs sont bon la fonction sort() de la STL prend en paramètre un callback qui te permet de définir ta propre fonction pour faire le tri.
Regarde de ce coté là
-
Redéfinir ma propre fonction de trie n'est pas un problème, mon problème est de connaitre la méthode de comparaison de caractère utilisée par Access pour pouvoir l'implémenter dans mon code.
La fonction _tcsicmp se base apparemment sur le code ascii pour trier les caractères, serait-il possible de pouvoir changer ce critère de trie.
Par exemple la fonction :
int _stricmp_l( const char *string1, const char *string2, _locale_t locale);
mais comment initialiser le bon 'locale' ?