AutoIt Français

Nouveau forum : http://www.autoitscript.fr/
 
AccueilFAQRechercherS'enregistrerMembresGroupesConnexionhttp://www.autoitscript.fr

Partagez | 
 

 supprimer des caracteres d'une liste [RESOLU]

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
KITKAT
Membre


Nombre de messages : 36
Age : 28
Date d'inscription : 23/12/2006

MessageSujet: supprimer des caracteres d'une liste [RESOLU]   2007-04-29, 00:39

voila mon pb,j'ai une liste de personnes a "epurer" pour la rendre lisible^^
[quote:4a4a="voila une partie de la liste"]Nr. Nom Statut Points Coord Adhésion Online
1 KITKAT Écrire un message Aspect de la mort 1.701.180 [3] 2006-12-26 15:41:54 En ligne
2 Lameduck AO Écrire un message Chevalier Dragon 1.562.530 [5] 2006-11-10 18:51:03 En ligne
3 neo recome AO Écrire un message Dragon Indomptable 1.152.037 [4] 2006-11-10 18:51:33 Hors ligne
4 Hikary 0sdz0 Écrire un message Dragonet Insassiable 798.302 [3] 2006-11-12 01:57:57 Hors ligne[/quote]
je voudrais avoir un resultat rendant plus ceci:
[quote]Nr. Nom Points Coord
1 KITKAT 1.701.180 [3]
2 Lameduck AO 1.562.530 [5]
3 neo recome AO 1.152.037 [4]
4 Hikary 0sdz0 798.302 [3][/quote]
j'ai commencé a faire ceci:
[quote][color=Red]#include[/color] < GUIConstants.au3 >
[b]GUICreate[/b] [b]([/b] "test" [color=Green],[/color] [i]300[/i] [color=Green],[/color] [i]300[/i] [b])[/b]
[color=MediumBlue]$lancer[/color] [color=Green]=[/color] [b]GuiCtrlCreateButton[/b] [b]([/b] "lancer" [color=Green],[/color] [i]10[/i] [color=Green],[/color] [i]260[/i] [color=Green],[/color] [i]60[/i] [color=Green],[/color] [i]30[/i] [b])[/b]
[color=MediumBlue]$annuler[/color] [color=Green]=[/color] [b]GuiCtrlCreateButton[/b] [b]([/b] "annuler" [color=Green],[/color] [i]70[/i] [color=Green],[/color] [i]260[/i] [color=Green],[/color] [i]60[/i] [color=Green],[/color] [i]30[/i] [b])[/b]
[color=MediumBlue]$effacer[/color] [color=Green]=[/color] [b]GUICtrlCreateButton[/b] [b]([/b] "effacer le texte" [color=Green],[/color] [i]130[/i] [color=Green],[/color] [i]260[/i] [color=Green],[/color] [i]100[/i] [color=Green],[/color] [i]30[/i] [b])[/b]
[b]GuiCtrlCreateLabel[/b] [b]([/b] "liste des membres:" [color=Green],[/color] [i]10[/i] [color=Green],[/color] [i]35[/i] [color=Green],[/color] [i]200[/i] [color=Green],[/color] [i]15[/i] [b])[/b]
[color=MediumBlue]$texte0=GUICtrlCreateEdit[/color] [b]([/b] "" [color=Green],[/color] [i]10[/i] [color=Green],[/color] [i]50[/i] [color=Green],[/color] [i]280[/i] [color=Green],[/color] [i]150[/i] [b])[/b]
[b]GuiSetState[/b] [b]([/b] [b])[/b]

[color=Green]while[/color] [i]1[/i]
[color=MediumBlue]$msg[/color] [color=Green]=[/color] [b]GUIGetMsg[/b] [b]([/b] [b])[/b]
[b]Select[/b]
[color=Green]Case[/color] [color=MediumBlue]$msg[/color] [color=Green]=[/color] [color=MediumBlue]$GUI_EVENT_CLOSE[/color] [color=Green]or[/color] [color=MediumBlue]$msg=[/color] [color=MediumBlue]$annuler[/color]
[b]Exit[/b]
[color=Green]Case[/color] [color=MediumBlue]$msg=[/color] [color=MediumBlue]$lancer[/color]
triage [b]([/b] [b])[/b]
[color=Green]Case[/color] [color=MediumBlue]$msg=[/color] [color=MediumBlue]$effacer[/color]
[b]guictrlsetdata[/b] [b]([/b] [color=MediumBlue]$texte0[/color] [color=Green],[/color] "" [b])[/b]
[color=Green]EndSelect[/color]
[color=Green]WEnd

