[R] Traitement de fichier text

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
bigophone
Niveau 2
Niveau 2
Messages : 20
Enregistré le : ven. 24 févr. 2012 14:14
Localisation : Toulon
Status : Hors ligne

Re: [..] Traitement de fichier text

#21

Message par bigophone »

Bonjour.
Désolé c'etais le fichier a traité et non le resulta attendu.

J ai rectifié

Pour le resulta ces juste pour prendre des données dans le premier fichier.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Traitement de fichier text

#22

Message par mikell »

Oui ça j'avais compris, ce que je voudrais savoir c'est :
De ce fichier à traiter, quelles sont les données que tu veux récupérer ? peux-tu écrire ça à la main histoire de montrer à quoi doit ressembler le fichier de résultat ?
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
bigophone
Niveau 2
Niveau 2
Messages : 20
Enregistré le : ven. 24 févr. 2012 14:14
Localisation : Toulon
Status : Hors ligne

Re: [..] Traitement de fichier text

#23

Message par bigophone »

Voici le resulta souhaité


Ligne1 Ligne2
1857 3010
8241 4010
1009 6010
2929 0010

bien sur le fichier a plus de ligne que cette exemple (200 environs).
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Traitement de fichier text

#24

Message par sylvanie »

bonjour,
brute de fonderie, je traiterai ainsi :
► Afficher le texte
Si il y a du reformatage Html par la suite TBD

[Edit] La phase de nettoyage n'est pas vraiment obligatoire, mais perso j'aime bien commencer par dégager tout ce qui est "parasite"
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Traitement de fichier text

#25

Message par mikell »

Hum je l'avais enlevé sui-là mais finalement il marche très bien ^^

Code : Tout sélectionner

$string = FileRead("a_traiter.txt")
$txt = "Ligne1 Ligne2" & @crlf

$ligne = StringSplit($string, @crlf)
For $i = 1 to $ligne[0]  ; pour chaque ligne du fichier
     ; vire la ligne si elle contient des caractères alien ou comporte moins de 8 caractères 
   If not StringRegExp($ligne[$i], '[^\s\d\w/]') and StringLen($ligne[$i])>8 Then  
     ; récupère les données sur la ligne 
        $txt &= StringRegExpReplace($ligne[$i], '.*?(\d{4})/.*(\d{4})/.+', "$1 $2") & @crlf
    EndIf
Next
msgbox(0,"", $txt)
;FileWrite("resultat.txt", $txt)
Si le fichier fait plus de 10000 lignes, il vaut mieux au lieu de concaténer écrire les lignes au fur et à mesure dans le fichier de sortie ouvert en écriture
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1556
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] Traitement de fichier text

#26

Message par sylvanie »

10000 n'est peut être pas forcément une valeur butoire, car en en admettant qu'une ligne fasse 1ko (et c'est une sacrée ligne !) on à 10Mo de pris en mémoire, ce qui est pour un pc actuel franchement acceptable ... Par contre 10000 écritures dans un fichier ça peut devenir longuet.
Si on joue la carte du compromis, on constitue des paquets de lignes en ram (genre 1000 comme ça) et on fait un filewrite toutes les 1000 lignes en gérant donc un compteur. (et on n'oublie pas de faire un dernier filewrite en sortie de lecture si le compteur en question est <> 0).
Ainsi on n'éclate pas la mémoire et on ne passe pas son temps à faire des accès disques.
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
Répondre