Problème Substring

[Résolu]
Signaler
Messages postés
125
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
21 juin 2015
-
Messages postés
125
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
21 juin 2015
-
Salut,

En faite j'ai un soucis avec Substring(x, y). Ça marche avec certaine valeur mais pas avec d'autres, j'ai essayé plein de chose mais ça marche pas. Déjà le code : (code de débutant soyez indulgent)

//Calculer un masque via une cle

int masqueid = Convert.ToInt32(id.Text);
int bita0 = 32 - masqueid;
string masqueid1 = "".PadLeft(masqueid, '1').PadRight(8, '0');
string masqueid2 = "".PadRight(bita0, '0').PadRight(8, '0');
double masktest = Convert.ToDouble(masqueid1);
string mdrr = Convert.ToString(masktest);

//Début des conditions

if (masqueid <= 8)
{
goto Label0;

Label0:
string maskid = masqueid1.Substring(0,8);
testid1.Text = maskid;
}
if (masqueid > 8 && masqueid <= 16)
{
goto Label1;

Label1:
string maskid1 = masqueid1.Substring(0, 8);
string maskid2 = masqueid1.Substring(8, 8);
testid1.Text = maskid1;
testid2.Text = maskid2;

}
if (masqueid <= 24 && masqueid >16)
{
goto Label2;

Label2:
string maskid11 = masqueid1.Substring(0, 8);
string maskid22 = masqueid1.Substring(8, 8);
string maskid33 = masqueid1.Substring(16, 8);
testid1.Text = maskid11;
testid2.Text = maskid22;
testid3.Text = maskid33;
}
}
Je sais que mes conditions sont surement pas très belles mais au moin ça ca marche . Le problème que j'ai c'est que pour masqueid1 = 1,2,3....8 aucun soucis ça marche niquel ! pour
masqueid1 = 16,24 niquel !
par contre de 8 jusqu'à 15 ou de 17 jusqu'à 24
Ça me renvoie toujours l'exception :

L'index et la longueur doivent faire référence à un emplacement situé dans la chaîne.
Nom du paramètre : length

par exemple pour 11 ça me renvoi cette exception sur cette ligne

string maskid2 = masqueid1.Substring(8, 8);

Pourtant du les 8 caractères à partir du 8iem je vois pas où est le problème ?

Si quelqu'un sais m'indiqué.
Merci d'avance.

Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.

1 réponse

Messages postés
125
Date d'inscription
dimanche 28 février 2010
Statut
Membre
Dernière intervention
21 juin 2015
2
J'ai résolu mon problème , c'était juste la valeur de mon Padright qui était erronée.

Linux c'est une question de VI ou de MORE !
Si Bill Gates donnait du lait à ses programmeurs, ça ferait peut-être des OS costaud.