System.ArgumentOutOfRangeException [Résolu]

moihenry 55 Messages postés samedi 25 septembre 2004Date d'inscription 2 avril 2007 Dernière intervention - 29 mars 2005 à 20:35 - Dernière réponse : moihenry 55 Messages postés samedi 25 septembre 2004Date d'inscription 2 avril 2007 Dernière intervention
- 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

Répondre au sujet
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 29 mars 2005 à 21:08
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_Bidou
cs_Bidou 5507 Messages postés dimanche 4 août 2002Date d'inscription 20 juin 2013 Dernière intervention - 29 mars 2005 à 21:12
+1
Utile
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
moihenry 55 Messages postés samedi 25 septembre 2004Date d'inscription 2 avril 2007 Dernière intervention - 29 mars 2005 à 21:04
0
Utile
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
moihenry 55 Messages postés samedi 25 septembre 2004Date d'inscription 2 avril 2007 Dernière intervention - 29 mars 2005 à 21:30
0
Utile
Ah, ok je pensai que length était jusque quelle caractère.

Merci bcp Bidou super sympa.

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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.