[/color] [color=Green]func[/color] triage [b]([/b] [b])[/b]
[b]StringReplace[/b] [b]([/b] [b]GUICtrlRead[/b] [b]([/b] [color=MediumBlue]$texte0[/color] [b])[/b] [color=Green],[/color] [color=MediumBlue]$texte1[/color] [color=Green],[/color] "Hors Ligne" [color=Green],[/color] "" [color=Green],[/color] [b])[/b]
[b]MsgBox[/b] [b]([/b] [i]0[/i] [color=Green],[/color] "teeeeeesteuuuuu" [color=Green],[/color] [b]GUICtrlRead[/b] [b]([/b] [color=MediumBlue]$texte1[/color] [b])[/b] [b])[/b]
[color=Green]EndFunc[/color][/quote]
le pb est que je ne sais pas comment enlever les"en ligne","hors ligne",les dates:'2006-12-26 15:41:54",les "écrire un message".
j'ai pensé a [b]"StringReplace" mais je sais pas comment ecrire ca
[/b][color=Green][/color]


Dernière édition par le 2007-05-06, 17:16, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
n3c's
Débutant
Débutant


Nombre de messages : 10
Date d'inscription : 11/04/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-04-29, 12:57

Bonjour,

Tu peux à ma connaissance utiliser la fonction [code]StringSplit(<chaîne>,<caractère>)[/code]

pour récupérer dans un tableau la chaîne découpée en plusieurs parties.

comme dans ton cas tu as un fichier texte il faudra faire une boucle un peu dans ce genre là:

[code]Dim $TT[1]

$fic = FileOpen(<fichier texte>, 0)

If $fic = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf

While 1
$line = FileReadLine($fic)
If @error = -1 Then ExitLoop
$d = StringSplit($line," ")
$TT[UBound($TT)-1] = $d[1] & $d[9] & $d[10] ; si je me suis pas trompé d'indice ça devrait récup les infos dont tu avais besoin
Redim $TT[UBound($TT) +1]
Wend[/code]

Comme ça après tu as juste à exploiter les données de ton tableau qui sont déjà formatées. Enfin personnellement j'ai l'habitude de travailler comme cela mais si tu préfères directement inclure dans l'edit ça pose pas de souci.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
KITKAT
Membre


Nombre de messages : 36
Age : 28
Date d'inscription : 23/12/2006

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-01, 12:20

quand j'essaye le script ca me met une erreur "array variable..."
a cette ligne:$TT[UBound($TT)-1] = $d[1] & $d[9] & $d[10]

ps:StringSplit( "string","delimiters" [,flag]) (recopié sur l'exemple d'auto-it)
dans les ( ) a quoi correspondent les differants elements??
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-02, 00:03

Pour traiter ce genre de pb, je passe généralement par les expression régulière. J' ai enregistré ton extrait de texte dans fichier_log.txt, et je lance ce script dessus :

$fic=FileOpen('fichier_log.txt',0)
$Ligne_finale=""
;découpage première ligne
$line=FileReadLine($fic)
$tab_line=StringSplit($line," ",1)
for $ind=1 to 5
If $ind = 3 Then ContinueLoop
$Ligne_finale&=$tab_line[$ind]&" "
Next
$Ligne_finale&=@CRLF
$cpt=2
While 1
$line=FileReadLine($fic)
If @error = -1 Then ExitLoop
$nOffset=1
$debut=StringRegExp($line,'(.+)Écrire',1) ; on balaye tout ce qu'il y a avant Écrire
If @error=0 Then
$nOffset=@extended
Else
MsgBox(16,"erreur de format","erreur de découpage ligne "&$cpt)
Exit 1
EndIf
$milieu=StringRegExp($line,'([\d\.]+)',1,$nOffset) ; ;on récupère tout ce qui suit de type plusieur digit et .
If @error=0 Then
$nOffset=@extended
Else
MsgBox(16,"erreur de format","erreur de découpage ligne "&$cpt)
Exit 1
EndIf

$fin=StringRegExp($line,'([\[\]\d:]+)',1,$nOffset) ; ;on récupère tout ce qui suit de type plusieurs digit avec : [ et ]
If @error<>0 Then
MsgBox(16,"erreur de format","erreur de découpage ligne "&$cpt)
Exit 1
EndIf
$Ligne_finale&=$debut[0]&$milieu[0]&" "&$fin[0]&@CRLF
$cpt+=1
WEnd
FileClose($fic)
MsgBox(0,"debug",$Ligne_finale)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
KITKAT
Membre


Nombre de messages : 36
Age : 28
Date d'inscription : 23/12/2006

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-02, 19:08

