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.
[R] Traitement de fichier text
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Traitement de fichier text
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 ?
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 )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
-
bigophone
- Niveau 2

- Messages : 20
- Enregistré le : ven. 24 févr. 2012 14:14
- Localisation : Toulon
- Status : Hors ligne
Re: [..] Traitement de fichier text
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).
Ligne1 Ligne2
1857 3010
8241 4010
1009 6010
2929 0010
bien sur le fichier a plus de ligne que cette exemple (200 environs).
- sylvanie
- Niveau 11

- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Traitement de fichier text
bonjour,
brute de fonderie, je traiterai ainsi :
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"
brute de fonderie, je traiterai ainsi :
► Afficher le texte
[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.
- mikell
- Spammer !

- Messages : 6292
- Enregistré le : dim. 29 mai 2011 17:32
- Localisation : Deep Cévennes
- Status : Hors ligne
Re: [..] Traitement de fichier text
Hum je l'avais enlevé sui-là mais finalement il marche très bien ^^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
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)" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
- sylvanie
- Niveau 11

- Messages : 1556
- Enregistré le : jeu. 26 juil. 2007 21:31
- Localisation : Paris
- Status : Hors ligne
Re: [..] Traitement de fichier text
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.
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.
