yo612
Messages postés16Date d'inscriptionmercredi 21 février 2007StatutMembreDernière intervention19 juillet 2007
-
25 mars 2007 à 22:01
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 2014
-
26 mars 2007 à 22:18
Bonjour,
Voilà j'ai ouvert un fichier, je l'ai modifié et je l'enregistre sous un nouveau nom mais je ne veux pas de crlf à la fin du fichier, or je crois que c'est par défaut dans le monde windows. Comment puis-je faire ?
Voici un bout de mon code : (Les variables du type NewFile, i, LireFin ont été déclarés comme string)
LireFin correspond à une variable faisant la somme des modifications faites au fichier source.
Lire Fin = Lire + Lire1 + Lire2
Newfile = frmMain.Text8.Text
'pour obtenir un No de fichier disponible
i = FreeFile()
'Ouvre le fichier destination
'pour écriture en remplacant les données déjà présentes
'(s'il n'existe pas, celui-ci est crée)
Open Newfile For Output As #i
Print #i, LireFin
'ferme le fichier suite à la commande open
Close #i
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 26 mars 2007 à 08:31
Bonjour,
Fans ma famille, on a l'habitude de mettre un simple point-virgule à la fin de l'instruction Ptint dont on peut pas qu'elle provoque un saut de ligna une fois l'écriture faite.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 26 mars 2007 à 04:59
Ça, on ne sait pas vraiment ce que ça veut dire ...
Lire Fin = Lire + Lire1 + Lire2
Tu pourrais charger ton fichier dans une variable String, puis une fois tes modifications effectuées, tu réécris ta variable dans le nouveau fichier moins 2 caractères (je pense que c'est 2 pour un vbCrLf...)
Et le dernier vbCrLf n'est pas par défaut sous Windows.
Tout dépend comment le texte est écrit dans ce fichier
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 26 mars 2007 à 06:13
Salut,
oui, le vbCrLf vaut 2 caractères (le 10 et le 34, mais pas sûr des numéros).
Donc LireFin = Mid(LireFin, 1, Len(LireFin) - 2) OU LireFin = MidB(LireFin, 1, LenB(LireFin) - 4)
@++
<hr size ="2" width="100%" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 26 mars 2007 à 12:14
rien à ajouter, jmfmarques...
a noter qu'une fois de plus, ce comportement de l'instruction Print est très probablement décrit dans la documentation, que bien peu de gens lisent avant de poser une question....
Renfield
Admin CodeS-SourceS- MVP Visual Basic
Vous n’avez pas trouvé la réponse que vous recherchez ?
yo612
Messages postés16Date d'inscriptionmercredi 21 février 2007StatutMembreDernière intervention19 juillet 2007 26 mars 2007 à 21:09
Bonsoir,
Je ne peux pas faire :
LireFin = Mid(LireFin, 1, Len(LireFin) - 2) OU LireFin = MidB(LireFin, 1, LenB(LireFin) - 4)
car le crlf n'est pas dans ma chaine LireFin mais apparait uniquement après le print dans le fichier. Donc j'en déduis que c'est lors de l'enregistrement que ce crlf est crée pour indiquer un EOL et EOF.
Donc je vais opter pour le ;
Et puis non le ; n'est pas décrit dans la documentation, du moins pas dans le msdn vb6, ou du moins par de façon à pouvoir être clairement compris
Et puis si c'est écrit quelquepart de manière intelligent, on ne peut pas tout savoir, surtout quand on débute, d'où l'utilité des forums qui sont là pour conseiller et aider mais je pense que certains l'oublient vite.
Enfin dans le msdn, on peut trouver à l'index print#, instruction :
<< Indiquez un point-virgule pour placer le point d'insertion immédiatement après
le dernier caractère affiché...>>
De là, j'aurais en effet du en déduire que... que quoi ???
Merci à ceux qui m'on répondu de manière constructive
Je viens d'essayer et ca marche du tonnerre de Zeus .
J'ai bien ma dernière ligne qui contient en EOL : none alors qu'avant je lisais en EOL : CRLF avec un éditeur héxa. Et c'est bien None qu'il me faut pour transférer ce fichier crée vers une appli qui attend ça.
permet donc au vieux de préciser 3 petites choses :
1) tu as un peu raison : ce n'est pas toujours facile de bien lire et comprendre ce qui est écrit. Mais onb prend son temps, on teste, on lit et relit...
2) la remarque de Renfield était tout à fait justifiée, contrairement à ce que te laisse exprimer ton sentiment de révolte
3) Il est vraisemblable que Renfield, comme moi, n'a appris que tout seul (alors que même internet n'existait pas) et que, comme moi, il a dî tout lire patiemment, tout tester patiemment...
C'est celà, précisément, vois-tu, qui fait que des gars comme Renfield (sans lesquels tu crierais aujourd'hui "au secours" dans un désert) te sont indispensables et qu'ils ont un peu le droit de te "bousculer" pour ton bien. Je te le dis en toute amitié. ...
Apprends donc à saluer Renfield...ne serait-ce que pour sa générosité, qui se mesure au nombre d'aides qu'il a données et donne encore et encore ...
yo612
Messages postés16Date d'inscriptionmercredi 21 février 2007StatutMembreDernière intervention19 juillet 2007 26 mars 2007 à 22:05
Oui oui tu as raison, il faut un peu bousculer ceux qui débutent, sinon ils attendraient que quelqu'un leur ponde leur code.
Mais pour ma part, je ne demande que rarement un coup de main, c'est pour dire que j'ai beaucoup lu, je lis beaucoup et des fois plongé dans mes pages de code, il manque un truc tout simple qu'on ne trouve pas du style un point virgule alors que j'avais fait le plus dur avec des split imbriqués dans des select case eux-mêmes réimbriqués dans des splits....
Mais j'aprends tout seul, personne de mon boulot ne programme, personne de mon entourage donc JE REMERCIE TOUT CEUX QUI M'ONT REPONDU !!!!
Et puis un coup de pied dans le c.. ca fait pas de mal de temps en temps quoique à mon âge avancé, ca commence à briser menu menu les reins