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. Yjuq

Beiträge von Yjuq

  • AutoIt.de Logo Wettbewerb

    • Yjuq
    • 2. September 2013 um 05:54

    Hi, wie findet ihr dieses Logo hier? [Möchte ich zum Wettbewerb abgeben - Pic Nr 1]
    [Blockierte Grafik: http://www7.pic-upload.de/02.09.13/4m1oatksc848.png]

    Für Stylish

    Und hier mit transparenten Hintergrund:
    [Blockierte Grafik: http://www7.pic-upload.de/02.09.13/sp3ttwjco977.png]

  • Tage pro Monat, Datumsangaben und co. allgemeine Fragen.

    • Yjuq
    • 29. August 2013 um 13:26

    Hey, hier einmal ein kleiner Ansatz:
    http://www.almdorfammertal.de/kalender.html
    http://www.salesianer.de/util/kalfaq.html#B

    Ich habe es nur grob überflogen, sollte aber bei deinem Problem weiter helfen! :)

  • Serial Key

    • Yjuq
    • 29. August 2013 um 12:38

    Ich persönlich würde es wie in Andys Thread machen...
    Einfach das Passwort unten an die *.exe hängen und dann das Passwort bei erstmaligen start der *.exe irgendwo in der Registery ablegen.
    Wäre zmd. Mein vorschlag... Natürich sollte das Passwort verschlüsselt sein.

    Achja, und vor dem kompillieren einfach einmal den Obfuscator drüber laufen lassen.

    LG. Make :)

  • AutoIt.de Logo Wettbewerb

    • Yjuq
    • 26. August 2013 um 23:36

    Oder vielleicht eine animierte Schrift? =D
    Der Hintergrund ist da nur drinnen, damit man die Animation besser erkennen kann.
    (Bild im Anhang)

    UEZ:
    Nr. #12 und #13 gefallen mir am besten.
    Besonders diese Symbole/Logos an den Seiten.

    Bilder

    • MGALogo.gif
      • 93,69 kB
      • 486 × 60
  • NumberConvert.au3 - Jedes System in jedes andere konvertierbar!

    • Yjuq
    • 23. August 2013 um 07:18

    Hey, dieser Codeschnipsel müsste eigentlich "A" ausgeben. Bekomme aber nur immer "0" heraus geworfen.

    [autoit]

    ConsoleWrite(_NumberConvert('10', $NS_DEC, $NS_HEX) & @CRLF)

    [/autoit]

    Ich erspare mir jetzt die Suche nach der Fehlerquelle, aber ich vermute, dass die Funktion immer nur ein einzelnes Zeichen konvertieren kann? Das bedeutet demnach, dass deine Funktion nicht richtig arbeitet.

  • YouTube Clip | Bitte um Meinung

    • Yjuq
    • 8. August 2013 um 12:58

    Für mich war das einzige interessante an dem Video die Musik...
    Sorry, so ein paar Texte ändern und ein Bildchen zeigen kann jeder.
    So etwas habe ich selber noch mit 8 Jahren gemacht. :D

    Ich persönlich fand das Video einfach zu [hier bitte passendes Wort einsetzen].

    LG. Make :)

  • Irrlicht.dll - DLL Call

    • Yjuq
    • 6. August 2013 um 02:50

    Sorry, das übersteigt mein Wissen...
    Ich werde mir, wenn ich dann Zeit habe, mich mit dem Thema auseinander setzen.
    Vielen dank für dein Beitrag! :)

  • ObjT

    • Yjuq
    • 4. August 2013 um 00:09

    Genau :)
    Nur Codetechnisch ist das noch zu unflexibel.
    Ansonsten scheinst du ja den Ansatz verstanden zu haben.

  • ObjT

    • Yjuq
    • 3. August 2013 um 23:11

    Wie gesagt, wenn du eine Zeichenkette im Code findest die du nicht als Schlüsselwort, Funktion, String usw... Zuordnen kannst, musst du einfach dein Variablen Array durchlaufen und dann nachschauen ob dies evtl. eine Variable ist. Wenn ja, dann kannst du einfach den Wert der Variable (welche im Array gespeichert ist) auslesen.

    Du speicherst ja die Parameter für die Message Box jeweils in einzelne Variablen. So ist es doch nicht mehr schwierig, den Wert im Array stattdessen zu verwenden.

    LG. Make :)

  • ObjT

    • Yjuq
    • 3. August 2013 um 22:52

    Okay, da du ja einen Interpreter schreibst, musst du auch die Variablen interpretieren. Das bedeutet, dass du ein Array benötigst wo du einmal den Bezeichner und einmal den Wert abspeicherst. Beispielsweise ist das Schlüsselwort "var" für eine Variablendeklartion.

    var Bezeichner = 5 // Variable Bezeichner wird deklariert mit dem Wert 5

    Dein Interpreter müsste nun folgendes machen:
    - Schlüsselwort var gefunden, einmal das vorgesehene Array ($avVariablen) im Speicherplatz um 1 erhöhen: ReDim $avVariablen[UBound(Variablen) +1][2]
    - Bezeichner auslesen und in Array speichern: $avVariablen[UBound...][0] = "Bezeichner"
    - Wert auslesen und in Array speichern: $avVariablen[UBound...][1] = 5

    Findest du nun irgendwo im Code eine Zeichenfolge welches kein Schlüsselwort ist, dann durchläufst du $avVariablen und kannst somit überprüfen ob dies eine Variable ist und welchen Wert sie enthält.

    Ich hoffe ich konnte dir bei deinen kleinen Hänger helfen!

    LG. Make :)

  • ObjT

    • Yjuq
    • 3. August 2013 um 22:35

    Das ist schon ein guter Anfang! :)
    Ich würde dir empfehlen einzelne Funktionen die du in deine eigene Sprache integrieren willst, jeweils in eine eigene Funktion zu packen um die Übersicht zu behalten. Das kann bei einer wirklich ausgearbeiteten Programmiersprache dann tatsächlich im Code des Interpreters sehr unübersichtlich werden. Am besten überlegst du dir, wie du das Ganze direkt schon ordentlich schreibst, sodass du später keine Probleme bekommen wirst.

    LG. Make :)

  • Befunge Interpreter

    • Yjuq
    • 25. Juli 2013 um 23:51

    Hallo Community! :)
    Im ersten Post gibt es eine neue Version zum Downloaden!
    Bitte beachtet meinen Edit und den Anhang!

    Feedback und Verbesserungsvorschläge (zu dem Code) sind gerne gesehen.

    LG. Make :P

  • Array Elemente duplizieren --> Rekursiv

    • Yjuq
    • 25. Juli 2013 um 05:16

    Hey basementmedia,
    ich habe dir hier ein Skript geschrieben, welches (fast) deine Anforderung erfüllt.
    Der Einzige Fehler der da noch enthalten ist, dass sich die neuen Elemente direkt unter dem letzten erstellten Element der höheren Stufe drunter schieben. Aus diesem Grund wird auch dein 3er Packet der Elemente der Stufe 3 direkt unter den Elementen der Stufe 2 geschrieben. Kurz gesagt, so:

    Spoiler anzeigen
    Code
    1   | Test
     2  |  Test
      3 |   Test
      3 |   Test
      3 |   Test
     2  |  Test
      3 |   Test
      3 |   Test
     2  |  Test
      3 |   Test
      3 |   Test
    1   | Test
     2  |  Test
      3 |   Test
      3 |   Test
      3 |   Test
     2  |  Test
      3 |   Test
      3 |   Test
     2  |  Test
      3 |   Test
      3 |   Test
    Alles anzeigen

    Hier das Skript:

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    Global $sList, $avArr

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

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

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

    $sList = '1|Test|2' & @CRLF & _
    '2|Test|2' & @CRLF & _
    '3|Test|2' & @CRLF & _
    '2|Test|1' & @CRLF & _
    '3|Test|3'

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

    ;~ $sList = '1|A|3' & @CRLF & _
    ;~ '2|B|2' & @CRLF & _
    ;~ '2|C|1'

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

    $avArr = _ListToArray($sList)
    $avArr = _ArrayUnfold($avArr)
    _ArrayDisplay($avArr)

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

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

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

    Func _ListToArray($sList)
    Local $avArr = StringSplit($sList, @CRLF, 1)
    Local $avRet[$avArr[0]][3], $i, $avTemp
    Local Enum $_Stufe, $_Text, $_Menge

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

    For $i = 1 To $avArr[0]
    $avTemp = StringSplit($avArr[$i], '|', 2)
    $avRet[$i -1][$_Stufe] = $avTemp[$_Stufe]
    $avRet[$i -1][$_Text] = $avTemp[$_Text]
    $avRet[$i -1][$_Menge] = $avTemp[$_Menge]
    Next

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

    Return $avRet
    EndFunc

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

    Func _ArrayUnfold($avArr)
    Local $avRet[$avArr[0][2]][2], $i, $n, $in
    Local Enum $_Stufe, $_Text, $_Menge

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

    For $i = 0 To UBound($avRet) -1
    $avRet[$i][$_Stufe] = '>' & $avArr[0][$_Stufe]
    $avRet[$i][$_Text] = $avArr[0][$_Text]
    Next
    ;~ _ArrayDisplay($avRet)

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

    For $i = 1 To UBound($avArr) -1
    $n = 0
    While $n < UBound($avRet)
    If '>' & $avArr[$i][$_Stufe] == $avRet[$n][$_Stufe] Then $avRet[$n][$_Stufe] = StringTrimLeft($avRet[$n][$_Stufe], 1)

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

    If '>' & $avArr[$i][$_Stufe] -1 == $avRet[$n][$_Stufe] Then
    _ArrayReserve($avRet, $avArr[$i][$_Menge], $n)
    For $in = $n +1 To $n + $avArr[$i][$_Menge]
    $avRet[$in][$_Stufe] = '>' & $avArr[$i][$_Stufe]
    $avRet[$in][$_Text] = $avArr[$i][$_Text]
    Next
    $n += $avArr[$i][$_Menge]
    ;~ _ArrayDisplay($avRet)
    EndIf
    $n += 1
    WEnd
    Next

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

    For $i = 0 To UBound($avRet) -1
    If StringLeft($avRet[$i][$_Stufe], 1) == '>' Then $avRet[$i][$_Stufe] = StringTrimLeft($avRet[$i][$_Stufe], 1)
    Next

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

    Return $avRet
    EndFunc

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

    Func _ArrayReserve(ByRef $avArr, $iReserve, $iIndex)
    Local $iSize = UBound($avArr) + $iReserve
    Local $iDim = UBound($avArr, 2)
    Local $avTemp = $avArr
    Local $i, $n

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

    ReDim $avArr[$iSize][$iDim]

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

    For $i = $iIndex +1 To $iIndex + $iReserve
    For $n = 0 To $iDim -1
    $avArr[$i][$n] = 0
    Next
    Next

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

    For $i = $iIndex +1 + $iReserve To $iSize -1
    For $n = 0 To $iDim -1
    $avArr[$i][$n] = $avTemp[$i - $iReserve][$n]
    Next
    Next
    EndFunc

    [/autoit]

    Du musst da noch zwischen Zeile 58 und 59 ein Codestück einfügen, der alle vorherigen Elemente übersprint um somit das neue Element auch tatsächlich hinten einzufügen. Ich selber komme aber auch nicht drauf wie man das am besten macht. Ich hoffe ich konnte weiterhelfen!

    LG. Make :)

  • Array Elemente duplizieren --> Rekursiv

    • Yjuq
    • 24. Juli 2013 um 23:06

    Du reservierst dir erst einmal Platz dadrin indem du das Array einmal an der entsprechenden Position aufteilst, dann das erste Array (des aufgeteilten Arrays) mit ReDim um deine Menge erweiterst und dann das andere Array wieder einfügst. So in etwa,...

    Oder du verwendest die Funktion _ArrayInsert() aus der Array.au3.

    LG. Make :)

  • Array Elemente duplizieren --> Rekursiv

    • Yjuq
    • 24. Juli 2013 um 22:28

    misterspeed
    Der Threadsteller möchte gerne sein Array nach einem bestimmten Verfahren duplizieren. Dafür hat er folgendes Array angelegt:

    Spoiler anzeigen
    Code
    [0][0] 1
    [0][1] 2
    [0][2] 3
    [0][3] 2
    [0][4] 3
    
    
    [1][0] Test
    [1][1] Test
    [1][2] Test
    [1][3] Test
    [1][4] Test
    
    
    [2][0] 2
    [2][1] 2
    [2][2] 2
    [2][3] 1
    [2][4] 3
    Alles anzeigen


    Dabei steht der erste Index für die Stufe (0), den Text (1) oder der Menge (2). Der zweite Index steht dabei für den entsprechenden Inhalt. So kommen wir auf folgende Tabelle:

    Spoiler anzeigen
    Code
    Stufe | Text | Menge
    --------------------
      1   | Test |   2
      2   | Test |   2
      3   | Test |   2
      2   | Test |   1
      3   | Test |   3

    Nun sollen Anhand dieser Informationen, ein neue Tabelle (Array) erstellt werden. Dabei wird Zeile für Zeile eingelesen. Das erste Element [0][0] beinhaltet ja die Stufe "1". Dies ist ein äußeres Element für eine später Baumstruktur. Das nächste Element [1][0] enthält den Text. Dieser muss in dem Array zugewiesen werden. Das letzte Element [2][0] enthält die Menge. Es soll also in dem neuen Array diese Zeile aus der Tabelle genau 2x hinein geschrieben werden:

    Spoiler anzeigen
    Code
    Stufe | Text
    ------------
    ! 1   | Test
    ! 1   | Test

    Nun folgt das nächste Element des alten Arrays: "2 | Test | 2". Die Stufe beträgt "2", der Text "Test" und die Menge auch "2". Das bedeutet, dass dieses Element unter JEDES Element der Stufe "1" dupliziert werden soll. Unsere Tabelle nimmt folgende Form an:

    Spoiler anzeigen
    Code
    Stufe | Text
    ------------
      1   | Test
    !  2  |  Test
    !  2  |  Test
      1   | Test
    !  2  |  Test
    !  2  |  Test

    Nun folgt folgender Eintrag: "3 | Test | 2". Hier hat das Element die Stufe "3", den Text "Test" und die Menge "2". Unter JEDES Element der Stufe 2 soll nun 2 mal dieses Element geschrieben werden:

    Spoiler anzeigen
    Code
    Stufe | Text
    ------------
      1   | Test
       2  |  Test
    !   3 |   Test
    !   3 |   Test
       2  |  Test
    !   3 |   Test
    !   3 |   Test
      1   | Test
       2  |  Test
    !   3 |   Test
    !   3 |   Test
       2  |  Test
    !   3 |   Test
    !   3 |   Test
    Alles anzeigen

    Nun folgt der nächste Eintrag: "2 | Test | 1". Auch hier wieder unter JEDES Element der Stufe 1 das Element 1x drunter schreiben:

    Spoiler anzeigen
    Code
    Stufe | Text
    ------------
      1   | Test
       2  |  Test
        3 |   Test
        3 |   Test
       2  |  Test
        3 |   Test
        3 |   Test
    !  2  |  Test
      1   | Test
       2  |  Test
        3 |   Test
        3 |   Test
       2  |  Test
        3 |   Test
        3 |   Test
    !  2  |  Test
    Alles anzeigen

    Zuletzt das letzte Element: "3 | Test | 3". Hier ist aber zu beachten, dass sich dies nur auf das letzte Angelegte Array Element bezieht, welches die Stufe 2 hat:

    Spoiler anzeigen
    Code
    Stufe | Text
    ------------
      1   | Test
       2  |  Test
        3 |   Test
        3 |   Test
       2  |  Test
        3 |   Test
        3 |   Test
    >  2  |  Test
    !   3 |   Test
    !   3 |   Test
    !   3 |   Test
      1   | Test
       2  |  Test
        3 |   Test
        3 |   Test
       2  |  Test
        3 |   Test
        3 |   Test
    >  2  |  Test
    !   3 |   Test
    !   3 |   Test
    !   3 |   Test
    Alles anzeigen

    Der Threadsteller sucht nun nach einem Anstubser in die Richtige Richtung, um genau dieses Verfahren zu programmieren. Um also aus dem alten Array das hier gezeigte neue Array zu erstellen. Ich hoffe ich konnte helfen das Problem des Threadstellers besser zu verstehen.

    Ich selber setze mich jetzt auch an einen Code ran.
    LG. Make :)

  • Befunge Interpreter

    • Yjuq
    • 24. Juli 2013 um 16:24
    Zitat von Xorianator

    Und schon gehts wieder los :rolleyes: :whistling:

    Immer doch ;)

    Zitat von James1337

    Ich finde das super (außerdem ist es ja nicht so, als würde man dabei nichts lernen).

    Das erste was ich gelernt habe, es klingt immer viel einfacher als wie es ist... Habe da oben in den beiden Funktionen noch genug Fehler gefunden die ich zu fixen habe. :P

    Zitat von Mars

    [...] schwierige Aufgabe, wenn er wirklich regelkonform laufen soll.

    Ja, da stürzt schonmal ab und zu mein Programm ab bei einiges Codes die ich im Internet finde. Aber nur durch Wikipedia einige Standarts zu ermitteln, ist auch nicht wirklich so einfach. Ich habe mir einen anderen Interpreter als Hilfe genommen.

    Ich danke für euer Feedback! :)

  • Befunge Interpreter

    • Yjuq
    • 24. Juli 2013 um 00:21

    Hallo AutoIt Community! :)
    Durch das Projekt ObjT von Robin98 hat mich die Lust gepackt, mich selber an einen Interpreter zu setzen. Als Basis und Einarbeitung habe ich erst einmal die esoterische Programmiersprache Befunge ausgesucht. Sie soll mir dabei helfen, erst einmal das Prinzip eines Interpreters besser zu verstehen. Und ich wollte zumindest einmal einen Interpreter umgesetzt haben!


    €dit:
    Im Anhang findet ihr eine *.zip mit meinem Programm. Ich habe für die Strukturierung das MVC Verfahren gewählt, um mein Programm dynamischer zu machen. Das bedeutet, dass kinderleicht die GUI verändert werden kann, dies aber das eigentliche Programm nicht einschränkt. So sind dann nur kleine schnelle Änderungen nötig. Dies habe ich so gemacht, um schon einmal für spätere größere Projekte zu üben.

    Die controller.au3 ist die Hauptdatei, diese muss gestartet werden.


    Die GUI enthält ein Code Eingabefeld, eine Stack Vorschau, Benutzer Eingabefeld und auch ein Ausgabefeld.

    Tastenkombinationen:
    Strg + N (Neue Datei)
    Strg + O (Datei öffnen)
    Strg + S (Datei speichern)
    Strg + T (Zeitangabe in Millisekunden ändern)
    Strg + Alt + S (Datei speichern unter)
    F5 (Code auführen)

    Was im nächsten Update kommt:
    - Menüeinträge im Menü "Datei" bekommen ihre Speichern & Öffnen Funktionen. [erledigt]
    - Input Control um die Geschwindigkeit zu regulieren (um leichter Fehler zu finden) [erledigt]
    - Eine Markierung im Code die anzeigt, an welchem Feld der Interpreter gerade arbeitet.

    (Bugs sind noch enthalten! *g*)


    LG. Make :)

    Dateien

    Befunge.zip 4,59 kB – 216 Downloads
  • ObjT

    • Yjuq
    • 21. Juli 2013 um 20:57
    Zitat

    Allerdings müsst ihr alle eins bedenken ich bin 14 jahre alt und soll jetzt Assembler lernen oder was?

    Schlechte Ausrede! Ich bin 15 ;)

    Ich meine nur, dass es Sinn macht sich an einen Intepreter zu setzen als an dem Dingen da weiter zu schreiben was du gerade machst. Siehe dazu auch Post #32.

  • Variable in ein Befehl einbauen und später verwenden

    • Yjuq
    • 21. Juli 2013 um 19:56

    Ich bin nicht ganz so sicher wie du das meinst...
    Meinst du sowas?

    [autoit]

    Global $var = 5

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

    ConsoleWrite($var & @CRLF)
    MsgBox(0, '', $var)

    [/autoit]
  • ObjT

    • Yjuq
    • 19. Juli 2013 um 17:27

    alpines:
    Welchen Sinn hat der Konverter?
    Er ändert doch nur die Syntax von C++ (oder in diesen Fall von AutoIt).
    Da kann man lieber gleich die Syntax der entsprechenden Sprache lernen und in dieser programmieren.
    Zudem bin ich sicher, dass der Programmierer dann auch effizienteren Code schreiben kann als wie der Konverter das hinkriegen würde...

    Aber der Threadsteller sollte wissen was er möchte...
    Ich sehe keinen Sinn in den Konverter!

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™