System.ArgumentOutOfRangeException [Résolu]

Messages postés
55
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
2 avril 2007
- - Dernière réponse : moihenry
Messages postés
55
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
2 avril 2007
- 29 mars 2005 à 21:30
Bonjour,

je fais ce code :

MessageBox.Show(pos.ToString(),rep.Length.ToString());

string nouv = rep.Substring(pos,rep.Length);

Ici il affiche la valeur de pos => 98 et de rep.Length => 200.

Et après j'obtient une System.ArgumentOutOfRangeException :

L'index et la longueur doivent faire référence à un emplacement situé dans la chaîne.

Nom du paramétre : Length .

at System.String.Substring(Int32 startIndex, Int32 length);

...





Pourquoi j'obtient cette erreur alors que les deux variables se trouvent dans la chaîne ?

Merci

C# top!!
Afficher la suite 

4 réponses

Meilleure réponse
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
42
3
Merci
position courante : 98
longueur de rep : 200

rep.Substring(pos, rep.Lenght); veut dire que tu commences à l'emplacement 98, et que tu prends les 200 prochains caractères.
Autrement dit, tu prends le sous-string de la postion 98 à la position 298! C'est un peu beaucoup pour un string de longueur 200, non ?

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 213 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Bidou
Messages postés
5507
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
42
1
Merci
Non, elle ne fait pas 128 caractères, mais bel et bien 203.
Comptes-les manuellement si tu me crois pas.

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Commenter la réponse de cs_Bidou
Messages postés
55
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
2 avril 2007
0
Merci
la chaine rep :

string rep = "<html><head><title>titre de la
page</title></head>IMAGEfdlsfjlsf

Retourner à
l'acceuil
</html>";



Et si je fais :

MessageBox.Show(rep.Length.ToString(),"Longueur chaine rep");

Il affiche 203 alors que la chaîne ne fait que 128 caractères.

Pourquoi ?

Merci

C# top!!
Commenter la réponse de moihenry
Messages postés
55
Date d'inscription
samedi 25 septembre 2004
Statut
Membre
Dernière intervention
2 avril 2007
0
Merci
Ah, ok je pensai que length était jusque quelle caractère.

Merci bcp Bidou super sympa.

C# top!!
Commenter la réponse de moihenry