Ehemaliges Python-Programm in AutoIT umschreiben, um es letzendlich als .exe ausführen zu können

  • Guten Tag,

    ich habe dieses Programm in Python geschrieben, möchte es allerdings als .exe ausführen, damit es auf jedem Windows-Rechner läuft:

    [autoit]

    i = 0
    DNACodogenerStrang = input("Geben Sie den codogenen DNA-Strang(von 3´ nach 5´) in Großbuchstaben an: ")
    DNAKomplementärStrang = ''
    mRNA = ''
    tRNA = ''

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

    # Berechnung

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

    while i < len(DNACodogenerStrang):

    if DNACodogenerStrang[i] == 'A':
    DNAKomplementärStrang = DNAKomplementärStrang+'T'
    mRNA = mRNA+'U'
    tRNA = tRNA+'T'

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

    elif DNACodogenerStrang[i] == 'T':
    DNAKomplementärStrang = DNAKomplementärStrang+'A'
    mRNA = mRNA+'A'
    tRNA = tRNA+'U'

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

    elif DNACodogenerStrang[i] == 'G':
    DNAKomplementärStrang = DNAKomplementärStrang+'C'
    mRNA = mRNA+'C'
    tRNA = tRNA+'G'

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

    else:
    DNAKomplementärStrang = DNAKomplementärStrang+'G'
    mRNA = mRNA+'G'
    tRNA = tRNA+'C'

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

    i = i + 1

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

    print("Der angegebene codogene DNA Strang lautete:")
    print(DNACodogenerStrang)
    print("Daraus ergibt sich dieser DNA Komplementärstrang")
    print(DNAKomplementärStrang)
    print("Daraus ergibt sich dieser komplementäre mRNA-Strang")
    print(mRNA)
    print("Daraus ergibt sich diese tRNA-Abfolge")
    print(tRNA)

    [/autoit]


    Das Programm sieht bisher so aus:

    [autoit]

    $i = 0
    $DNACodogenerStrang[265] = InputBox('Eingabe','Geben Sie den codogenen DNA-Strang(von 3´ nach 5´) in Großbuchstaben an:')
    $DNAKomplementaerStrang[265] = " "
    $mRNA[265] = " "
    $tRNA[265] = " "

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

    While $i < StringLen(DNACodogenerStrang)

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

    If $DNACodogenerStrang[i] = 'A' Then

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

    $DNAKomplementaerStrang = $DNAKomplementaerStrang+'T'
    $mRNA = $mRNA+'U'
    $tRNA = $tRNA+'T'
    EndIf
    If $DNACodogenerStrang[i] = 'T' Then

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

    $DNAKomplementaerStrang = $DNAKomplementaerStrang+'A'
    $mRNA = $mRNA+'A'
    $tRNA = $tRNA+'U'
    EndIf
    If $DNACodogenerStrang[i] = 'G' Then
    $DNAKomplementaerStrang = $DNAKomplementaerStrang+'C'
    $mRNA = $mRNA+'C'
    $tRNA = $tRNA+'G'
    EndIf
    If $DNACodogenerStrang[i] = 'C' Then
    $DNAKomplementaerStrang = $DNAKomplementaerStrang+'G'
    $mRNA = $mRNA+'G'
    $tRNA = $tRNA+'C'
    EndIf

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

    $i = $i + 1

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

    WEnd

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

    ConsoleWrite("Der angegebene codogene DNA Strang lautete:")
    ConsoleWrite($DNACodogenerStrang)
    ConsoleWrite("Daraus ergibt sich dieser DNA Komplementärstrang")
    ConsoleWrite($DNAKomplementaerStrang)
    ConsoleWrite("Daraus ergibt sich dieser komplementäre mRNA-Strang")
    ConsoleWrite($mRNA)
    ConsoleWrite("Daraus ergibt sich diese tRNA-Abfolge")
    ConsoleWrite($tRNA)

    [/autoit]


    Ich habe leider überhaupt keine Ahnung wie ich das Programm sinngemäß umsetzen kann. Hoffentlich kann mir jemand helfen.

    Gruß

    3 Mal editiert, zuletzt von tsch157 (30. April 2013 um 17:00)

  • Meine AutoIt-Erfahrung kann ich auf eine Dreiviertelstunde beziffern. Von daher wundert es mich nicht, dass dir das spanisch vorkommt. In Python habe ich den Script umgesetzt, er läuft auch, jedoch möchte ich ihn nun als .exe ausführen, daher kam ich auf AutoIt.

  • *hust* http://www.logix4u.net/component/cont…m-python-script
    Das waren genau 5 Sekunden googlen. :D

    Zudem heißt es "AutoIt", nicht "AutoIT".
    Warum schreibt das fast jeder falsch. :S

    MfG

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Nur kannst du es nicht (fast) 1:1 in AutoIt umsetzen

    Um Missverständnisse zu vermeiden, mein Name rührt vom Sternenbild und nicht vom Shop her :D


    Rainbow Dash :rock:

    "Das, wobei unsere Berechnungen versagen, nennen wir Zufall." (Albert Einstein)

  • Klar, Der Syntax ist ja ein anderer und eine Funktion, die ich nutze, gibt es so ja nicht in Autolt. Das ist mein Problem.

  • Klar, Der Syntax ist ja ein anderer und eine Funktion, die ich nutze, gibt es so ja nicht in Autolt. Das ist mein Problem.


    Versuch mal

    [autoit]

    ConsoleWrite

    [/autoit]

    anstatt "print", und ersetzte deine "+" mit dem logischen Operator "&". ;)

    Am Besten arbeitest du mal alle Tutorials in der Hilfe durch.

    Mfg

    There's a joke that C has the speed and efficieny of assembly language combined with readability of....assembly language. In other words, it's just a glorified assembly language. - Teh Interwebz

    C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, you blow off your whole leg. - Bjarne Stroustrup
    Genie zu sein, bedeutet für mich, alles zu tun, was ich will. - Klaus Kinski

  • Hier die AutoIt Umsetzung: (Muss noch angepasst werden für deine Bedürfnisse)

    Spoiler anzeigen
    [autoit]

    Global $i, $DNACodegenerStrang, $DNAKomplementaerStrang, $mRNA, $tRNA

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

    $DNACodegenerStrang = StringToASCIIArray(InputBox('Geben Sie den codogenen DNA-Strang(von 3´ nach 5´) in Großbuchstaben an: ', ''))

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

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

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

    For $i = 0 To UBound($DNACodegenerStrang) - 1

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

    If $DNACodegenerStrang[$i] = Asc('A') Then
    $DNAKomplementaerStrang &= 'T'
    $mRNA &= 'U'
    $tRNA &= 'T'

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

    ElseIf $DNACodegenerStrang[$i] = Asc('T') Then
    $DNAKomplementaerStrang &= 'A'
    $mRNA &= 'A'
    $tRNA &= 'U'

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

    ElseIf $DNACodegenerStrang[$i] = Asc('G') Then
    $DNAKomplementaerStrang &= 'C'
    $mRNA &= 'C'
    $tRNA &= 'G'

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

    Else
    $DNAKomplementaerStrang &= 'G'
    $mRNA &= 'G'
    $tRNA &= 'C'
    EndIf

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

    Next

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

    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +

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

    MsgBox(262144, 'Output:', 'Der angegebene codegene DNA Strang lautete: ' & @CRLF & StringFromASCIIArray($DNACodegenerStrang) & @CRLF & @CRLF & _
    'Daraus ergibt sich dieser DNA Komplementärstrang' & @CRLF & $DNAKomplementaerStrang & @CRLF & @CRLF & _
    'Daraus ergibt sich dieser komplementäre mRNA-Strang' & @CRLF & $mRNA & @CRLF & @CRLF & _
    'Daraus ergibt sich diese tRNA-Abfolge' & @CRLF & $tRNA)

    [/autoit]

    Einmal editiert, zuletzt von Yjuq (30. April 2013 um 16:20)

  • Danke, das Programm wird schonmal ausgeführt.Die Ausgabe sieht super aus Jedoch funktioniert die Berechnung an sich noch nicht richtig.

    TAC liefert beim DNA Komplementärstrang GGG statt ATG
    Beim mRNA Strang GGG statt AUG
    Beim tRNA Strang CCC statt UTC

    Gruß

    Edit: Ahh super, du hast es schon korrigiert. Es funktioniert nun, ich danke dir vielmals. Jetzt möchte ich lediglich die Eingabe noch etwwas ansehnlicher gestaltet, dann ist es super!

    2 Mal editiert, zuletzt von tsch157 (30. April 2013 um 16:28)

  • Ich weiß... Hatte übersehen dass die Zeichen in ASCII Codes umgewandelt werden.
    Habe die Schande schnell wegeditiert. ^^
    Der Code in Post #8 funktioniert nun einwandfrei! :)

  • Wie könnte man dafür sorgen, dass bei der tRNA Tripletts gebildet werden? ich hatte das in Python vorher sehr umständlich gelöst, indem ich immer, wenn i durch 3 teilbar war, eine Leerzeile hinzugefügt habe.

  • Mit ner einfachen Abfrage:

    [autoit]

    If Not Mod($i, 3) Then $tRNA &= ' '

    [/autoit]

    Und ganz zum schluss noch das Leerzeichen welches Zwangsgemäß an erster Stelle geschrieben wird löschen. :)

  • @chess:
    Oder noch kürzer:

    [autoit]

    If $i And Not Mod($i, 3) Then $tRNA &= ' '

    [/autoit]


    Das spart 19 byte im Skript und wird schneller interpretiert.
    Selbst wenn es sich nur um tausenstell millisekunden handelt. :D

    Okey,... Scherz bei Seite ^^
    >> Hab gerade bissl Kofweh,... Sonst wäre ich da sicherlich auch drauf gekommen ^^