Jump to content

[Resolu] Gros problème de comparaison de string


NiTrOuS

Recommended Posts

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 ???

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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 !

Link to comment
Share on other sites

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é.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...