[C] Convertir mon batch en autoit

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Avatar du membre
labougie
Niveau 4
Niveau 4
Messages : 68
Enregistré le : dim. 03 nov. 2013 14:36
Status : Hors ligne

Re: [..] Convertir mon batch en autoit

#81

Message par labougie »

Je fais suite à ton dernier post et aux explications données sur le déroulement de la boucle For.

J'ai donc inscrit des conditions IF
et mon problème est résolu, en revanche je suis surpris du fonctionnement de cette boucle.
► Afficher le texte
Cette condition est donc obligatoire pour palier le problème
if not FileExists (@HomeDrive & "\ToolSearch\Dossier\" & $path & "[10]" & ".txt") Then
le chiffre [10] est lié à celui de la boucle FOR $run = 1 to 10

je ne suis pas programmeur de formation mais ce principe de code ne me semble pas logique :roll:
ou alors je ne suis pas logique du tout, si si c'est possible :mrgreen:

labougie
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Convertir mon batch en autoit

#82

Message par Tlem »

Pouvez-vous décrire en quelques lignes ce que votre script est sensé faire ?
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é".
Avatar du membre
labougie
Niveau 4
Niveau 4
Messages : 68
Enregistré le : dim. 03 nov. 2013 14:36
Status : Hors ligne

Re: [..] Convertir mon batch en autoit

#83

Message par labougie »

  • je saisi un chemin dans lequel je souhaite connaitre le contenu (liste des dossiers uniquement),
  • l'inscription est du type c:\frst\ c'est ma variable $path
  • la recherche se lance et liste dans un logfile les dossiers
  • chaque dossier est comptabilisé
  • en fin de script je fais le tri dans le chemin de sortie
  • je désassemble le path c:\frst\ et le ré assemble en c-frst.txt
  • je renomme c:\toolsearch\dossier\recherche dossier.txt en
  • c:\toolsearch\dossier\$path.txt pour obtenir
  • c:\toolsearch\dossier\c-frst[1].txt
  • le chiffre 1 doit être incrémenté car je peux faire plusieurs fois la même recherche
Voici un logfile pour mieux comprendre
► Afficher le texte
Voici une copie du dossier c:\toolsearch\dossier\
► Afficher le texte
labougie
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Convertir mon batch en autoit

#84

Message par Tlem »

Donc le but est de déplacer le fichier "c:\toolsearch\dossier\recherche dossier.txt" en "c:\toolsearch\dossier\c-frst[x].txt", avec X correspondant à une incrémentation du nombre de fois ou vous effectuez l'opération ?

Edit : En prévision de l'affirmative :
► Afficher le texte
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é".
Avatar du membre
labougie
Niveau 4
Niveau 4
Messages : 68
Enregistré le : dim. 03 nov. 2013 14:36
Status : Hors ligne

Re: [..] Convertir mon batch en autoit

#85

Message par labougie »

C'est tout à fait cela dans la démarche +1

Je regarderai le code dans la semaine, je vais laisser passer Noël, tous le méritent.

labougie
Avatar du membre
labougie
Niveau 4
Niveau 4
Messages : 68
Enregistré le : dim. 03 nov. 2013 14:36
Status : Hors ligne

Re: [..] Convertir mon batch en autoit

#86

Message par labougie »

Bonjour Tlem,

Votre script correspond parfaitement à ce que je souhaite ce faire. Merci.

---

Je ne trouve pas la fonction qui permet de contrôler une saisie
Dans mon outil l'on peut soit saisir
c:\frst\
soit
c:\frst
la recherche donne bien évidemment le même résultat dans le logfile. Sauf que:
le nom de sorti est complètement différent
c:\frst\ donne c-frst[1].txt
soit
c:\frst donne c-frs[1].txt

J'ai utilisé plusieurs commandes de la famille string et je n'arrive pas à mes fins.

Il y a deux possibilités je pense

1/ Contrôler la saisie dés l'insertion des caractères,
2/ Laisser la saisie telle que puis faire un contrôle tout à la fin

Cas 1

J'ai cherché sur google "contrôler masque de saisie".
L'on parle souvent de "Input box", ce n'est pas mon cas, et même en essayant de suivre le peut que j'ai compris, hélas rien n'y fais.

Cas 2

$path = GUICtrlRead($path41)

$path ce qui est saisie dans la case "GUICtrlRead($path41)"

Donc l'user saisie le $path sous la forme
c:\frst\
soit
c:\frst
le script tourne
je tente de modifier le nom du logfile
le logfile doit toujours sortir sous la forme c-frst[1].texte quelque soit la saisie faite par l'user.

mon script que je n'arrive pas à modifier

dans le If j'ai tenté = , == ,<> mais rien n'y fais, j'ai comme l'impression que ce if n'est pas lu :mrgreen:
► Afficher le texte
Cette partie de script seule
$path = StringReplace($path,":", "")
$path = StringReplace($path,"\", "-")
$path = StringTrimRight ($path,1)
fonctionne bien mais supprime toujours le dernier caractère, comment faire un test pour que lorsque soit saisie c:\frst le dernier caractère ne soit pas tronqué, et surtout lorsque c:\frst\ le dernier soit supprimé

labougie
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Convertir mon batch en autoit

#87

Message par Tlem »

Voilà :

Code : Tout sélectionner

$sPath = " c:\frst\ "

$sPath = StringStripWS($sPath, 3) ; Supprime les espaces en trop avant et après la chaine (j'ai rajouté ça au cas ou ...).
$sPath = StringRegExpReplace($sPath, "[\\/]+\z", "") ; Supprime les antislash de fin de chaine

Msgbox(64, "", "*" & $sPath & "*") ; les étoiles sont là pour montrer la délimitation.
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é".
Avatar du membre
labougie
Niveau 4
Niveau 4
Messages : 68
Enregistré le : dim. 03 nov. 2013 14:36
Status : Hors ligne

Re: [..] Convertir mon batch en autoit

#88

Message par labougie »

Bonjour Thierry,

Merci pour ce code.
J'ai adapté en fonction de mes besoins.
Je comprends mal les syntaxes suivantes

stringStripWS($sPath, 3)
Ici le 3 n'est pas listé dans ? est-ce bien la somme 1&2 trailing et leading?


StringRegExpReplace($sPath, "[\\/]+\z", "")
ok pour +\z
\\ ok
mais les [] , cela signifie t'il que tous les patterns doivent cloisonnés par des [] ?
le / quel est son utilité ?

labougie
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Convertir mon batch en autoit

#89

Message par jchd »

labougie,

L'aide de la récente release sur StringRegExp t'apportera la lumière, ou plutôt "the light".
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
labougie
Niveau 4
Niveau 4
Messages : 68
Enregistré le : dim. 03 nov. 2013 14:36
Status : Hors ligne

Re: [..] Convertir mon batch en autoit

#90

Message par labougie »

Bonsoir Jchd,

Justement, je l'ai bien lu, mais la lumière n'est point venu :mrgreen: .

J'ai lancé les tests ici.

je n'ai pas nettoyé le code, c'est à dire pas le temps d'inscrire des fonctions pour faire plus "zoli" :wink:

Cela va me permettre de pouvoir obtenir des retours, surtout des incompréhensions sur le fonctionnement :lol: , il y a 2 rubriques avec des options, et avec un peu de logique elles sont facilement trouvables

Espérant que je n'ai pas laissé trop de coquilles.

labougie

Je vais essayé de créér un ? dans une barre de menu pour y mettre des remerciements
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Convertir mon batch en autoit

#91

Message par jchd »

Alors, relis la rubrique "Character classes"
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
labougie
Niveau 4
Niveau 4
Messages : 68
Enregistré le : dim. 03 nov. 2013 14:36
Status : Hors ligne

Re: [..] Convertir mon batch en autoit

#92

Message par labougie »

Bonjour Jchd,

Meilleurs voeux à toutes et tous.

Ben justement, je l'ai lu, et relus, et tout n'est pas très claire, limpide :roll: .

----
Comment puis je retrouver ce type d'erreur quand le script est compilé?
Car bien évidemment, je n'ai pas autant de lignes :lol: .
Et pour essayer de corriger ce n'est donc pas très simple.
► Afficher le texte
labougie
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Convertir mon batch en autoit

#93

Message par jchd »

Le premier lien trouvé en français convient pour un début.
LMGTFY ... pffft.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Convertir mon batch en autoit

#94

Message par mikell »

labougie ...

Ce topic il part dans tout les sens, c'est un forum d'aide à lui tout seul, sur les 5 pages et 93 messages on voit défiler - entre autres - quasiment toutes les rubriques du fichier d'aide
Mais la règle ici c'est - en principe - une question par sujet. C'est valable pour tout le monde, aucune raison que ça le soit pas pour labougie.
Or dans ce topic les questions (principales ou accessoires) sur des sujets divers et variés on les compte plus, y a tout ce qu'on veut partout et même dans les coins :?

Donc à partir de dorénavant et jusqu'à désormais inclus on va faire les choses proprement, bien dans les règles, ce qui va se traduire pour moi par la clôture de ce topic pléthorique (résolu par ailleurs à 99%), et pour toi par un salutaire fractionnement des problèmes de code (ce qui t'évitera par ailleurs de partir en vrille) sous forme de questions distinctes évoquées dans des topics dédiés
Tu vas voir ça marche pas mal non plus :wink:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Verrouillé