NiTrOuS Posté(e) le 10 février 2006 Partager Posté(e) le 10 février 2006 J'ai un gros probleme. Je dois comparer une adresse IP qui se trouve dans ma base de données sql server 2000 avec une adresse ip rentrée à la main. Pour cela, j'utilise String.Compare. Jusque là, tout va bien. Mon probleme est le suivant: j'ai déclaré, dans ma base de données, le champ qui contient mon adresse IP comme etant un string de 15 caractères. Oui mais. Si je ne remplis pas les 15 caractères, il me complete le reste avec des espaces. C est bien, mais si je fais un string compare avec une adresse ip venant de ma bdd et celle rentrée par un utilisateur, elle est toujours différente vu que celle venant de ma bdd contient des espaces et pas celle venant de mon utilisateur. Que dois-je faire ??? Lien vers le commentaire Partager sur d’autres sites More sharing options...
LePhasme Posté(e) le 10 février 2006 Partager Posté(e) le 10 février 2006 Tu forces la variable remplie par l'utilisateur à avoir 15 positions ou tu enlèves les espaces à la fin de la variable venant de la BD. Lien vers le commentaire Partager sur d’autres sites More sharing options...
gvosnet Posté(e) le 10 février 2006 Partager Posté(e) le 10 février 2006 Fait une recherche de la commande "trim". Elle devrait t'aider à résoudre ton problème. Lien vers le commentaire Partager sur d’autres sites More sharing options...
NiTrOuS Posté(e) le 10 février 2006 Auteur Partager Posté(e) le 10 février 2006 Bon voilà ce que j'ai fait pour résoudre mon problème: je sais que mon champ venant de ma db fait toujours 15 caractères. Je récupère ce que l utilisateur a tapé au clavier, je vérifie la longueur. Je fais 15 - la longueur récupérée et puis je fais une boucle pour ajouter autant d espaces qu il faut Dim ip, ip_debut, ip_fin, test As String Dim debut, fin, compteur, total, ip_final, return_id_range, longueur, a_ajouter As Integer Dim V As New Object Dim ip_debut As String ip_debut = tb1a.text & "." & tb1b.text & "." & tb1c.text & "." & debut V=ip_debut longueur = V.length a_ajouter = 15 - longueur While a_ajouter <> 0 ip_debut = ip_debut & " " a_ajouter = a_ajouter - 1 End While Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sentinel Posté(e) le 10 février 2006 Partager Posté(e) le 10 février 2006 Un petit s/[^0-9]//g pour supprimer tout ce qui n'est pas un chiffre, et tu peux comparer les deux IP sans être embêté par des caractères bizarres ou des questions de formatage :) PS : précise *toujours* en quel langage tu bosses, je crois me rappeler que c'est du VB.Net d'après tes autres posts, mais ce n'est pas immédiatement évident pour le lecteur ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
gvosnet Posté(e) le 10 février 2006 Partager Posté(e) le 10 février 2006 Je maintiens qu'une fonction "trim" aurait été le plus simple...Au cas où tu n'aurais pas pris la peine de rechercher ce que ça fait, ça te supprime tout simplement les espaces en début et fin de chaine. Sinon, je suis aussi d'accord avec Sentinel, une bonne expression régulière et c'est réglé. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.