AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Cdiscount : -30€ dès 300€ d’achat sur une sélection Apple
Voir le deal

 

 Modification d'un fichier texte

Aller en bas 
5 participants
AuteurMessage
Pringle
Petit bavard



Messages : 55
Projet Actuel : Plusieurs projets... en pause quasi permanente

Modification d'un fichier texte Empty
MessageSujet: Modification d'un fichier texte   Modification d'un fichier texte EmptyJeu 30 Avr 2009 - 21:55

:p_salut:

Je ne sais pas s'il est possible de modifier une ligne précise d'un fichier texte, de supprimer une ligne ou sauter une ligne au milieu du fichier.

(enfin pour la modification, j'ai trouvé un script bien utile, mais si jamais j'ai deux fois la même chaîne dans un fichier...)

Si je demande ça, c'est qu'il me semble que file-text_open_write réécrit (donc écrase complètement) un fichier, et file_text_open_append écrit à la suite du fichier triste

_________________
Qu'est-ce qui est petit et marron ? Un marron.
Revenir en haut Aller en bas
nicoulas
*Excellent utilisateur*
nicoulas


Messages : 6030
Localisation : Dordogne
Projet Actuel : Croustaface Tower Defense Modification d'un fichier texte Panicpr9

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyJeu 30 Avr 2009 - 22:14

Le script (du lien donné) que j'ai fait remplace tous les caractères d'un fichier texte par un autre.

Par exemple si tu as ça dans ton fichier :

Code:
Blablabla

Si tu demandes de remplacer "a" en "b" ça remplacera tous les a en b et donc ça donnera

Code:
Blbblbblb

Dans ce cas, les arguments du scripts seraient alors : file_text_replace_character("nom_du_fichier.txt","a","b");

Mais si j'ai bien compris ta question ce n'est pas ça que tu cherche donc je pense que mon script ne te sera pas utile.

Pour modifier ce que tu veux, il est nécéssaire de lire toutes les données du fichier texte et de les stocker dans la RAM temporairement (dans une liste par exemple), puis de modifier ce que tu veux à partir de la RAM et enfin de tout réécrire dans ton fichier, car effectivement tu as raison pour les fonctions file_text_open_write() et file_text_open_append() Wink
Revenir en haut Aller en bas
http://blithe.nd.free.fr/
Pringle
Petit bavard



Messages : 55
Projet Actuel : Plusieurs projets... en pause quasi permanente

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyJeu 30 Avr 2009 - 22:22

Si si, ton script me sera sûrement utile clinoeuil

Enfin pour modifier tout, j'avais déjà pensé à une solution barbare (lire le fichier A, tout enregistrer dans un fichier B, réécrire A avec la petite modification, et effacer B :lng: ), mais j'ai préféré demander pour savoir s'il existait une meilleure astuce

Par contre qu'est-ce qu'une liste ? Et comment tu fais pour stocker un texte entier dans la RAM ?

_________________
Qu'est-ce qui est petit et marron ? Un marron.
Revenir en haut Aller en bas
nicoulas
*Excellent utilisateur*
nicoulas


Messages : 6030
Localisation : Dordogne
Projet Actuel : Croustaface Tower Defense Modification d'un fichier texte Panicpr9

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyJeu 30 Avr 2009 - 22:39

Justement la liste sert à stocker le texte dans la RAM.
En fait, une liste est une structure de données qui fonctionne par lignes en quelque sorte, donc une ligne du texte sera stocké dans une ligne de la liste.

Pour voir comment ça marche, réfère toi au manuel, les fonctions pour les listes sont du style ds_list_* Wink
Revenir en haut Aller en bas
http://blithe.nd.free.fr/
bibi675
Utilisateur confirmé: Rang *****
bibi675


Messages : 2456
Localisation : Oise
Projet Actuel : Jeu par navigateur original

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyJeu 30 Avr 2009 - 22:42

Là, la liste ne sert à rien (et va même enregistrer le fichier dans le mauvais sens), un tableau est beaucoup plus adapté.

_________________
Modification d'un fichier texte 1005394
Revenir en haut Aller en bas
Pringle
Petit bavard



Messages : 55
Projet Actuel : Plusieurs projets... en pause quasi permanente

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyJeu 30 Avr 2009 - 22:43

L'aide de GM est assez claire, je vais tout de suite les essayer happy1

Sinon merci beaucoup pour tes réponses super