[color=Red]C:\...\tst2.au3 (23) : ==> Incorrect number of parameters in function call.:[/color]
$milieu=StringRegExp($line,'([\d\.]+)',1,$nOffset)
$milieu=^ ERROR

ca m'a mis cette erreur....(ligne 23)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-02, 20:17

bizarre chez moi çà fonctionne impeccable kitkat, peut etre que ton fichier ne porte pas le meme nom que dans le script > [b]fichier_log.txt [/b]et il doit se trouver au même endroit que le script.


StringSplit( "string","delimiters" [,flag]) (recopié sur l'exemple d'auto-it)

string = chaine de caractere
delimiteur= le séparateur entre les caractéres (, / | \ - _ )
flag= 0 par defaut et 1 pour
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-02, 20:59

Stringregexp est disponible depuis la dernière version stable d'autoit, ou des vieille beta.
Si ta version est plus ancienne, il est normal que la fonction soit inconnnue
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-02, 21:03

oops, j'ai rien dit, puisque ce n'est pas ce type d'erreur, sinon, ça aurait coincé avant
fait afficher la liste des paramètres pour voir ce qu'ils valent, cependant ce qui est étonnant, c'est que ça a l'air de coincer sur le nombre de ces derniers.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-02, 21:58

Ah , si si, je reviens sur ma première remarque ( ça fait girouette ...)
Il est possible que tu ai une vieille version beta qui implémente cette fonction avac uniquement les 3 premier arguments, il me semble que c'était le cas quand elle est apparu. Je pense que ça doit être ça ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
KITKAT
Membre


Nombre de messages : 36
Age : 28
Date d'inscription : 23/12/2006

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-02, 23:41

j'ai la version 3.2.0.1
ch moi "l'aide" d'autoit donne ca:
StringRegExp("test","pattern",flag)

sur ce vais taxer la derniere versino beta pour voir^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-02, 23:44

sans passer forcément à la beta, tu as la stable AutoIt v3.2.2.0 qui va bien
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
KITKAT
Membre


Nombre de messages : 36
Age : 28
Date d'inscription : 23/12/2006

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-03, 23:07

alors tout marche impec' avec la v 3.2.2.0:)
par contr ema liste etant:
[quote]Nr. Nom Statut Points Coord Adhésion Online
1 KITKAT Écrire un message Aspect de la mort 1.701.180 [3] 2006-12-26 15:41:54 En ligne
2 Lameduck AO Écrire un message Chevalier Dragon 1.562.530 [5] 2006-11-10 18:51:03 En ligne
3 neo recome AO Écrire un message Dragon Indomptable 1.152.037 [4] 2006-11-10 18:51:33 Hors ligne
4 Hikary 0sdz0 Écrire un message Dragonet Insassiable 798.302 [3] 2006-11-12 01:57:57 Hors ligne[/quote]
si je laisse la premiere ligne le script crashe....
et si je l'enleve le premier nom (en 1e ligne donc)n'est pas trié....
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-03, 23:11

Qu'entends tu par crash ?
Je viens de réessayer avec cette liste, et je n'ai pas de pb. C'est quoi le message d'erreur ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
KITKAT
Membre


Nombre de messages : 36
Age : 28
Date d'inscription : 23/12/2006

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-03, 23:47

aparement si je copie la premiere ligne qu'i lya sur le forum tout marche.
avec cette liste(copiée directement de mon classement)
[quote]Nr. Nom Statut Points Coord Adhésion Online
1 nicofars AO Écrire un message Chevalier Dragon 1.828.111 [1] 2007-02-15 19:24:51 Hors ligne
2 Daneel Olivaw AO Écrire un message Chevalier Dragon 1.821.107 [1] 2006-12-23 18:13:03 Hors ligne[/quote]
j'ai cette erreur:
(8) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
$Ligne_finale&=$tab_line[$ind]&" "
$Ligne_finale&=^ ERROR
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-03, 23:51

c'est que la première ligne lue depuis ton fichier ne doit pas correspondre à "Nr. Nom Statut Points Coord Adhésion Online
"
N'y aurait il pas un retours chariot avant cette première ligne par hasard ?
ou peut être que les séparateur ne sont pas des espaces alors ?

Le plus efficace est de regarer ce que vaut $line à ce niveau
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-04, 00:07

1.le fichier ne porte pas le même nom que celui du script > [b]fichier_log.txt (1ere ligne)[/b]

2[b].[/b]Ou il ne se trouve pas au même endroit que le script.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
DidUngar
Membre avancé


Nombre de messages : 78
Date d'inscription : 02/04/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-04, 12:46

Vous vous casser la tête.
Un bon automate et on en parle plus !

( bon il faut le faira avec switch car il n'y as pas de goto
mais la perte de puissance et negligable )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://didungar.com/
KITKAT
Membre


Nombre de messages : 36
Age : 28
Date d'inscription : 23/12/2006

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-04, 19:00

sur les lignes c'est des tabulations plutot que des espaces,
si je remplace dans le script les espaces par des tab pour la premiere ligne ca marche impec'
@ani: le fichier a le bon nom et est au bon endroit
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-04, 19:07

Pourtant l'erreur que tu donne ,je l'ai reproduite en changer de place le fichier ou en indiquant un nom erroné..

l'erreur dit qu'il ne peut lire le array (vu qu'il n'existe pas)

ou comme la dit sylvanie la première ligne ne correspond pas aux autre (l'element Nr exemple ) ... ou le mot de balayage ..


@didungar soit plus explicite oublie pas qu'on est tous novices

PS= (liser le réglement ou soyez discret dans vos demandes....)


Dernière édition par le 2007-05-04, 20:20, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
KITKAT
Membre


Nombre de messages : 36
Age : 28
Date d'inscription : 23/12/2006

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-04, 19:20

quand on copie la liste sur le bloc note on voit aparaitre toutes les tabulations,et donc le script chez moi ne marche pas a cause de ca...
dailleurs dans la premiere ligne:
Nr. Nom Statut Points
je voudrais enlever "statut" ^^(mais je comprend pas bien ca qu'il ya dans le script et ou il faut rajouter ca^^

edit:pour en revenir a un parametre de base:
au debut je voulais mettre une editbox pour tout coller dedans(a la place d'y coller dans le fichier),
mais si je remplace le fichier par le contenu de l'editbox j'ai un pb avec l'array:((ligne 8 tjs)


Dernière édition par le 2007-05-04, 20:16, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-04, 19:39

kitkat si tu comprend pas, faut pas hésité à demander (c'est un forum d'entreAide non ? si pas y a l'aide d'autoit chaque mot F1 (comme moi)


Dernière édition par le 2007-05-04, 20:32, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-04, 20:20

Si tu as des tab à la place des espaces, suffit de changer
$tab_line=StringSplit($line," ",1)
par
$tab_line=StringSplit($line,@tab,1)

ligne 5
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
KITKAT
Membre


Nombre de messages : 36
Age : 28
Date d'inscription : 23/12/2006

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-04, 21:44

ok^^ (en appyant aur tab ca marchait aussi)
au debut je voulais mettre une editbox pour tout coller dedans(a la place d'y coller dans le fichier),
mais si je remplace le fichier par le contenu de l'editbox j'ai un pb avec l'array:((ligne 8 tjs)
et je sais pas pk ca fait ca...:(
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-04, 22:00

tu dois retomber sur une tranformation des tab (contenu dans le fichier d'après les posts précédents) et l'editbox.
Donc pour tranché avec ceci, on remplace tout le bloc :

$tab_line=StringSplit($line,@tab,0)
for $ind=1 to 5
If $ind = 3 Then ContinueLoop
$Ligne_finale&=$tab_line[$ind]&" "
Next

par

$nOffset=1
$cpt=1
while $cpt<6
$tab_line=StringRegExp($line,'([^\s]+)',1,$nOffset) ; on prends tout sauf espace, tab horizontale, verticale, cr, crlf...
If @error=0 Then
$nOffset=@extended
Else
ExitLoop
EndIf
If ($cpt<>3) Then $Ligne_finale&=$tab_line[0]&" "
$cpt+=1
WEnd

Comme ça que ce soit espace, tab, cr, crlf c'est kifkif (j'ai même poussé le vice à en mélanger dans la ligne)
Remarquez au passage que c'est le seul endroit où on n'avait pas pris de regexp, et finalement c'est là qu'il ya des pbs...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
KITKAT
Membre


Nombre de messages : 36
Age : 28
Date d'inscription : 23/12/2006

MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   2007-05-05, 01:06

niark ca marche nikel la^^
j'ai meme rajouté une ligne a la fin pour me mettre mon beau classement dans un nouveau fichier texte^^
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: supprimer des caracteres d'une liste [RESOLU]   Aujourd'hui à 16:29

Revenir en haut Aller en bas
 
supprimer des caracteres d'une liste [RESOLU]
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» tr/atraps.gen, phish/fraudtool.spyrid.d, tr/gendal.312590
» 760 CAMPER- Comment supprimer une des listes de POI ? RESOLU
» Supprimer des thèmes[RESOLU]
» [RESOLU]Comment faire pour éditer/supprimer un message défilant?
» Supprimer une partie du bas dans la liste des sujets d'un forum ( phpbb2 )

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
AutoIt Français :: AutoIt v3 :: Entraide-
Sauter vers: