Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Résolu] {Merci à Sachadee!} Marge d'erreur
Auteur Message
Répondre en citant
Message [Résolu] {Merci à Sachadee!} Marge d'erreur 
Salut, je suis encore sincèrement désolé de vous ennuyer avec un nouveau topic d'aide Mr. Green

Bon voilà, n'étant pas très convaincant dans le tchat, je vais faire ça plus clairement (j'ai le temps aujourd'hui...)

Je voulais avoir une marge d'erreur dans le if, c'est à dire que si j'indique une marge de 1, c'est à dire qu'un caractère peut changer
Je vais vous dire une bêtise, ne vous fiez pas à ce code ^^
Code:

::par exemple, mais if /m n'existe pas!

set/p var=

if /i /m 1 %var%==test echo ok

Voilà, si je rentre "test" ça marche comme si je faisais une faute de frappe "teqt" ça marche aussi, il peut l'interpréter comme te?t, mais avec UN joker (si plus d'un caractère qui change = marche pas)

Même exemple, "if /I /M 2 ...." autorise la casse et 2 jokers, etc...

J'espère que vous avez saisi un peu Mr. Green et que vous avez des astuces pour ^^

PS: j'ai mis /m mais vous avez compris que si c'est une commande externe comme Batbox ça va aussi Wink
(SVP pas de truc à installer définitivement, mon ordi ne supporte pas)

Merci d'avoir lu!



Dernière édition par Hugo7 le Mar 14 Oct 2014 - 20:33; édité 2 fois

______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Résolu] {Merci à Sachadee!} Marge d'erreur 
Salut,

Ton problème est un peu plus complexe qu'il n'y paraît :

On peu imaginer une décomposition du string et un test FIND sur chaque caractère.

Exemple :


Code:
@echo off
:: la valeur entrée
set /p "$vtest=Entrer votre string : "

::la valeur correct
set "$var=test"

:: Le nombre de joker admis

set $marge=2

set "$l="
set $c=0
set $saisie=%$vtest%

call:test
for %%a in (%$l:~1%) do (echo %$var% | find /i "%%a" >nul || set /a $c+=1)

echo Valeur de REF : [%$var%]  ^| Valeur Saisie : [%$saisie%]
echo NB joker utilis‚ : [%$c%]
If %$c% gtr %$marge% (echo Erreur Nb de caractere different superieur a la marge [%$marge%]
  ) else (echo OK)
exit/b

:test
if defined $vtest (set $l=%$l% %$vtest:~0,1%
                 set $vtest=%$vtest:~1%
                 goto:test)


Le problème avec cette méthode est que si tu écris -> tsss ou -> tt
ça va passer.

Donc il faudrait mettre en corélation le nombre de caractère et la position des caractères.

A toi de voir ce qu'il te faut exactement.

Okay



Dernière édition par sachadee le Mer 15 Oct 2014 - 11:46; édité 1 fois

______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message [Résolu] {Merci à Sachadee!} Marge d'erreur 
sachadee a écrit:

Le problème avec cette méthode est que si tu écris -> tsss ou -> tt ça va passer.

Salut, merci du script, mais les tsss c'est que quand il y a plusieurs lettres identiques à la suite? Si c'est ça c'est pas grave ^^
je testerais ça après manger Okay

EDIT: Super ça marche Very Happy




______________________________________________________
Cordialement,
Hugo, qui adore programmer, jouer à Minecraft, ZT2 et FSX.
Boutons-liens :
Visiter le site web du posteur Skype
Message [Résolu] {Merci à Sachadee!} Marge d'erreur 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch