Page 1 sur 1

Comment supprimer la dernière ligne d'un fichier

MessagePublié: 07 Jan 2011 à 14:58
par Mick
Bonjour

En LS, comment je peux faire pour supprimer la dernière ligne d'un fichier texte ?

Je lis un premier fichier, je fais des modifs si besoin et j'envoie la ligne dans un second fichier.

Le second fichier se termine par une ligne blanche et je souhaite la supprimer.


Merci,

MessagePublié: 07 Jan 2011 à 15:00
par Michael DELIQUE
salut

ça serais pas un pb de fin de fichier ? ou de retour chariot en trop ?

as tu lu ceci => http://forum.dominoarea.org/la-gestion- ... 12999.html

MessagePublié: 07 Jan 2011 à 15:08
par Mick
Je lis le fichier 1 (qui ne comporte pas de fin de fichier avec une ligne vide) en input.

J'ouvre le fichier 2 en Output et je l'alimente à partir du contenu du fichier 1.

On dirait bien que le close en LS se termine forcément par un chr(13) et chr(10).


Mais je n'en veux pas dans mon fichier, comment fermer le fichier sans qu'il se termine par un saut de ligne ?


Thanks,

MessagePublié: 09 Jan 2011 à 00:18
par roubech
a chaque fois que tu fais un print dans ton fichier 2; tu passaes à la ligne pour écrire la ligne suivante. C'est pareil pour ton dernier print

MessagePublié: 10 Jan 2011 à 07:16
par Mick
Ok le print écrit la ligne et fait un saut de ligne.

Mon fichier est composé de ligne commençant soit par E soit par L.
Si la ligne commence par E je fais une comparaison de date.

Donc mon avant dernière ligne est composé d'un E avec une date ok.
Ensuite une ligne avec un L et donc un saut de ligne.

J'arrive maintenant sur une ligne avec un E mais une date non ok, le programme s'arrête.


:oops:
Comment je peux faire pour finir sur une ligne avec L et non sur un saut de ligne ?


Merci,

MessagePublié: 10 Jan 2011 à 11:40
par Grey Goda
Je n'ai pas tout compris à ton dernier post mais pour répondre à une question précédente, pour empêcher l'ajout d'un saut de ligne à un Print#, il suffit d'ajouter un point virgule à la fin de la commande...

C'est un héritage de Visual Basic qui a priori fonctionne en LS aussi.

[syntax="LotusScript"]Print #intFile, "Mon texte AVEC saut de ligne à la fin" <--- Rien
Print #intFile, "Mon texte SANS saut de ligne à la fin"; <--- Point virgule[/syntax]

MessagePublié: 10 Jan 2011 à 11:43
par Michael DELIQUE
ça mérite un petit tips ça !

MessagePublié: 10 Jan 2011 à 12:48
par Mick
Je confirme le ; à la fin d'un print supprime le saut de ligne.


:oops:
Par contre, le saut de ligne m'intéresse mais pas pour le dernier print.

Avant de faire le CLOSE, je voudrais pouvoir supprimer la dernière ligne du fichier.

c'est possible en LS ?


Merci,

MessagePublié: 10 Jan 2011 à 12:50
par Michael DELIQUE
tu dois pouvoir remplacer une ligne par une autre, donc une ligne par du vide... mais je suis pas certain

MessagePublié: 10 Jan 2011 à 12:59
par Mick
Il faut que je me place à la fin du fichier et que je supprime la dernière ligne qui est vide ...

Une idée pour le code en LS ?


Merci,
:oops:

MessagePublié: 28 Jan 2011 à 14:02
par oguruma
Grey Goda a écrit:Je n'ai pas tout compris à ton dernier post mais pour répondre à une question précédente, pour empêcher l'ajout d'un saut de ligne à un Print#, il suffit d'ajouter un point virgule à la fin de la commande...

C'est un héritage de Visual Basic qui a priori fonctionne en LS aussi.

[syntax="LotusScript"]Print #intFile, "Mon texte AVEC saut de ligne à la fin" <--- Rien
Print #intFile, "Mon texte SANS saut de ligne à la fin"; <--- Point virgule[/syntax]


Non c'est tout simple un héritage du Basic pur "au temps des TRS-80 pour ceux qui ont connu"

le ; éviter le passage à la ligne avec le print
on peut aussi les gérer soit même en combinant chr$(10) & chr$(13) et aussi le coupler avec le ;

le plus simple est de construire sont enregistrement dans une variable et décider de le terminer soit même avec des chr$(13) & chr$(10)

si un jour tu es amené à produire des fichiers à la sauce unix c'est à dire un chr$(10) qui est le marqueur de fin d'enregistrement tu devra oublier le print (tout court) et gérer toi-même ton format d'enregistremen [tu peux en crois mon expérience dans le domaine... j'ai bcp donné dans les exports vers UNix/Linux/AIX avec tous types de formats !!!

MessagePublié: 02 Fév 2011 à 16:34
par Mick
Désolé de revenir à la pêche aux infos ... :oops:

Mais je ne vois pas comment faire pour ne pas avoir un saut de ligne en fin de fichier.


Il n'existe pas une fonction qui me permettrait de me placer à la fin d'un fichier texte et de supprimer cette dernière ligne ?


Merci,