cs_PeD
Messages postés63Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention13 avril 2013
-
19 juin 2011 à 17:23
mdevaux62
Messages postés111Date d'inscriptiondimanche 24 décembre 2000StatutMembreDernière intervention17 novembre 2012
-
19 juin 2011 à 19:53
désolé, sans doute élémentaire.
( je simplifie mon exemple ). Pour écrire un enregistrement dans un fichier TXT, j'ai besoin de mettre un caractère en position 11, un autre en position 21, etc.
En VB 6, j'utilisais la fonction mid$ ainsi :
mid$(Zout,11,1) = "A"
mid$(Zout,21,1) = "B"
Tout allait bien.
Maintenant en .NET ( avec mid(... ), j'ai une erreur argument exception, avec l'argument start n'est pas une valeur valable.
Je peux m'en tirer avec Replace, mais j'aurais voulu éviter de devoir donner le caractère d'origine à remplacer ( il pourrait être indéterminé ! ).
C'est donc aussi une question de curiosité.
____________________
Vous aimez Codes-Sources ? Il vous aide ? Cliquez ici pour l'aider à continuer Cliquer sur "Réponse acceptée" en bas d'une solution adéquate est
cs_PeD
Messages postés63Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention13 avril 2013 19 juin 2011 à 18:04
Merci des réponses.
D'abord : je ne suis pas certain que "substring" fonctionne !!
Ensuite, ucfoutu, effectivement quelques remarques.
Ok pour le vocabulaire : statement et non fonction. Mon excuse : je viens du monde mainframe et je n'ai pas encore digéré cette terminologie.
Cette instruction fonctionne bien mais voici comment je l'ai utilisée.
Zout = " "
Zout = "T5001"
( et non mid(Zout,1,5) = "T5001" )
ensuite mid(Zout,6,2) = "04"
Je suppose que VB a (re?)défini implicitement ma zone Zout avec une longueur de 5 et refuse donc le premier "mid" que je lui applique avec un Start de 6.
Je vais donc définir au préalable ma zone Zout à une longueur de 200 ( qui est la longueur du record en output ) avec ??? space ?? je vais voir comment.
Bonne fin de week end
Pierre
Vous n’avez pas trouvé la réponse que vous recherchez ?