TextReplace 1.0, By Sym98 :)

« Older   Newer »
  Share  
*Sym98*
CAT_IMG Posted on 16/4/2011, 09:17     +1   -1




Ciao a tutti, oggi ho ideato (e creato) questa "piccola" UDF, che serve a sostituire le lettere scritte con simboli che ci assomigliano.

Source:
SPOILER (click to view)
;*; #FUNCTION# ;===============================================;;
;*Name.............: _Main()
;*Description ....: Inizia a sostituire le lettere
;*Syntax...........: _Main()
;*Parameters ....: -
;*Return values .:
;*Author ...........: Sym98
;*Example ........: _Main()
; ; ========================================================;;
Func _Main()
While 1
Sleep(50)
HotKeySet("a", "_Texta")
HotKeySet("b", "_Textb")
HotKeySet("c", "_Textc")
HotKeySet("d", "_Textd")
HotKeySet("e", "_Texte")
HotKeySet("f", "_Textf")
HotKeySet("g", "_Textg")
HotKeySet("h", "_Texth")
HotKeySet("i", "_Texti")
HotKeySet("j", "_Textj")
HotKeySet("k", "_Textk")
HotKeySet("l", "_Textl")
HotKeySet("m", "_Textm")
HotKeySet("n", "_Textn")
HotKeySet("o", "_Texto")
HotKeySet("p", "_Textp")
HotKeySet("q", "_Textq")
HotKeySet("r", "_Textr")
HotKeySet("s", "_Texts")
HotKeySet("t", "_Textt")
HotKeySet("u", "_Textu")
HotKeySet("x", "_Textx")
HotKeySet("y", "_Texty")
HotKeySet("z", "_Textz")
HotKeySet("{F1}", "_TextStop")
WEnd
EndFunc

Func _Texta()
Send("ã")
EndFunc
Func _Textb()
Send("ß")
EndFunc
Func _Textc()
Send("¢")
EndFunc
Func _Textd()
Send("Ð")
EndFunc
Func _Texte()
Send("ë")
EndFunc
Func _Textf()
Send("ƒ")
EndFunc
Func _Textg()
Send("G˜")
EndFunc
Func _Texth()
Send("¿H")
EndFunc
Func _Texti()
Send("Í")
EndFunc
Func _Textj()
Send(".J")
EndFunc
Func _Textk()
Send("•K•")
EndFunc
Func _Textl()
Send("£")
EndFunc
Func _Textm()
Send("•M")
EndFunc
Func _Textn()
Send("ñ")
EndFunc
Func _Texto()
$X = Random(1, 2, 1)
If $X = 1 Then $letter = "Ø"
If $X = 2 Then $letter = "ø"
Send($letter)
EndFunc
Func _Textp()
Send("»P«")
EndFunc
Func _Textr()
Send("®")
EndFunc
Func _Texts()
Send("Š")
EndFunc
Func _Textt()
Send("†")
EndFunc
Func _Textu()
Send("ü")
EndFunc
Func _Textx()
Send("×")
EndFunc
Func _Texty()
Send("ý")
EndFunc
Func _Textz()
Send("ž")
EndFunc
Func _TextStop()
While 1
Sleep(100)
HotKeySet("{F1}", "_Main")
WEnd
EndFunc


Esempio:

CODICE
#include "TextReplace.au3"


_Main()


Info:
SPOILER (click to view)
;*; #FUNCTION# ;===============================================;;
;*Name.............: _Main()
;*Description ....: Inizia a sostituire le lettere
;*Syntax...........: _Main()
;*Parameters ....: -
;*Return values .:
;*Author ...........: Sym98
;*Example ........: _Main()
; ; ========================================================;; *


Dimostrazione:
SPOILER (click to view)
¢Íãø ã †ü††Í ¢Ø•Më vã? vÍ »P«Íã¢ë qü늆㠊¢®Í††ü®ã? :P


Spero che vi piaccia,
Saluti, Sym98 :)
 
Top
I.Ren
CAT_IMG Posted on 16/4/2011, 13:43     +1   -1




Una funzione con un ciclo infinito è inutile. Questo è un programma, non una funzione.

Ti consiglio di fare una cosa del genere:

CODICE
Func cambia($stringa)
$split = StringSplit($stringa,"")
For $i=0 To $split[0]
;cambia ogni carattere
Next
EndFunc
 
Top
*Sym98*
CAT_IMG Posted on 16/4/2011, 16:59     +1   -1




