Problème avec la fonction substring

FAEBDC -  
 Zang -

Bonjour,

Je code un petit programme qui doit prendre un fragment de 4 caractères d'une string selon la valeur d'une autre variable (ça parait bizarre écrit comme ça mais j'en ai besoin). Dans certains tests, ça fonctionne mais dans ce cas, on m'affiche "

Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object"

Voici le fragment de code (je suis sûr et certain que ROW contient au moins 108 caractères et index pour le Substring ne le dépasse pas même en rajoutant 4) :

string ligneActuelle = ASCIIfinal[i];

ASCIIfinal[i] = ligneActuelle + ROW.Substring(index[z] * 4, 4); // ligne coupable

J'espère que mon message est déchiffrable et vous remercie par avance pour votre réponse.

A voir également:

7 réponses

Utilisateur anonyme
 

Je t'ai demandé une capture du moment où ça plante, s'il te plait.

Je veux voir des lignes de codes, VS qui surligne une ligne etc...

Parce que ce que tu dis n'est pas cohérent avec le message d'erreur.

Il y a peut-être un élément qui ne te paraît pas important et qui manque à ta description qu'on verra comme ça.


Par exemple, le fait d'ajouter return, solutionnant le problème, tend à me faire penser que le vrai problème est plus loin.


1
Grandasse_ Messages postés 1156 Statut Membre 597
 

Bonjour,

Je t'invite quand même à déboguer et regarder le contenu de ROW et de index (ainsi que la valeur z) pour quoi à quoi ça ressemble au moment où ça plante.


0
Utilisateur anonyme
 

Bonjour 

regarde aussi le contenu de ligneactuelle


0
FAEBDC
 

Oui, j’ai déjà vérifié, ils ont tous des valeurs correctes. Y a-t-il une autre raison possible ?

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 

ASCIIfinal et i, aussi ont des valeurs ?

Si oui, peux-tu poster une capture d'écran du plantage avec les espions ?


0
FAEBDC
 

Voilà. ROW continue et fait 108 caractères, ligneActuelle a "" comme valeur au début.

J'ai remarqué dans mes tests qu'il ne plante pas lorsque je place un return juste après (mais ce n'est quand même pas ce que je veux) : 

string nvLigne = ligneActuelle + ROW.Substring(indexs[z] * 4, 4);

return;

0
Zang
 

Bonjour,

Vous pouvez aussi faire un try/catch et mettre le breakpoint sur votre ligne pour avoir toute la stacktrace.

0