Page 1 sur 1

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

Posté : dim. 12 déc. 2010 18:04
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

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

Posté : dim. 12 déc. 2010 18:34
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

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

Posté : dim. 12 déc. 2010 18:49
par pierrotm777
merci de votre aide, c'est les deux lignes entières, vous en avez l'exemple dans le post 1. :D

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

Posté : dim. 12 déc. 2010 19:57
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

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

Posté : dim. 12 déc. 2010 20:17
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

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

Posté : lun. 13 déc. 2010 11:21
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)

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

Posté : lun. 13 déc. 2010 13:34
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

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

Posté : lun. 13 déc. 2010 13:45
par bloodwolff
Ah j'ai juste oublié le Dim :lol:

Code : Tout sélectionner

dim $file[3] = [$vFic_RF2, $vFic_RFR2, $vFic_RM2]

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

Posté : lun. 13 déc. 2010 14:22
par pierrotm777
Merci à bloodwolff, c'est exactement ce que je voulais !

Merci à tous pour votre aide

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

Posté : mar. 14 déc. 2010 11:13
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

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

Posté : mar. 14 déc. 2010 16:54
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

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

Posté : mer. 15 déc. 2010 08:21
par pierrotm777
Et bien , la ligne ne contient pas un seul caractère mais bien une phrase

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

Posté : mer. 15 déc. 2010 09:12
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:

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

Posté : mer. 15 déc. 2010 17:25
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

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

Posté : mer. 15 déc. 2010 17:27
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.

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

Posté : mer. 15 déc. 2010 17:51
par pierrotm777
Ah oui, je comprend , donc pad besion du stringleft ! C'est bien ce que je disais ! :wink:

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

Posté : mer. 15 déc. 2010 22:36
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

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

Posté : jeu. 16 déc. 2010 23:00
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)