Texte "verschleiern"

  • Also...

    Ich habe mal ein Programm gemacht, das so weit ja ganz nice ist, aber mir fehlt das wichtigste dazu ^^

    Und zwar liest es in einer INPUT etwas aus, angenommen einen Text:

    "Hallo, wie geht es dir?"

    Jetzt soll mein Programm aber folgendes machen:

    Es soll für jeden einzelnen Buchstaben / lerrtaste / *'!= usw. erkennen, das es einer ist.
    Und dann soll es erkennen welcher, und soll folgendes machen...

    Also ich habe jetzt:

    [autoit]


    $A = "a"
    $H = "h"

    [/autoit]

    z.B. dann soll es das so ausgeben:

    [autoit]

    $H&$A

    [/autoit]

    Allso, als zusammenhängenden Text, nur als Variablen reihe

    Hoffe mir kann da jemand helfen ^^


    Der Code ist ja noch nicht fertig, aber bitte:

    [autoit]


    #include <Values.au3>
    ;In der VALUE sind a-z 0-9 usw
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Text Obfuscator", 230, 197, -1, -1)
    $Text = GUICtrlCreateInput("Text", 8, 72, 217, 21)
    $Label1 = GUICtrlCreateLabel("Text Verschleiern", 8, 8, 170, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Verschleier Text", 8, 104, 219, 25, $WS_GROUP)
    $Ausgabe = GUICtrlCreateInput("Ausgabe", 8, 136, 217, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    Case $Button1
    ;Jetzt soll er hier quasi nen Befehl ablaufen lassen, um den Text zu ändern, in VARIABLETEXT

    $VariableText = ;???
    GUICtrlSetData ($Ausgabe, $VariableText)

    EndSwitch
    WEnd

    [/autoit]

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

    Einmal editiert, zuletzt von EliteMattthias (1. April 2010 um 14:09)

  • dann musst du aber auch irgendwo speichern welche variablen er zusammengefügt ausgeben soll.

    also wirklich verschleiern ist das nich...


    aber vllt hilft dir Stringsplit($text, "")

  • Jetzt ist dort der ganze:

    [autoit]


    #include <Values.au3>
    ;In der VALUE sind a-z 0-9 usw
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Text Obfuscator", 230, 197, -1, -1)
    $Text = GUICtrlCreateInput("Text", 8, 72, 217, 21)
    $Label1 = GUICtrlCreateLabel("Text Verschleiern", 8, 8, 170, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Verschleier Text", 8, 104, 219, 25, $WS_GROUP)
    $Ausgabe = GUICtrlCreateInput("Ausgabe", 8, 136, 217, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    Case $Button1
    ;Jetzt soll er hier quasi nen Befehl ablaufen lassen, um den Text zu ändern, in VARIABLETEXT

    $VariableText = ;???
    GUICtrlSetData ($Ausgabe, $VariableText)

    EndSwitch
    WEnd

    [/autoit]

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Deswegen habe ich doch geschrieben das ichgerne wissen würde was es macht:

    Also:

    In die TextInput schreibt man nen Text, meinetwegen

    "Hallo, ich bin ein Text."

    Dann soll dieser Text in der AUSGABE als variablen wirr-warr zusammengestelltwerden!!!

    EDIT:

    Die Variablen sollen meinetwegen:

    $A = "a"
    $B = "b"
    usw usw usw

    so soll das sein ;)

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Spoiler anzeigen
    [autoit]

    Case $Button1
    If GUICtrlRead($Text) = "" Then ContinueLoop MsgBox(262144, "Error", "Text leer.")
    $sText = GUICtrlRead($Text)
    For $i = 65 To 90
    $sText = StringReplace($sText, Chr($i), "$" & Chr($i) & "&")
    Next
    $sText = StringTrimRight($sText, 1)
    GUICtrlSetData($Ausgabe, $sText)

    [/autoit]
  • Ich möchte aber nicht, dass er da znur zu $a&$o

    Sondern zu vorgegebenen für diesen Buchstaben macht ;)

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Ich hoffe das passt so...

    Spoiler anzeigen
    [autoit]

    ;~ #include <Values.au3>
    ;In der VALUE sind a-z 0-9 usw
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Text Obfuscator", 230, 197, -1, -1)
    $Text = GUICtrlCreateInput("a b", 8, 72, 217, 21)
    $Label1 = GUICtrlCreateLabel("Text Verschleiern", 8, 8, 170, 28)
    GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif")
    $Button1 = GUICtrlCreateButton("Verschleier Text", 8, 104, 219, 25, $WS_GROUP)
    $Ausgabe = GUICtrlCreateInput("Ausgabe", 8, 136, 217, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

    [/autoit] [autoit][/autoit] [autoit]

    Local $A = "LOL", $B = "ROFL"
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Case $Button1
    If GUICtrlRead($Text) = "" Then ContinueLoop MsgBox(262144, "Error", "Text leer.")
    Local $sText = GUICtrlRead($Text), $sNewText = ''
    For $i = 1 To StringLen($sText)
    $sString = StringReplace(StringMid($sText, $i, 1), StringMid($sText, $i, 1), Eval(StringMid($sText, $i, 1)))
    If $sString = '' Then $sString = StringMid($sText, $i, 1)
    $sNewText &= $sString
    Next
    GUICtrlSetData($Ausgabe, $sNewText)
    EndSwitch
    WEnd

    [/autoit]
  • Hi,

    hab mich mal daran versucht, funktioniert derzeit nur mit Zahlen und Buchstaben, wobei keine Umlaute umgewandelt werden.

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <ComboConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    ;~ #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $Form1 = GUICreate("Texte verschleiern", 478, 209)
    $Input1 = GUICtrlCreateInput("", 40, 48, 385, 21)
    $Button1 = GUICtrlCreateButton("Mix", 152, 88, 153, 33, $WS_GROUP)
    $Combo1 = GUICtrlCreateCombo("A", 400, 160, 41, 25)
    GUICtrlSetData($Combo1, '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|' & _
    'a|b|s|d|e|f|g|h|i|jk|l|m|n|o|p|q|g|r|s|t|u|v|w|x|y|z|1|2|3|4|5|6|7|8|9|0')
    $Label1 = GUICtrlCreateLabel("Weise einer Variablen", 280, 152, 107, 17)
    $Label2 = GUICtrlCreateLabel("einen neuen Wert zu", 280, 168, 103, 17)
    $Group1 = GUICtrlCreateGroup("Combo", 272, 136, 177, 57)
    $Input2 = GUICtrlCreateInput("", 16, 160, 241, 21)
    $Label4 = GUICtrlCreateLabel("Ergebnis:", 16, 144, 48, 17)
    GUICtrlSetState($Input2, $GUI_HIDE)
    GUICtrlSetState($Label4, $GUI_HIDE)
    GUICtrlSetState($Input2, $GUI_DISABLE)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)

    [/autoit] [autoit][/autoit] [autoit]

    Global $gA = 'A', $kA = 'a', $gB = 'B', $kB = 'b', $gC = 'C', $kC = 'c', $gD = 'D', $kD = 'd', _
    $gE = 'E', $kE = 'e', $gF = 'F', $kF = 'f', $gG = 'G', $kG = 'g', $gH = 'H', $kH = 'h', _
    $gI = 'I', $kI = 'i', $gJ = 'J', $kJ = 'j', $gK = 'K', $kK = 'k', $gL = 'L', $kL = 'l', _
    $gM = 'M', $kM = 'm', $gN = 'N', $kN = 'n', $gO = 'O', $kO = 'o', $gP = 'P', $kP = 'p', _
    $gQ = 'Q', $kQ = 'q', $gR = 'R', $kR = 'r', $gS = 'S', $kS = 's', $gT = 'T', $kT = 't', _
    $gU = 'U', $kU = 'u', $gV = 'V', $kV = 'v', $gW = 'W', $kW = 'w', $gX = 'X', $kX = 'x', _
    $gY = 'Y', $kY = 'y', $gZ = 'Z', $kZ = 'z', $1 = '1', $2 = '2', $3 = '3', $4 = '4', _
    $5 = '5', $6 = '6', $7 = '7', $8 = '8', $9 = '9', $0 = '0'

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Combo1
    _NewValue(GUICtrlRead($Combo1), InputBox('neuer Inhalt', 'Geben Sie nun den neuen ' & _
    'Inhalt der Variablen ' & GUICtrlRead($Combo1) & ' ein.'))
    Case $Button1
    If Not GUICtrlRead($Input1) = '' Then _Mix()
    EndSwitch
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _NewValue($Var, $nValue)
    Local $sVar
    If StringIsLower($Var) Then $sVar = 'k'
    If StringIsUpper($Var) Then $sVar = 'g'
    ;~ MsgBox(0, 'Test', Eval($sVar & $Var))
    Assign($sVar & $Var, $nValue)
    ;~ MsgBox(0, 'Test', Eval($sVar & $Var))
    EndFunc ;==>_NewValue

    [/autoit] [autoit][/autoit] [autoit]

    Func _Mix()
    Local $sSplit = StringSplit(GUICtrlRead($Input1), '', 0), $i, $Type
    ;~ _ArrayDisplay($sSplit)
    For $i = 1 To $sSplit[0]
    $Type = _GetType($sSplit[$i])
    If Not @error = 1 Then
    Switch $Type
    Case 'u'
    $sSplit[$i] = Eval('g' & $sSplit[$i])
    Case 'l'
    $sSplit[$i] = Eval('k' & $sSplit[$i])
    Case 'i'
    $sSplit[$i] = Eval($sSplit[$i])
    EndSwitch
    EndIf
    Next
    ;~ _ArrayDisplay($sSplit)
    GUICtrlSetData($Input1, '')
    GUICtrlSetData($Input2, _ArrToStr($sSplit))
    GUICtrlSetState($Input2, $GUI_SHOW)
    GUICtrlSetState($Label4, $GUI_SHOW)
    EndFunc ;==>_Mix

    [/autoit] [autoit][/autoit] [autoit]

    Func _GetType($Letter)
    If StringIsLower($Letter) Then
    Return 'l'
    ElseIf StringIsUpper($Letter) Then
    Return 'u'
    ElseIf StringIsInt($Letter) Then
    Return 'i'
    Else
    Return SetError(1)
    EndIf
    EndFunc ;==>_GetType

    [/autoit] [autoit][/autoit] [autoit]

    Func _ArrToStr($Array)
    Local $rStr = ''
    For $i = 1 to $Array[0]
    $rStr &= $Array[$i]
    Next
    Return $rStr
    EndFunc

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    LG
    Eal