Edit : j'y pensais pas au tableau, mais c'est vrai que ça peut être une bonne idée aussi (enfin jusqu'à 32 000 lignes maximum mais bon ça devrait aller), merci bibi happy1

_________________
Qu'est-ce qui est petit et marron ? Un marron.
Revenir en haut Aller en bas
bibi675
Utilisateur confirmé: Rang *****
bibi675


Messages : 2456
Localisation : Oise
Projet Actuel : Jeu par navigateur original

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyJeu 30 Avr 2009 - 22:46

Bah des fichiers de plus de 32 000 lignes, y'en a pas des masses... Mais si c'est pour ton GMPaint sache que le binaire est plus compact. super

_________________
Modification d'un fichier texte 1005394
Revenir en haut Aller en bas
Pringle
Petit bavard



Messages : 55
Projet Actuel : Plusieurs projets... en pause quasi permanente

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyJeu 30 Avr 2009 - 22:49

Non c'est pas pour GMPaint, mais peut-être pour un nouveau projet, un jeu cette fois, et les fichiers textes permettront de faire facilement des mises à jour/ajouts en tout genres...

Enfin faudrait aussi que j'avance GMPaint :gniah:

_________________
Qu'est-ce qui est petit et marron ? Un marron.
Revenir en haut Aller en bas
nicoulas
*Excellent utilisateur*
nicoulas


Messages : 6030
Localisation : Dordogne
Projet Actuel : Croustaface Tower Defense Modification d'un fichier texte Panicpr9

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyJeu 30 Avr 2009 - 22:52

bibi675 a écrit:
Là, la liste ne sert à rien (et va même enregistrer le fichier dans le mauvais sens), un tableau est beaucoup plus adapté.
C'est ce que j'utilise (une liste) pour le script dont il a posté le lien, et ça marche impec, ça n'inverse absolument pas l'ordre des lignes Wink
D'ailleurs, je vois pas en quoi un tableau est plus adapté ?
Revenir en haut Aller en bas
http://blithe.nd.free.fr/
Pringle
Petit bavard



Messages : 55
Projet Actuel : Plusieurs projets... en pause quasi permanente

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyJeu 30 Avr 2009 - 22:54

Je pense que le tableau serait plus simple d'utilisation, mais la liste peut être effacée pour libérer la mémoire (je ne saurais pas effacer un tableau ou une variable quelconque)

Enfin c'est ce que je pense, il y a peut-être d'autres explications qui m'échappent ❓

_________________
Qu'est-ce qui est petit et marron ? Un marron.
Revenir en haut Aller en bas
bibi675
Utilisateur confirmé: Rang *****
bibi675


Messages : 2456
Localisation : Oise
Projet Actuel : Jeu par navigateur original

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyJeu 30 Avr 2009 - 23:32

nicoulas a écrit:
bibi675 a écrit:
Là, la liste ne sert à rien (et va même enregistrer le fichier dans le mauvais sens), un tableau est beaucoup plus adapté.
C'est ce que j'utilise (une liste) pour le script dont il a posté le lien, et ça marche impec, ça n'inverse absolument pas l'ordre des lignes Wink
D'ailleurs, je vois pas en quoi un tableau est plus adapté ?
Bah ça dépend comme tu l'utilise ta liste, si c'est pour rajouter une ligne à la fin, autant prendre un tableau. Pour moi une liste ne sert qu'à ajouter une donnée en haut de la liste et à pousser les autres vers le bas.

_________________
Modification d'un fichier texte 1005394
Revenir en haut Aller en bas
nicoulas
*Excellent utilisateur*
nicoulas


Messages : 6030
Localisation : Dordogne
Projet Actuel : Croustaface Tower Defense Modification d'un fichier texte Panicpr9

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyJeu 30 Avr 2009 - 23:43

Héhé, les valeurs s'ajoutent par défaut à la fin de la liste, pas au début, d'ou l'intérêt dans ce cas.
Revenir en haut Aller en bas
http://blithe.nd.free.fr/
bibi675
Utilisateur confirmé: Rang *****
bibi675


Messages : 2456
Localisation : Oise
Projet Actuel : Jeu par navigateur original

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyVen 1 Mai 2009 - 0:05

Bah quelle différence avec un tableau alors ?

_________________
Modification d'un fichier texte 1005394
Revenir en haut Aller en bas
nicoulas
*Excellent utilisateur*
nicoulas


Messages : 6030
Localisation : Dordogne
Projet Actuel : Croustaface Tower Defense Modification d'un fichier texte Panicpr9

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyVen 1 Mai 2009 - 0:23

Tu as plus d'options de tri, donc par exemple si tu veux remonter la ligne 245 d'une ligne ce sera extrêmement simple (une ligne de code composée d'un appel de fonction ^^), puis tu peux aussi trier par ordre croissant, décroissant (si la liste est composée de nombres, mais je crois que ça marche aussi pour l'ordre alphabétique), après tu peux facilement insérer une ligne sans devoir tout modifier manuellement, et tu peux connaitre le nombre de lignes dans ta liste, et j'en passe ^^
Bref, c'est beaucoup plus simple (c'est comme la différence entre un tableau et les ds_grid : avec les ds_grid, tu as énormément plus d'options qu'avec un tableau 'classique').
Revenir en haut Aller en bas
http://blithe.nd.free.fr/
bibi675
Utilisateur confirmé: Rang *****
bibi675


