Bascule Minuscules/mAJUSCULES

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
gregelec
Niveau 1
Niveau 1
Messages : 12
Enregistré le : jeu. 29 janv. 2009 09:39
Status : Hors ligne

Bascule Minuscules/mAJUSCULES

#1

Message par gregelec »

Bonjour à tous
J'ai comme projet de faire un script qui inverse automatiquement un texte tapé au clavier avec la touche majuscule enfoncé en un texte avec la bonne casse.
Il m'arrive parfois d'écrire avec le clavier en majuscules au lieu de minuscules et c'est pénible de tout réécrire.
j'aimerais pouvoire sélectionner un texte ,faire un clic droit ,choisir inverser et la montexte en majuscule est transformé en minuscule.

ex: lA PHRASE ICI N4EST PAS DANS LA BONNE CASSE §

avec l'inversion cela donnerais : La phrase ici n'est pas dans la bonne casse.

Qui peut me donner un début de piste surtout pour intégrer la fonction dans le clic droit de la souris sur une sélection de texte.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2281
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: Bascule Minuscules/mAJUSCULES

#2

Message par jchd »

S'il s'agissait seulement d'inverser la casse, ça serait plutôt simple.
Mais là il faut remplacer de nombreux caractères "clavier" par leur version "shiftée", par exemple "!" et "§". Déjà il faut choisir le bon clavier, puis construire une table (ou une map) permettant de passer d'un niveau de shift clavier à l'autre, touche par touche.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
gregelec
Niveau 1
Niveau 1
Messages : 12
Enregistré le : jeu. 29 janv. 2009 09:39
Status : Hors ligne

Re: Bascule Minuscules/mAJUSCULES

#3

Message par gregelec »

La difficultée c'est de rajouter un item dans le menu contextuel de la sélection de texte comment l'identifier dans la base de registre?
Le code fonctionne

Code : Tout sélectionner

#include <MsgBoxConstants.au3>
;
$maj="12 4567890°+AZERTYUIOP¨£QSDFGHJKLM%µWXCVBN?./§"
$min="&é '(-è_çà)=azertyuiop^$qsdfghjklmù*wxcvbn,;:!"

$texte_exemple="lA PHRASE ICI N4EST PAS DANS LA BONNE CASSE §"
$txt_ok=""
Local $long_txt =StringLen($texte_exemple)
local $cpt=1
local $cptlong=1
;MsgBox( $MB_SYSTEMMODAL, "", "La longueur de cette chaîne est de " & $long_txt & " caractères.")

for $cpt=1 to $long_txt Step 1
	stringmid ($texte_exemple,$cpt,1)
	$txt_ok=$txt_ok&StringMid($min,StringInStr($maj,stringmid ($texte_exemple,$cpt,1),1),1)
	$txt_ok=$txt_ok&StringMid($maj,StringInStr($min,stringmid ($texte_exemple,$cpt,1),1),1)

	Next
MsgBox( $MB_SYSTEMMODAL, "", $texte_exemple& @crlf & $txt_ok)

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

Re: Bascule Minuscules/mAJUSCULES

#4

Message par jchd »

Perso, je ferai comme pour mes autres "raccourcis", via HotKeySet. Je ne m'amuse pas à gérer les menus de clic droit et autres.
L'exemple gère tous les scripts à casse (latin, cyrillique, grec, ...).

Code : Tout sélectionner

#include <Array.au3>
#include <Clipboard.au3>

HotKeySet("!{F9}", ChangeShift)
HotKeySet("!²", _Exit)

While 1
	Sleep(20)
WEnd

Func ChangeShift()
	Local Static $mMap[]
	$mMap["1"] = "&"
	$mMap["&"] = "1"
	$mMap["2"] = "é"
	$mMap["é"] = "2"
	$mMap["3"] = '"'
	$mMap['"'] = "3"
	$mMap["4"] = "'"
	$mMap["'"] = "4"
	$mMap["5"] = "("
	$mMap["("] = "5"
	$mMap["6"] = "-"
	$mMap["-"] = "6"
	$mMap["7"] = "è"
	$mMap["è"] = "7"
	$mMap["8"] = "_"
	$mMap["_"] = "8"
	$mMap["9"] = "ç"
	$mMap["ç"] = "9"
	$mMap["0"] = "à"
	$mMap["à"] = "0"
	$mMap["°"] = ")"
	$mMap[")"] = "°"
	$mMap["+"] = "="
	$mMap["="] = "+"
	$mMap["¨"] = "^"
	$mMap["^"] = "¨"
	$mMap["£"] = "$"
	$mMap["$"] = "£"
	$mMap["%"] = "ù"
	$mMap["ù"] = "%"
	$mMap["µ"] = "*"
	$mMap["*"] = "µ"
	$mMap[">"] = "<"
	$mMap["<"] = ">"
	$mMap["?"] = ","
	$mMap[","] = "?"
	$mMap["."] = ";"
	$mMap[";"] = "."
	$mMap["/"] = ":"
	$mMap[":"] = "/"
	$mMap["§"] = "!"
	$mMap["!"] = "§"

	Local $s = ClipGet()
	If @error Then Return
	Local $aText = StringSplit($s, "", 3)
	For $i = 0 To UBound($aText) - 1
		If MapExists($mMap, $aText[$i]) Then
			$aText[$i] = $mMap[$aText[$i]]
		Else
			$aText[$i] = (StringIsUpper($aText[$i]) ? StringLower($aText[$i]) : StringUpper($aText[$i]))
		EndIf
	Next
	$s = _ArrayToString($aText, "", Default, Default, "")
	ClipPut($s)
EndFunc   ;==>ChangeShift

Func _Exit()
	Exit
EndFunc   ;==>_Exit

#cs

gshn 356 ogzrno ui ojt âçèèéêëîïôöùûüæÆœŒ ioeJOI ѓͻϻҐЫЉБӂӬ JO jJIOPIJJ"(--èè__
GSHN "(- OGZRNO UI OJT Â9772ÊËÎÏÔÖ%ÛÜÆ挜 IOEjoi ЃϽϺґыљбӁӭ jo Jjiopijj35667788

#ce
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Répondre