CITAZIONE (I.Ren @ 16/4/2011, 14:43) 
Questo è un programma, non una funzione.

Bhe si infatti inizialmente era nato come un programma, ma visto che non mi andava di fare la GUI ho pensato di utilizzarlo come UDF...
 
Top
CAT_IMG Posted on 2/11/2011, 19:33     +1   -1

GeNesiS crew founder

Group:
Member
Posts:
2,537
Reputazione:
0
Location:
Bergamo

Status:


In un pomeriggio di cazzeggio ho modificato questa UDF per togliere il ciclo while e renderla un po' (nei miei limiti) più efficente

Ecco il codice
CODICE
; #INDEX# ===================================================================================
; Title .........: Convert
; AutoIt Version : 3.2
; Language ......: English
; Description ...: Convert a string into special symbols
; Author(s) .....: Sym98 & fede.97
; ===========================================================================================

; #FUNCTION# ;===============================================================================
;
; Name...........: _Convert
; Description ...: Convert a string into special symbols
; Syntax.........: _Convert ( $String )
; Parameters ....: $String - String to convert
; Return values .: String converted
; Author ........: Sym98 & fede.97
;
;============================================================================================

Func _Convert ($String)
$Split=StringSplit ( StringLower ($String), "" )
Local $Ret
For $i = 1 To $Split[0]
       If $Split[$i] = "a" Then
               $Ret = $Ret&"ã"
       ElseIf $Split[$i] = "b" Then
               $Ret = $Ret&"ß"
       ElseIf $Split[$i] = "c" Then
               $Ret = $Ret&"¢"
       ElseIf $Split[$i] = "d" Then
               $Ret = $Ret&"Ð"
       ElseIf $Split[$i] = "e" Then
               $Ret = $Ret&"ë"
       ElseIf $Split[$i] = "f" Then
               $Ret = $Ret&"ƒ"
       ElseIf $Split[$i] = "g" Then
               $Ret = $Ret&"G"
       ElseIf $Split[$i] = "h" Then
               $Ret = $Ret&"¿H"
       ElseIf $Split[$i] = "i" Then
               $Ret = $Ret&"Í"
       ElseIf $Split[$i] = "j" Then
               $Ret = $Ret&".J"
       ElseIf $Split[$i] = "k" Then
               $Ret = $Ret&"•K•"
       ElseIf $Split[$i] = "l" Then
               $Ret = $Ret&"£"
       ElseIf $Split[$i] = "m" Then
               $Ret = $Ret&"•M"
       ElseIf $Split[$i] = "n" Then
               $Ret = $Ret&"ñ"
       ElseIf $Split[$i] = "o" Then
               $Ret = $Ret&"Ø"
       ElseIf $Split[$i] = "p" Then
               $Ret = $Ret&"»P«"
       ElseIf $Split[$i] = "q" Then
               $Ret = $Ret&"•Q•"
       ElseIf $Split[$i] = "r" Then
               $Ret = $Ret&"®"
       ElseIf $Split[$i] = "s" Then
               $Ret = $Ret&"Š"
       ElseIf $Split[$i] = "t" Then
               $Ret = $Ret&"†"
       ElseIf $Split[$i] = "u" Then
               $Ret = $Ret&"ü"
       ElseIf $Split[$i] = "v" Then
               $Ret = $Ret&"v"
       ElseIf $Split[$i] = "w" Then
               $Ret = $Ret&"'W'"
       ElseIf $Split[$i] = "x" Then
               $Ret = $Ret&"×"
       ElseIf $Split[$i] = "y" Then
               $Ret = $Ret&"ý"
       ElseIf $Split[$i] = "z" Then
               $Ret = $Ret&"ž"
       ElseIf $Split[$i] = " " Then
               $Ret = $Ret&" "
       EndIf
Next
Return $Ret
EndFunc


Esempio
CODICE
#include <Convert.au3>

MsgBox (0, "Risultato",_Convert ("Ecco la nuova versione della UDF"))
 
Top
I.Ren
CAT_IMG Posted on 2/11/2011, 19:49     +1   -1




basta che fai un altro array con la sostituzione del carattere e poi usi arr[$i], non servono tutti quelli if che ti portano solo a perdere 2 ore in fase di esecuzione, oltre ad allungare inutilmente il codice
 
Top
»Master
CAT_IMG Posted on 2/11/2011, 19:57     +1   -1




CITAZIONE (I.Ren @ 2/11/2011, 19:49) 
basta che fai un altro array con la sostituzione del carattere e poi usi arr[$i], non servono tutti quelli if che ti portano solo a perdere 2 ore in fase di esecuzione, oltre ad allungare inutilmente il codice

quoto xd
 
Top
*Sym98*
CAT_IMG Posted on 2/11/2011, 20:03     +1   -1




Si, ho realizzato questa UDF quando ero nabbo, andrebbe migliorata parecchio.
 
Top
CAT_IMG Posted on 3/11/2011, 13:25     +1   -1

GeNesiS crew founder

Group:
Member
Posts:
2,537
Reputazione:
0
Location:
Bergamo

Status:


Cosa intendete per una seconda array?
 
Top
*Sym98*
CAT_IMG Posted on 3/11/2011, 15:37     +1   -1




Credo voglia dire creare un array con le varie lettere e i corrispondenti, in modo da mettere tutto in ciclo For. Scriverei il codice, ma non ne ho voglia. xD
 
Top
»Master
CAT_IMG Posted on 3/11/2011, 16:44     +1   -1




due array.
CODICE
Dim $lettere[4]=["A", "B", "C", "D"]
Dim $caratteri[4]=["ã", "ß", "¢", "Ð"]
$input="ABBBCDABCDDBCA"
For $x=0 To Ubound($lettere, 1)-1
$input=StringReplace($input, $lettere[$x], $caratteri[$x])
Next
MsgBox(0, "", $input)
 
Top
*Sym98*
CAT_IMG Posted on 3/11/2011, 17:36     +1   -1




Volendo si potrebbe fare anche un unico Array.

CODICE
Func _Convert($String)
       Local $Ret
       Dim $Lettere[8] = ["a", "ã", "b", "ß", "c", "¢", "d", "Ð"]
       For $x = 0 to StringLen($String)
               If StringLen($String) = StringLen($Ret) Then ExitLoop
               For $i = 0 to UBound($Lettere)-1
                       If IsInt($i / 2) Then
                               If StringInStr($String, $Lettere[$i]) Then $Ret = $Ret&$Lettere[$i + 1]
                       EndIf
               Next
       Next
       Return $Ret
EndFunc

MsgBox(0,"",_Convert("aaa"))


L'ho fatto di fretta, non so se c'è qualche bug che non ho visto.
 
Top
.Mi©hele.
CAT_IMG Posted on 3/11/2011, 18:20     +1   -1




Molto utile per creare gli nick
 
Top
CAT_IMG Posted on 3/11/2011, 18:42     +1   -1

GeNesiS crew founder

Group:
Member
Posts:
2,537
Reputazione:
0
Location:
Bergamo

Status:


Grazie a tutti, non avevo pensato a StringReplace.
 
Top
CAT_IMG Posted on 3/11/2011, 20:59     +1   -1

GeNesiS crew founder

Group:
Member
Posts:
2,537
Reputazione:
0
Location:
Bergamo

Status:


Ecco il nuovo codice (ho cambiato l'autore) :-)
CODICE
; #INDEX# ===================================================================================
; Title .........: Convert
; AutoIt Version : 3.2
; Language ......: English
; Description ...: Convert a string into special symbols
; Author(s) .....: Sym98 & >>Master
; ===========================================================================================

; #FUNCTION# ;===============================================================================
;
; Name...........: _Convert
; Description ...: Convert a string into special symbols
; Syntax.........: _Convert ( $String )
; Parameters ....: $String - String to convert
; Return values .: String converted
; Author ........: Sym98 & >>Master
;
;============================================================================================

Func _Convert ($String)
Local $Lettrs[27]=["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", " "]
Local $Chrs[27] = ["ã", "ß","¢", "Ð", "ë", "ƒ", "G", "¿H", "Í", ".J", "•K•", "£", "•M", "ñ", "Ø", "»P«", "•Q•", "®", "Š", "†", "ü", "v", "'W'", "×", "ý", "ž", " "]
For $i = 0 To UBound ( $Lettrs, 1)-1
       $String=StringReplace ( $String, $Lettrs[$i], $Chrs[$i])
Next

Return $String
EndFunc
 
Top
»Master
CAT_IMG Posted on 4/11/2011, 22:58     +1   -1




più che altro serve più come un esercizio, non come UDF :)
anche perché non ha alcun standart... i caratteri li ha scelti sym, e è soltanto un set, se ci sono altri set magari diventa interessante ;)
 
Top
18 replies since 16/4/2011, 09:17   373 views
  Share