Bonjour,
Manifestement, tu confonds les chaines de caractères du Pascal avec celles du C.
En C, effectivement, la valeur 0 marque la fin de la chaine, ce qui, bien entendu, interdit d'utiliser ce caractère dans une chaine.
En Pascal, si tu as utilisé correctement ta chaine de caractères, tu obtiens sa longueur en faisant
1 2 3 4 5 6 7 8
|
...
var
s : string;
len : integer;
...
len = length(s);
... |
ton code est faux:
- il suppose qu'un 0 termine la chaine, ce qui est faux, aucune manipulation de chaine en Pascal ne s'amuse à ça, aucun mécanisme n'est prévu pour systématiquement ajouter un 0 à la fin d'une chaîne.
Du coup, ta recherche du zéro terminal a de bonnes chances de te faire dépasser la taille de mémoire réservée pour la chaine, d'où problème de violation d'accès, et, de toute manière, n'a que fort peu de chance de te donner la bonne valeur.
(De plus, rien n'interdit d'utiliser le caractère de code = 0 dans une chaine en Pascal.)
Il te serait sans doute profitable (nécessaire ?) de lire un cours/bouquin/didacticiel pour le Pascal, car ce genre de fonction est basique, et apparaît dans toutes ces docs, si elles sont correctes.
Partager