1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. minx

Beiträge von minx

  • AutoIt Compiler (Project Perseus)

    • minx
    • 9. Februar 2013 um 22:09
    Zitat von Christoph54

    Hab ich das richtig verstanden, dass diese "Zwischensprache" dann auch nur wieder mit einem Interpreter zusammen gepackt wird? ?(

    Zitat von Firstpost

    die zwischen der Hochsprache (AutoIt) und dem Maschinencode steht.

    *Hust*

    Nochmal deutlich: AutoIt->Perseus->Exe. Das heißt AutoIt wird in Maschinensprache übersetzt, also kompiliert. Von einem Interpreter ist da keine Spur.

  • AutoIt Compiler (Project Perseus)

    • minx
    • 9. Februar 2013 um 22:05

    Dann lies den ganzen Artikel. Besonders das Beipsiel und den Vergleich zum niederen Assembler ^^ http://de.wikipedia.org/wiki/H%C3%B6here_Programmiersprache

    // Daran sieht man auch schon, worin der Vorteil eines Compilers liegt.

  • AutoIt Compiler (Project Perseus)

    • minx
    • 9. Februar 2013 um 21:58
    Zitat von Wiki

    Eine höhere Programmiersprache (engl. high level programming language) ist eine Programmiersprache zur Abfassung eines Computerprogramms, die einer der historisch gewachsenen menschlichen Sprachen (Englisch, Japanisch usw.) sehr entfernt ähnelt.

    Denke schon...

  • AutoIt Compiler (Project Perseus)

    • minx
    • 9. Februar 2013 um 21:41

    Hi!

    Ich bin sicher nicht der erste, der mit dieser Idee kommt, aber ich habe bereits einen Ansatz. Es gab in der Vergangenheit Projekte wie AutoIt to C++, oder Großprojekte wie den Falcon Compiler. Alle versuchen AutoIt in eine andere Hochsprache zu übersetzen, mein Ansatz ist aber ein anderer.

    Ich entwickle gerade eine Zwischensprache. Das heißt eine Sprache, die zwischen der Hochsprache (AutoIt) und dem Maschinencode steht. Genannt habe ich diese Perseus (nach einer Idee von chess 8) ). Sie übersetzt sich selbst in Maschinencode, also eine 32Bit Executable.


    Was heißt das in Zahlen?
    Extrem kleine ausführbare Dateien:

    "Test-Exe - 2KB"

    [Blockierte Grafik: http://r82.img-up.net/perseus100d52.jpg]


    [Blockierte Grafik: http://1.2.3.12/bmi/apaste.square7.ch/lasm/rw_common/images/persaus.png]

    Aktuelle Version: 1.5.X (unveröffentlicht)
    Letzten Entwicklungsstand bitte letzen Post entnehmen.

  • Über die String-Dekompression

    • minx
    • 9. Februar 2013 um 18:51

    Ich habe mir eine Funktion geschrieben um binär eingebundene Dateien zu komprimieren. Die binären Strings enthalten meist Unmengen von langen homogenen Zeichenketten, die werden dann komprimiert. Die Geschwindigkeit des Komprimierens ist annehmbar. Die Methode schrumpft die Strings auf ca 70% ihrer alten Größe.

    Allerdings ist das Dekomprimieren saulangsam. Obwohl die Funktion auf das Wesentliche reduziert ist, braucht es bis zu 4 Minuten um eine 100KB Datei zu "entpacken". Wie kann ich das Entpacken beschleunigen? Ich möchte nicht auf eine ZIP Kompression oder irgendeine UDF umsteigen, das ist dann widersinnig, da das Skript nur größer würde als vorher. Hier mal ein Testskript:

    Spoiler anzeigen
    [autoit]

    ;$sTest = "67B666666B76000000000000000000056B66666666B650000000000000000056B666666666676500000000000000006676666666666766000000000000000566666666666666665000000000000006666666666666666660000000000000566666666666666666650000000000005666666666666667666500000000000056677676767676767665000000000000566B777777777777B665000000000000566B7B777777777BB665000000000000066BBB7B7B7BB7BBD650000000000000056BDBBBBBBBBBBD76500000000000000056BDDDBDBDBDDD660000000000000000366BEDDDDDDEB655000000000000000005567BDEEDB76550000000000000000000055666666550000000000000000000000005555550000000000000FFFFFFFFFFFE7FFFFFF81FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFE007FFFFE007FFFFE007FFFFC003FFFFC003FFFFC003FFFFC003FFFF8001FFFF0000FFFF0000FFFE00007FFE00007FFC00003FFC00003FFC00003FFC00003FFC00003FFE00007FFE00007FFF0000FFFF0000FFFF8001FFFFE007FFFFF81FFF00000000F26A0451000000000000010000000000800300009053040030010000B0040000000000002800000020000000400000000100010000000000000100000000000000000000000000000000000000000000FFFFFF00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1FFFFFC3C7FFFC3FC1FF83FFC07FBFFFC1FFBFFFC7FFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFC1FFFBFC3DFFFBC3C1FFF83C3FFFFBC3FFFFF83FFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1FFFFFC007FFFC0001FF8000007F800001FF800007FF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF8003FFFF803FFFFF83FFFFFFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000F26A0451000000000000010000000000D8040000E8540400E8020000B0040000000000002800000020000000400000000100040000000000800200000000000000000000000000000000000000000000"
    $sTest = '67B[6:6]B76[0:19]56B[6:8]B65[0:17]56B[6:10]765[0:16]667[6:10]766[0:15]5[6:16]5[0:14][6:18][0:13]5[6:18]5[0:12]5[6:14]76665[0:12]56677676767676767665[0:12]566B[7:12]B665[0:12]566B7B[7:9]BB665[0:13]66BBB7B7B7BB7BBD65[0:14]56BD[B:10]D765[0:15]56BDDDBDBDBDDD66[0:16]366BE[D:6]EB655[0:17]5567BDEEDB7655[0:20]55[6:6]55[0:24][5:6][0:13][F:11]E7[F:6]81[F:6]00[F:6]00[F:6]00[F:6]00[F:6]00[F:5]E007FFFFE007FFFFE007FFFFC003FFFFC003FFFFC003FFFFC003FFFF8001FFFF0000FFFF0000FFFE00007FFE00007FFC00003FFC00003FFC00003FFC00003FFC00003FFE00007FFE00007FFF0000FFFF0000FFFF8001FFFFE007[F:5]81FFF[0:8]F26A0451[0:13]1[0:10]800300009053040030010000B004[0:12]28[0:6]2[0:7]4[0:8]10001[0:13]1[0:44][F:6]00[F:44]C1[F:5]C3C7FFFC3FC1FF83FFC07FBFFFC1FFBFFFC7FFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFFDFFFBFFC1FFFBFC3DFFFBC3C1FFF83C3FFFFBC3[F:5]83[F:6]B[F:98]C1[F:5]C007FFFC0001FF8[0:5]7F800001FF800007FF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF80001FFF8003FFFF803[F:5]83[F:6]B[F:54][0:8]F26A0451[0:13]1[0:10]D8040000E8540400E8020000B004[0:12]28[0:6]2[0:7]4[0:8]10004[0:10]8002[0:44]'

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

    ;Compress_Binary($sTest)
    Decompress($sTest)

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

    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: Compress_Binary
    ; Description ...: Rudimentary binary compression
    ; Syntax ........: Compress_Binary($sString)
    ; Parameters ....: $sString - Binary String
    ; Return values .: Compressed String
    ; Author ........: minx
    ; ===============================================================================================================================
    Func Compress_Binary($sString)
    $OldLength = StringLen($sString)
    Local $aChr[16] = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"]
    $SumLength = 0
    For $i = 0 To 15; Finden der maximalen Länge um zusätzliche Schleifen zu vermeiden
    $MaxSize = 0
    Do
    $MaxSize += 1
    $State = StringInStr($sString, _($aChr[$i],$MaxSize))
    Until $State = 0
    If $MaxSize > $SumLength Then $SumLength = $MaxSize
    Next
    For $i = 0 To 15; Ersetzen der homogenen Strings. Von Groß nach Klein.
    For $j = $SumLength To 5 Step -1
    If StringInStr($sString, _($aChr[$i],$j)) Then
    $sString = StringReplace($sString, _($aChr[$i],$j), "[" & $aChr[$i] & ":" & $j & "]" )
    EndIf
    Next
    Next
    $Perc = Round((StringLen($sString) / $OldLength)*100)
    ;$sString = "'"&$sString&"'"
    ConsoleWrite("!> Compression: " & $Perc & "%" & @CRLF )
    Return $sString
    EndFunc

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

    Func Decompress($a)
    Local $b="(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)",$c=StringRegExp($a,"(?s)(?i)"&StringRegExpReplace("[",$b,"\\$1")&"(.*?)"&StringRegExpReplace("]",$b,"\\$1"),3)
    For $i=0 To UBound($c)-1
    $a=StringReplace($a,"["&$c[$i]&"]",_(StringLeft($c[$i],1),StringReplace($c[$i],StringLeft($c[$i],2),"")))
    Next
    Return $a
    EndFunc

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

    Func _($a,$b)
    Local $c
    For $i = 1 To $b
    $c &= $a
    Next
    Return $c
    EndFunc

    [/autoit]
  • Von einem NTP-Server Zeit und Datum ermitteln und auswerten

    • minx
    • 9. Februar 2013 um 16:33

    Teste sie doch einfach. Jetzt wurde dieser Thread schon 2x ausgegraben. Wir haben doch eine Warnung stehen!

  • Kleinster HD-Kurzfilm

    • minx
    • 9. Februar 2013 um 02:07
    Zitat von UEZ

    Ich dachte Farbrausch wäre eine Deutsche Gruppe, was nahe liegend ist, aber dem ist nicht so...

    Natürlich ist es eine deutsche Gruppe :D. Aus Hamburg. Hier eine kleine uralte Doku von arte dazu: http://www.youtube.com/watch?v=hqh1iXIlyJk

  • Zeichnen like a Boss

    • minx
    • 9. Februar 2013 um 00:15

    Ich glaube du hast vergessen das als Code zu markieren. ^^

  • VSync per WinAPI ?

    • minx
    • 7. Februar 2013 um 17:55

    Auch hier wieder das erstaunliche Ergebnis: Nativ ruckelts und in einer VBox läuft alles glatt...

  • [Wettbewerb] C² - Award (international)

    • minx
    • 6. Februar 2013 um 22:38

    Scheint aber irgendwie diesmal nicht so zu sein :rolleyes:

    Deshalb heißt es jetzt: "C“-Award" und nicht "Cubic Code Award".

  • [Wettbewerb] C² - Award (international)

    • minx
    • 6. Februar 2013 um 22:31

    CC = C*C = C“

    Code * Code = Quadrat

    Code * Code - Award = CCA oder C“-A

  • [Wettbewerb] C² - Award (international)

    • minx
    • 6. Februar 2013 um 22:18
    Zitat von Xorianator

    "Cubic Code" ?

    Sehe ich nirgends. Darauf haben wir geachtet ^^

  • CityMark 0.1 - OpenGL 3D Benchmark

    • minx
    • 6. Februar 2013 um 04:19
    Zitat von Andy

    Die "alte" Variante habe ich mal nach AutoIt portiert, funktioniert so in div. C++-Programmen auf Win7-64 einwandfrei, aber in Kombination mit deiner UDF eben nicht...

    Die sich komplett in der alten UDF befindet, die du auch gerne Nutzen kannst. Download im OGl-Tutorial ^^. Erfinde das Rad nicht neu :D

    Sorry, ich hatte deinen Post komplett überlesen  :wacko: 

  • [Wettbewerb] C² - Award (international)

    • minx
    • 5. Februar 2013 um 23:54

    Ein ganz simple Online-Abstimmung ohne jede Zusatzpunkte.

  • DriveSetLabel unter Windows 7 funzt nicht

    • minx
    • 5. Februar 2013 um 22:57

    Ich kann von normalen Usern aus das Label ändern ^^. Gut es kann vielleicht auch daran liegen, dass ich Tiny7 als OS habe, aber DriveSetLabel sollte funktionieren, wenn man auch so die Rechte hat ^^

    Des Programmierers Genie scheitert an der Systemanomalie
    (by minx)

  • DriveSetLabel unter Windows 7 funzt nicht

    • minx
    • 5. Februar 2013 um 22:45

    Bei mir nicht.

  • DriveSetLabel unter Windows 7 funzt nicht

    • minx
    • 5. Februar 2013 um 22:19

    Funktioniert aber leider. Sowohl mit Leerzeichen als auch ohne. Bei jedem Laufwerk. Sich er das nicht dein Virenwächter oder so den Fremdzugriff auf Labels verhindert?

  • CityMark 0.1 - OpenGL 3D Benchmark

    • minx
    • 5. Februar 2013 um 20:54

    Es kann keine absolute Begrenzung geben. Irgendwie wird die auch übertroffen. Ich halt mich da eher an Standards für Benchmarks: Je mehr Punkte desto besser ^^. Außerdem ist dieser Test auch für Low-Power Rechner gedacht. Dort kann man nämlich AquaMark oder 3DMark nicht mehr anwenden.

    Die Zahlen muss sich ja keienr merken, dafür das kleine Bild ^^

    Zitat

    100%=utopisch-geniale Grafikkarte mit dem Test auf Assembler

    Das hast du jetzt aber viele Denkfehler drin :D. Ich kenne keinen zuverlässigen Bench der Prozentzahlen ausgibt btw. . Bei den meisten kommen noch Online-Highscoretabellen hinzu u.ä.. Es darf hier keine Frameratebegrenzung geben, da würde der Bench seinen Sinn komplett verlieren ^^

  • CityMark 0.1 - OpenGL 3D Benchmark

    • minx
    • 5. Februar 2013 um 20:10
    Zitat von name22

    aber an der Generierung des Bildes mit der Punktzahl könntest du noch feilen .

    Ich hatte wenig Lust mich mit GDI+ rumzuschlagen ^^. Aber danke ;)

  • CityMark 0.1 - OpenGL 3D Benchmark

    • minx
    • 5. Februar 2013 um 19:18

    Es sind alles 32Bit DLLs. Ein x86 kompilieren empfiehlt sich.

    Danke, btw ^^

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™