[R] Effacer les deux premières lignes d'un fichier

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

[R] Effacer les deux premières lignes d'un fichier

#1

Message par pierrotm777 »

Bonjour,

J'ai besoin de traiter un fichier de points gps issu de http://www.gpspassion.com.

Le programme est terminé depuis pas mal de temps (merci Tlem), mais depuis quelques temps il y a deux lignes en début de fichier qui me plante la conversion.

Je souhaiterais donc les enlever avant le traitement .

voici à quoi ressemble les premières lignes du fichier à traiter (une ligne avac un ; en début), puis une ligne vide:
► Afficher le texte
voici mon script:
► Afficher le texte
Que dois-je modifier dans ma fonction _DoIt2 pour effacer ces 2 premieres lignes

Merci d'avance
Modifié en dernier par pierrotm777 le lun. 13 déc. 2010 14:22, modifié 4 fois.
Avatar du membre
legend
Niveau 7
Niveau 7
Messages : 472
Enregistré le : dim. 26 sept. 2010 12:55
Status : Hors ligne

Re: [..] Effacer les deux premières lignes d'un fichier

#2

Message par legend »

il faudrais savoir quel est le nombre de caractéres ou avec quel mot finit la ligne.
Si tu sais le nombre de caractéres, aissaie :
stringtrimleft ($texte, "nombre de caractéres") ;ps : espace est un caractére.
Bonne journée
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Effacer les deux premières lignes d'un fichier

#3

Message par pierrotm777 »

merci de votre aide, c'est les deux lignes entières, vous en avez l'exemple dans le post 1. :D
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Effacer les deux premières lignes d'un fichier

#4

Message par pierrotm777 »

Bon , aprés une petite recherche , j'ai trouvé une solution pour effacer les deux première lignes d'un fichier mais ma manip ne fonctionne que sur le premier fichier ($vFic_RF2), et pas sur les deux autre ($vFic_RFR2 et $vFic_RM2), ce qui bloque le reste du programme .
La partie en rouge (voir post 1) est la partie ajoutée !

Merci de votre aide
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] Effacer les deux premières lignes d'un fichier

#5

Message par bloodwolff »

Tente de remplacer tes lignes en rouge par

Code : Tout sélectionner

$file[3] = [$vFic_RF2, $vFic_RFR2, $vFic_RM2]
For $i=0 to 2
    For $ii=1 to 2 
        _FileWriteToLine($file[$i], 1, "", 1)
    next
Next
Compte skype : bloodwolfff
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Effacer les deux premières lignes d'un fichier

#6

Message par pierrotm777 »

J'obtiens une erreur:

Code : Tout sélectionner

D:\Program Files\Ride Runner\Plugins\GPSExec\gpspassion2ini.au3(109,16) : ERROR: syntax error
                $file[3] = [
                ~~~~~~~~~~~^
D:\Program Files\Ride Runner\Plugins\GPSExec\gpspassion2ini.au3(109,50) : WARNING: $file possibly not declared/created yet
                $file[3] = [$vFic_RF2, $vFic_RFR2, $vFic_RM2]
                ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
D:\Program Files\Ride Runner\Plugins\GPSExec\gpspassion2ini.au3 - 1 error(s), 1 warning(s)
Avatar du membre
Koumla
Niveau 4
Niveau 4
Messages : 68
Enregistré le : jeu. 15 avr. 2010 11:52
Localisation : France
Status : Hors ligne

Re: [..] Effacer les deux premières lignes d'un fichier

#7

Message par Koumla »

Bonjour,

Un truc simple supprimer deux fois la ligne 1

Code : Tout sélectionner

#include <File.au3>

_FileWriteToLine("c:\exemple.txt", 1, "", 1)
_FileWriteToLine("c:\exemple.txt", 1, "", 1)
 
J’ai fais le test c’est parfait et simple.

Koumla
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [..] Effacer les deux premières lignes d'un fichier

#8

Message par bloodwolff »

Ah j'ai juste oublié le Dim :lol:

Code : Tout sélectionner

dim $file[3] = [$vFic_RF2, $vFic_RFR2, $vFic_RM2]
Compte skype : bloodwolfff
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Effacer les deux premières lignes d'un fichier

#9

Message par pierrotm777 »

Merci à bloodwolff, c'est exactement ce que je voulais !

Merci à tous pour votre aide
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Effacer les deux premières lignes d'un fichier

#10

Message par pierrotm777 »

Merci encore,
J'ai ajouté un petit test sur le premier caractère de la première ligne.
Ainsi, si le fichier a déjà été traité, il n'efface pas a nouveau les deux premières lignes.

Code : Tout sélectionner

                If StringLeft(FileRead($vFic_RF2,1),1) = ";" or StringLeft(FileRead($vFic_RFR2,1),1) = ";" or StringLeft(FileRead($vFic_RM2,1),1) = ";" Then;test si la première ligne doit être effacée
                    Dim $file[3] = [$vFic_RF2, $vFic_RFR2, $vFic_RM2]
                    For $i=0 to 2
                        For $ii=1 to 2
                            _FileWriteToLine($file[$i], 1, "", 1)
                        next
                    Next
                EndIf
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [R] Effacer les deux premières lignes d'un fichier

#11

Message par bloodwolff »

Personnellement j'irais plus comme cela , comme sa si seulement 1 fichier n'a pas été effacé (Bug?) il va le traité et seulement lui , Et pourquoi faire un stringleft(1) sur une chaine qui contient seulement 1 caractère ?

Code : Tout sélectionner

Dim $file[3] = [$vFic_RF2, $vFic_RFR2, $vFic_RM2]
For $i=0 to 2
    If FileRead($file[$i],1) = ";" Then
        For $ii=1 to 2
            _FileWriteToLine($file[$i], 1, "", 1)
        next
    EndIf
Next
Compte skype : bloodwolfff
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Effacer les deux premières lignes d'un fichier

#12

Message par pierrotm777 »

Et bien , la ligne ne contient pas un seul caractère mais bien une phrase
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Effacer les deux premières lignes d'un fichier

#13

Message par Tlem »

@pierrotm777
Il serait bien que vous essayez de comprendre le code de bloodwolff.
Si vous regardez bien, il ne regarde que le premier caractère (le reste on s'en fiche ...). :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Effacer les deux premières lignes d'un fichier

#14

Message par pierrotm777 »

Oui , Tlem , c'est bien ce que j'essai de faire.
Je lui ai juste répondu que mes lignes sont du genre:

Code : Tout sélectionner

; This Ascii PoiFile was generated on 04/05/2010 by PoiEdit, ©2002-2005 by Dnote Software (http://www.dnote.nl). All rights reserved.
et pas:

Mais ce code me convient aussi !:D
Avatar du membre
bloodwolff
Membre émérite
Membre émérite
Messages : 655
Enregistré le : ven. 18 avr. 2008 22:36
Localisation : Québec
Status : Hors ligne

Re: [R] Effacer les deux premières lignes d'un fichier

#15

Message par bloodwolff »

FileRead ( "filehandle/filename" [, count] )
count [optional] [blink]The number of characters to read[/blink]. Default read the entire file.
Donc lorsque que ce paramètre est à 1 cela retourne bien ";" Et non
; This Ascii PoiFile was generated on 04/05/2010 by PoiEdit, ©2002-2005 by Dnote Software (http://www.dnote.nl). All rights reserved.
Compte skype : bloodwolfff
pierrotm777
Membre émérite
Membre émérite
Messages : 770
Enregistré le : sam. 11 oct. 2008 14:44
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Effacer les deux premières lignes d'un fichier

#16

Message par pierrotm777 »

Ah oui, je comprend , donc pad besion du stringleft ! C'est bien ce que je disais ! :wink:
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Effacer les deux premières lignes d'un fichier

#17

Message par Tlem »

Si vous avez besoin de supprimer des lignes au début ou à la fin d'un fichier, jetez un coup d’œil par ici : http://www.autoitscript.fr/forum/viewto ... 62&start=0
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [R] Effacer les deux premières lignes d'un fichier

#18

Message par sylvanie »

vous pouvez aussi utilisez cette expression régulière :

Code : Tout sélectionner

$contenu=FileRead(@ScriptDir&"\text_to_parse.txt")
$contenu=StringRegExpReplace($contenu,"\A.+\n.+\n","")
ConsoleWrite($contenu)
 
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Répondre