[..] Décompte de caractères entre 2 pipe

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Pecwan
Niveau 1
Niveau 1
Messages : 3
Enregistré le : jeu. 08 janv. 2009 11:21
Status : Hors ligne

[..] Décompte de caractères entre 2 pipe

#1

Message par Pecwan »

Bonjour à tous,

J'en appelle à vos lumières car ça fait plusieurs jours que je traine sur le forum pour arriver à faire mon programme, et je m'aperçois que ... ben que je suis une grosse crêpe en programmation :(

Voici la problematique:
Je dois scruter un dossier. Si dans ce dossier il y a des fichiers, je commence à lire le premier. Je srute les | (pipe) sur les lignes commencant par P|0, et dois compter le nombre de caractères entre le 2eme et le 3eme pipe de la ligne. S'il y a plus de 4 caractères entre ces 2 pipe, je recopie la ligne entière, et le nom du fichier, dans un fichier erreur.txt; sinon je continue à scruter le fichier, puis une fois le fichier terminé, le fichier qui suit, ... Le but ultime étant qu'à la fin de tout ce process sur le dossier complet, j'envoie par mail le fichier erreur à :o :o :o ... moi, et de deplacer les fichiers ainsi scannés dans un dossier d'archive.

Plein de bonne volonté, j'ai donc pris mes bits et mon couteau, et j'ai réussi à ouvrir le premier fichier du dossier, lire les lignes, detecter les lignes commencant par P|0, reperer les pipe , et ... :oops: et ben c'est tout. HELP !!!!!!!!!!! :( :( :(
Voici mon chef d'oeuvre, on ne se moque pas s'il vous plait:
► Afficher le textele code
N.B: je sais que j'ai déclaré toute les variables en Global, mais vu la taille du programme, je pense que ca ne doit pas avoir trop d'incidence sur le fonctionnement... enfin je dis ça mais si je me plante, n'hésitez pas à me le dire... oui vas-y cogne William !
Modifié en dernier par ani le mar. 27 janv. 2009 22:04, modifié 4 fois.
Raison : Modification de la balise du titre [...] en [..]
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Decompte de caracteres entre 2 pipe

#2

Message par Tlem »

Voici déjà une fonction pour analyser vos fichiers .hpr selon vos recommandations :

Code : Tout sélectionner

#Include <File.au3>

_TestFic("Fic1.hpr")

Func _TestFic($File)
    $hfile = FileOpen($File, 0)

    If $hfile = -1 Then
        FileWrite("Err.log", $File & " ==> " & "Fichier illisible.")
        Return 0
    EndIf

    While 1
        $line = FileReadLine($hfile)
        If @error = -1 Then ExitLoop
        If StringLeft($line, 3) = "P|0" Then
            $Var = StringSplit($line, "|")
            If StringLen($Var[3]) > 4 Then
                FileWrite("Erreur.txt", $File & " ==> " & $line)
            EndIf
        EndIf
    Wend

    FileClose($file)
    Return 1
EndFunc
Pour le déplacement des fichiers et l'envoi du fichier erreur.txt par mail, tout est dans le forum. ;)
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é".
Pecwan
Niveau 1
Niveau 1
Messages : 3
Enregistré le : jeu. 08 janv. 2009 11:21
Status : Hors ligne

[R] Decompte de caracteres entre 2 pipe

#3

Message par Pecwan »

TLEM, t'es un Dieu !!

Merci beaucoup de ton aide, je vais essayer de me lancer dans la création d'une GUI pour me permettre de modifier la valeur de var[3] à la volée. Je me permettrais de vous solliciter à nouveau, en cas de problemes, Grand Maître !!!!
Merci encore, tu m'as vraiment fait gagner un temps précieux.
Pecwan
Niveau 1
Niveau 1
Messages : 3
Enregistré le : jeu. 08 janv. 2009 11:21
Status : Hors ligne

Re: [...] Decompte de caracteres entre 2 pipe

#4

Message par Pecwan »

Hello world...

C'est le come back du retour, j'en peux plus... vais finir par aller faire du mat cramé dans le Larzac :(

Bon j'ai donc essayé de poursuivre mon programme pour le faire évoluer. Ben oui, je récupére les lignes contenant les mauvaises ipp et les copie dans un fichier erreur.txt (big up pour Tlem, au passage). Puis je me suis dis, c'est bien joli, joli, mais tu te retrouves dans ton fichier avec plusieurs lignes contenant ces ipp à modifier, et après ... qu'est-ce qu'elle a bien pu faire, juste après, nanana... je m'égare, pardon.
Donc l'idéal serait de créer un tableau de correspondance, qui après écriture dans le fichier erreur.txt, remplacerait à la volée (on the fly, comme on dit en Provence), la mauvaise IPP par la ... bonne, yes !
Pour faire un truc qui déchire le flex de la vibe in the storm of the street, je verrais bien un truc dans ce genre:
1 - Gui avec : 3 champs informatifs (nom du fichier traité, ligne copiée dans le fichier erreur, Mauvais IPP trouvée)
1 liste déroulante multi-colonnes (nom/prenom/ipp/adresse/ville) qui afficherait les infos à partir d'un fichier externe (listeipp.txt ou autre extension), sur laquelle la sélection d'une ligne me permettrait de faire le remplacement de la mauvaise ipp par celle de la ligne sélectionnée.
La validation entrainerait une copie des deux IPP (mauvaise et bonne), dans un tableau à 2 Dimensions, qui servirait de tableau de correspondance. Cela sera utilisé lors du scan des fichiers suivants, au cas où on retrouve la même fausse IPP dans un autre fichier.
2 - Savoir si vous trouvez ce fonctionnement judicieux et réalisable

Voilà, c'est tout... Allez, au taf ! :D
Evidemment, si je termine ce post comme ça, je vais me prendre un lien sur la doc en francais.. voilà pourquoi, votre honneur, mon client n'est pas totalement coupable. Il a cherché, dans l'UDF nommée Array 2D, à comprendre comment ca fonctionnait, il a cherché dans la doc la création des GUI, qu'il a réalisé d'ailleurs, sans comprendre comment on pouvait affiché le contenu d'un fichier dans une liste déroulante...et encore moins recuperer une valeur particuliere lors du clic sur une ligne, non monsieur le président ce n'est pas drôle pour mon client tous les jours de se rendre compte que c'est une chêvre avec une tête ronde toute jaune qui change de couleur par intermittence --> :oops:
Alors, si vous avez un tant soit peu de coeur, aidez-le ... please :cry:
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11784
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [...] Decompte de caracteres entre 2 pipe

#5

Message par Tlem »

L'idée du Larzac me semble intéressante. :lol:

Sinon là comme ça, ça demande grosse réflexion, mais surtout des exemples et modèles de fichiers.
Si je peut passer du temps dessus, je regarderais, mais c'est pas sur.
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é".
Répondre