Messages : 2456
Localisation : Oise
Projet Actuel : Jeu par navigateur original

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyVen 1 Mai 2009 - 11:21

Ah ok, moi je me servais juste des listes pour insérer des valeurs en haut et pousser les autres. ^^

Mais niveau performances, un tableau normal doit être largement plus rapide, non ?

_________________
Modification d'un fichier texte 1005394
Revenir en haut Aller en bas
nicoulas
*Excellent utilisateur*
nicoulas


Messages : 6030
Localisation : Dordogne
Projet Actuel : Croustaface Tower Defense Modification d'un fichier texte Panicpr9

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyVen 1 Mai 2009 - 11:24

Pas sûr, j'avais fait des tests avec mon moteur de terrain 3D (pas avec des listes mais avec des ds_grid) et les tableaux étaient plus lents que les ds_grid alors y'a des chances que ce soit la même chose avec les ds_list.
Revenir en haut Aller en bas
http://blithe.nd.free.fr/
bibi675
Utilisateur confirmé: Rang *****
bibi675


Messages : 2456
Localisation : Oise
Projet Actuel : Jeu par navigateur original

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyVen 1 Mai 2009 - 11:33

Ah ok, je savais pas...
Comme quoi on en apprend tous les jours. ^^

_________________
Modification d'un fichier texte 1005394
Revenir en haut Aller en bas
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyVen 1 Mai 2009 - 12:03

Arf c'est une bonne idée... Parce que mon Isometric RTS engine génère des fichiers de 60000 lignes par moment... Et pour modifier une partie j'utilisait les readln. Pas rapide.
C'est limite, les listes ?

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
nicoulas
*Excellent utilisateur*
nicoulas


Messages : 6030
Localisation : Dordogne
Projet Actuel : Croustaface Tower Defense Modification d'un fichier texte Panicpr9

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyVen 1 Mai 2009 - 21:45

Tu voulais dire limité ?
Si oui y'a qu'a vérifier dans le manuel :lng:
Revenir en haut Aller en bas
http://blithe.nd.free.fr/
Mass
*Excellent utilisateur*
Mass


Messages : 3351
Localisation : Dans une canonnière wookie.
Projet Actuel : Monter des trucs et des machins

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptyVen 1 Mai 2009 - 23:33

oui, je voulais dire limité happy1
j'ai vérifié, y'en a apparament pas super

_________________
Revenir en haut Aller en bas
http://madmass.mype.fr/CBNA/
glcraft
Utilisateur confirmé: Rang *****
glcraft


Messages : 1698
Localisation : Entre l'Espagne, l'Italie, la Suisse, L'allemagne et le RU :P
Projet Actuel : Jeu de survie avancé
||--------

Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte EmptySam 2 Mai 2009 - 13:49

c'est simple :

//deja tu ouvre le fichier pour le lire ET pour ecrire, je supose que tu c'est le faire Wink
//ensuite
line=file_text_read_string(textread)
if not string_find(line,'le texte a trouver dans la ligne pour pouvoir la supprimer')
{
file_text_write_string(textwrite,line)
file_text_writeln(textwrite)
}
file_text_readln(textread)

c'est tout simple en fait, dès qu'il trouve un morceau de texte, il passe la ligne et réecrit le texte sans cette(ces) lignes(s)

ou si tu veux passer la ligne 12 et 139 (par example)
//pareil, tu ouvre le fichier pour le lire et pour ecrire
//mais avant crée les variables nmbre_ligne et read_line
//ensuite
while (file_oef())
{
nmbre_ligne+=1
}
line=file_text_read_string(textread)

if line_read!=12 || line_read!=138
{
file_text_write_string(textwrite,line)
file_text_writeln(textwrite)
}
line_read+=1
if line_read>=nmbre_ligne
{
file_text_close(textread)
file_text_close(textwrite)
}
Revenir en haut Aller en bas
http://gameblog49.skyblog.com/
Contenu sponsorisé





Modification d'un fichier texte Empty
MessageSujet: Re: Modification d'un fichier texte   Modification d'un fichier texte Empty

Revenir en haut Aller en bas
 
Modification d'un fichier texte
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» rendre impossible la modification d'un fichier .ini
» Ajouter un machin de texte à la fin d'un fichier .png
» supprimer une ligne d'un fichier texte
» problème avec des fichier texte
» Lire du GML dans un fichier texte

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: