Gambas France BETA


Pas de compte ? Incription

supprimer une ligne d'un fichier texte

1
AuteurMessages
LanoueC#1 Posté le 25/11/2010 à 22:30:00
Bonjour

Pour supprimer une ligne d'un fichier texte, je re-écris le dit fichier sans la ligne que je veux supprimer !!!

n'y a t'il pas une façon plus simple pour effacer une ligne d'un fichier texte?


Merci

LanoueC
gambix#2 Posté le 25/11/2010 à 22:55:00
Faire simple !non :)... c'est la seule méthode existante et ceci dans tout les langage

en faite imagine une ligne de bille tu en enlève 4 au milieu sur les dix ... tu doit don bouger toute les bille de lafin pouravoir a nouveau une ligne continue
et un fichier est obligatoirement une ligne continue.

pour cela il faut pouvoir déplacer la fin.
mais comme on ne peut pas vraiment lire des donnée en les déplaçant on doit générerune copie corrigée que l'on replace ensuitea la place de l'original.
Moins de texte dans une signature c'est agrandir son espace.
LanoueC#3 Posté le 26/11/2010 à 14:52:00
Merci Gambix

ton exemple avec les billes est très parlant



Bonne journée

LanoueC
spheris#4 Posté le 26/11/2010 à 20:23:00
ne peut on pas se deplacer avec les fonctions PEEK et POKE ?
LanoueC#5 Posté le 26/11/2010 à 21:49:00
Sphéris,

c'est ce que j'ai fait avec SEEK #fichier, position LigneAsup

Donc oui,
j'ai réussi à effacer les données sur la ligne

Mais non,
je n'ai pas réussi à enlever cette ligne désormais vierge sans avoir à re-ecrire un nouveau fichier

il faudrait pouvoir effacer le retour ligne je pense

Lanouec
gambix#6 Posté le 26/11/2010 à 22:49:00
Faire simple !
Bonjour

Pour supprimer une ligne d'un fichier texte, je re-écris le dit fichier sans la ligne que je veux supprimer !!!

n'y a t'il pas une façon plus simple pour effacer une ligne d'un fichier texte?


Merci

LanoueC


Dit moi tu n'a pas bien compris l'istoir des bielle hein :)

un retour de ligne c'est un caractère... en faite c'est le caractère ascii 13. Donc si tu lit le fichier byte par byte ... tu ne véra pas le retour :)

c'est un caractère comme un autre ... c'est juste la façon de l'afficher qui change.

quand on supprime une partie d'une chaine ... par exemple en faisant :

machaine =Left(machaine,3)& mid(machaine,6)

la je vire une partie au centre...
bien en faite en interne on Génère la chaine dans une zone tampon et on remplace la valeur a l'adresse mémoire de la première
+ un caractère ascii 255 qui signifit que c'est la fin de la chaine.

si tu supprime des caractère dans un fichier tu obtien
debut du fichier + N*chr(0) + fin du fichier
et pas un fichier avec tes donnée a suivre
Moins de texte dans une signature c'est agrandir son espace.
1