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

Beiträge von BinDannMalWeg

  • RegExp loop um XSD Schemata auszulesen

    • BinDannMalWeg
    • 15. Dezember 2013 um 14:36

    Ich hab eben schnell ne Funktion gebastelt welche das ganze in ne angenehmerer Datenstruktur einliest... :P

    Spoiler anzeigen
    [autoit]

    Local $sRawData = FileRead("test.xsd")

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

    $oFile = _ParseXSD($sRawData)

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

    For $ComplexType In $oFile ; alle ComplexTypes durchlaufen
    $oElementList = $oFile($ComplexType)
    ConsoleWrite($ComplexType & @LF)
    For $Element In $oElementList ; alle Elemente des Complextypes durchlaufen
    $name = $Element
    $type = $oElementList($Element)
    ConsoleWrite(@TAB & "name: " & $name & @TAB & "type:" & $type & @LF)
    Next
    Next

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

    Func _ParseXSD($sData)
    Local $oResult = ObjCreate("Scripting.Dictionary"), $oSubResult = ObjCreate("Scripting.Dictionary"), $aElements
    $aComplexTypes = StringRegExp($sRawData, '(?ms):complexType name="(.+?)">(.+?)<\/xs:complexType', 3)
    If @error Or Mod(UBound($aComplexTypes), 2) > 0 Then Return SetError(1)
    For $i = 0 To UBound($aComplexTypes) - 1 Step +2
    $aElements = StringRegExp($aComplexTypes[$i + 1], '"(.+?)"', 3)
    If @error Or Mod(UBound($aElements), 2) > 0 Then Return SetError(2)
    $oSubResult.RemoveAll
    For $y = 0 To UBound($aElements) - 1 Step +2
    $oSubResult.add($aElements[$y], $aElements[$y + 1])
    Next
    $oResult.add($aComplexTypes[$i], $oSubResult)
    Next
    Return $oResult
    EndFunc ;==>_ParseXSD

    [/autoit]
  • Eure Top 10 Mix-Drinks

    • BinDannMalWeg
    • 24. November 2013 um 14:42
    Zitat von Homelike Jester

    1. Was heisst da wiedermal???????
    2. Du Spassbremse -.-

    1. In meinem persönlichen Umfeld habe ich gleich drei Leute die sich so was schon gebaut haben. Das hat mich amüsiert, desthalb "wiedermal" ^^
    2. Wieso bin ich jetzt ne Spaßbremse? 8| Im Übrigen komme ich gerne zum "Testtrinken" vorbei... ;):thumbup:
    Hast du vor dein Projekt in irgend einer Form online zu dokumentieren?

  • Buchmanagment

    • BinDannMalWeg
    • 23. November 2013 um 14:56

    An dieser Stelle würde ich dich Alina gerne mal auf einen wahrscheinlich längst von dir vergessenen Thread hier im Forum aufmerksam machen. Dort wurde eine ganze Reihe an Alternativen aufgezeigt wie man auch in Autoit "schön" mit großen Datenmengen/Listen hantieren kann - ohne Arrays. ;)
    Du kannst dir damit ganz sicher etwas passendes basteln... :whistling:

  • Webcam Bild Automatisch speichern

    • BinDannMalWeg
    • 22. November 2013 um 17:28

    Und wenn nicht gilt es genau zu klären um was für eine "IPCam" es sich handelt und vielleicht auch wie sich diese ansprechen lässt.

  • Eure Top 10 Mix-Drinks

    • BinDannMalWeg
    • 22. November 2013 um 17:20

    Bastelt da wieder mal jemand an einem automatischen Cocktailmixer? :whistling:
    Ich bevorzuge ja den sogenannten "Planter's Punch" :party:
    Wikipedia hat dazu aus dem Jahre 1878 folgenen text

    Zitat

    Planter′s Punch! A West Indian Recipe.
    A wine-glass with lemon juice fill,
    Of sugar the same glass fill twice,
    Then rub them together until
    The mixture looks smooth, soft, and nice.
    Of rum then three wine glassfuls add,
    And four of cold water please take. A
    Drink then you′ll have that′s not bad–
    At least, so they say in Jamaica.

    Alles anzeigen
  • Anfänger Frage-Posten von Aufträgen gegen Entgelt?

    • BinDannMalWeg
    • 22. November 2013 um 17:05

    Na hör mal nur weil nicht gleich jemand springt wenn du mit Geld winkst... :huh:
    Du wurdest nun schon mehrfach gefragt WIE sich deine Karte denn ansprechen lässt und jedes mal antwortest du mit "man kann die Karte mit IP und Port ansprechen". Hast du dir schon mal überlegt das die Leute nachfragen weil diese Information vielleicht einfach nicht reicht?! Es ist für solch eine 'Aufgabe' essenziell wichtig das klar ist was für eine Art Netzwerk-Protokoll zum Einsatz kommen soll bzw welches unterstützt wird. Außerdem bin ich mir sehr sicher, dass - wie chesstiger schon zu erklären versucht hat - nicht einfach nur "sAusgang=1" oder "gEingang1" an die Karte geschickt werden muss. Es gibt sicher ein wie auch immer geartetes Subprotokoll welches der Kommunikation mit der Karte zu Grunde liegt.
    Also bitte versuch für uns herauszufinden wie genau die Karte angesprochen werden muss. (Protokoll usw.)

  • IRC Proxy Server

    • BinDannMalWeg
    • 18. November 2013 um 17:55

    Kann ich dir machen...
    Meld dich bitte per PM mit näheren Infos. ;)

  • TCP Chat Extras

    • BinDannMalWeg
    • 3. November 2013 um 16:18
    Zitat von jjj

    es sollen zu Beginn alles vervügbaren IP-Adressen nach den Ports durchprobiert werden, damit man den Server überall starten kann, ohne die IP-Adresse zu ändern

    Statt alle IP Adressen zu 'bruteforcen' ist es doch viel effektiver eine Nachricht an alle PCs im Netzwerk zu senden und den Server um eine Antwort zu bitten... sieh dir mal UDP in Verbinung mit Broadcasts an. ;)

    Zitat von jjj

    beim Hochladen von dateien auf dn Server soll man ganz normal weiterchatten können, bisher muss man warten, bis die Datei vollsändig hohgeladen ist.

    Da gibt es nur eine Möglichkeit: Du musst Gleichzeitig Nachrichten versenden/empfangen und Dateien versenden. Und genau das ist der Moment in dem du dir eine Art "Paket-Verwaltung" ausdenken solltest. Teile das versenden einer Datei in kleine Schritte auf, zwischen denen du dann auch noch zeit hast um Nachrichten zu versenden und zu empfangen.
    Wieso gibt es überhaupt 2 Server? Ist es nicht praktischer wenn es einen zentralen Server gibt über den alle Kommunikation stattfindet?

    Zitat von jjj

    jeder soll die hochgeladenen Datein natürlich auch wieder runterladen können.

    Dann ermögliche das doch einfach? Wenn du den Teil in dem du die Datei einliest und sie versendest wirklich verstanden hast muss dir eigentlich klar sein das du das selbe nur 'rückwärts' tun musst um die Datei auf einem anderen Clienten zu empfangen.

  • Serial Erstellen

    • BinDannMalWeg
    • 4. Oktober 2013 um 18:38

    Wenn es nur darum geht die Informationen ein bisschen zu 'verstecken' kannst du dir das mit dem ROT-Verfahren auch sparen und einfach sowas hier machen:

    Spoiler anzeigen
    [autoit]

    #include <String.au3>

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

    Func _Encrypt($sPlainText)
    Return _StringReverse(_StringToHex($sPlainText))
    EndFunc ;==>_Encrypt

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

    Func _Decrypt($sData)
    Return _HexToString(_StringReverse($sData))
    EndFunc ;==>_Decrypt

    [/autoit]
  • Serial Erstellen

    • BinDannMalWeg
    • 1. Oktober 2013 um 23:32

    chesstiger : Wenn du das so machst ist das was dabei rauskommt nicht sicherer als die Rot13 'Verschlüsselung' ^^
    Wenn schon Xor dann mit einem anständigen Key... :whistling: *hust*
    @Hanssony: Um was für 'Informationen' handelt es sich denn die du da im Key 'verstecken' möchtest? Wo soll der Key generiert werden? Wo kommen die Informationen her? & Und in wie fern möchtest du diese Infos auf User-Seite des Programms benutzen?

  • Best of: Botausreden

    • BinDannMalWeg
    • 30. September 2013 um 22:35
    Zitat

    ich habe doch gesagt das ist kein BOt für ein Spiel sondern für ein eigenes PROJEKT !

    ...Niemand hat vor eine Mauer zu bauen...
    :rofl::thumbup:

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • BinDannMalWeg
    • 4. September 2013 um 15:52

    Da könnte man doch schön eine kleine Alarm Funktion einbauen - die den Moderator darauf aufmerksam macht, dass es gleich Zeit für Nachrichten/Wetter oä. ist. :P

  • AutoIT und ABD.exe for Android

    • BinDannMalWeg
    • 4. September 2013 um 15:46

    Kann man das nicht einfach so machen?

    Spoiler anzeigen
    [autoit]

    ; adb.exe muss im scriptordner liegen! (nur vor dem kompilieren)

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

    ConsoleWrite( _adbExecute("start-server") & @LF)

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

    ConsoleWrite( _adbExecute("wait-for-device") & @LF)

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

    ConsoleWrite( _adbExecute("shell su -c " id" > %temp%\datei.txt") & @LF)

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

    ConsoleWrite( _adbExecute("...") & @LF)

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

    Func _adbExecute($sCommand)
    Local $sADB = @TempDir & "\adb.exe", $iPid, $sOutput = ""
    If Not FileExists($sADB) Then FileInstall("adb.exe", $sADB)
    $iPid = Run($sADB & " " & $sCommand, @ScriptDir, @SW_HIDE, 2 + 4)
    Do
    Sleep(20)
    $sOutput &= StdoutRead($iPid, False, False)
    Until @error
    Return $sOutput
    EndFunc ;==>_adbExecute

    [/autoit]
  • Skype

    • BinDannMalWeg
    • 1. September 2013 um 12:31

    "Der Moment in dem du eine Fehlermeldung lesen musst..."

    Zitat

    Line 38 (File "C:\Program Files (x86)\Autoit3\Include\SkypeCOM.au3"):

    Const $UserStatus_Offline =
    $oSkype.Convert.TextToUserSttus("OFFLINE")
    Const $UserStatus_Offline = ^ERROR

    Error: Error in expression

    Also bei mir sieht Zeile 38 so aus:

    [autoit]

    Const $UserStatus_Offline = $oSkype.Convert.TextToUserStatus("OFFLINE")

    [/autoit]
  • Skype

    • BinDannMalWeg
    • 31. August 2013 um 19:58

    Also bei mir hat ein simples "Global $id" in der SkypeCOM.au3 genügt um alle Fehlermeldungen in den Wind zu schießen... ;)

  • Bluetooth UDF!!!

    • BinDannMalWeg
    • 29. August 2013 um 00:01

    Wo liegt denn bitte dein Problem?

    Spoiler anzeigen
    [autoit]

    #include <WinAPI.au3>

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

    Local $phRadio
    $hFind = _BluetoothFindFirstRadio($phRadio)
    If $hFind = 0 Then
    MsgBox(16, "Hardware error", "Unable to find compatible bluetooth radio(s) on this machine.")
    _WinAPI_CloseHandle($phRadio)
    _BluetoothFindRadioClose($hFind)
    Exit
    Else
    _WinAPI_CloseHandle($phRadio)
    _BluetoothFindRadioClose($hFind)
    EndIf

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

    _BluetoothFindFirstDevice()
    Sleep(10000)
    _BluetoothRegisterForAuthenticationEx()

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

    Func _BluetoothFindFirstDevice($REMEMBER = False)
    Local $HRESULT[3], $tBLUETOOTH_DEVICE_INFO
    $tBLUETOOTH_DEVICE_SEARCH_PARAMS = DllStructCreate('DWORD;BOOL;BOOL;BOOL;BOOL;BOOL;BYTE;HANDLE')
    DllStructSetData($tBLUETOOTH_DEVICE_SEARCH_PARAMS, 1, DllStructGetSize($tBLUETOOTH_DEVICE_SEARCH_PARAMS))
    DllStructSetData($tBLUETOOTH_DEVICE_SEARCH_PARAMS, 2, False)
    DllStructSetData($tBLUETOOTH_DEVICE_SEARCH_PARAMS, 3, $REMEMBER)
    DllStructSetData($tBLUETOOTH_DEVICE_SEARCH_PARAMS, 4, True)
    DllStructSetData($tBLUETOOTH_DEVICE_SEARCH_PARAMS, 5, True)
    DllStructSetData($tBLUETOOTH_DEVICE_SEARCH_PARAMS, 6, True)
    DllStructSetData($tBLUETOOTH_DEVICE_SEARCH_PARAMS, 7, 6)
    DllStructSetData($tBLUETOOTH_DEVICE_SEARCH_PARAMS, 8, 0)
    $tBLUETOOTH_DEVICE_INFO = DllStructCreate('DWORD;UINT64;ULONG;BOOL;BOOL;BOOL;word[8];word[8];WCHAR[248]')
    DllStructSetData($tBLUETOOTH_DEVICE_INFO, 1, DllStructGetSize($tBLUETOOTH_DEVICE_INFO))
    $RESULT = DllCall("bthprops.cpl", "handle", "BluetoothFindFirstDevice", "struct*", $tBLUETOOTH_DEVICE_SEARCH_PARAMS, "struct*", $tBLUETOOTH_DEVICE_INFO)
    $HRESULT[0] = DllStructGetData($tBLUETOOTH_DEVICE_INFO, 9)
    $HRESULT[1] = DllStructGetData($tBLUETOOTH_DEVICE_INFO, 2)
    $HRESULT[2] = DllStructGetData($tBLUETOOTH_DEVICE_INFO, 3)
    Do
    $ULTRA = _BluetoothFindNextDevice($RESULT[0])
    Until $ULTRA = "0"
    Return $HRESULT
    EndFunc ;==>_BluetoothFindFirstDevice

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

    Func _BluetoothFindFirstRadio(ByRef $phRadio)
    $tBLUETOOTH_FIND_RADIO_PARAMS = DllStructCreate('DWORD')
    DllStructSetData($tBLUETOOTH_FIND_RADIO_PARAMS, 1, DllStructGetSize($tBLUETOOTH_FIND_RADIO_PARAMS))
    $aResult = DllCall("bthprops.cpl", "handle", "BluetoothFindFirstRadio", "struct*", $tBLUETOOTH_FIND_RADIO_PARAMS, "handle*", 0)
    If @error Then Return SetError(2, @error, 0)
    $phRadio = $aResult[2]
    Return SetError($aResult[0] = 0, 0, $aResult[0])
    EndFunc ;==>_BluetoothFindFirstRadio

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

    Func _BluetoothFindRadioClose($hBtFind)
    Local $aResult = DllCall("bthprops.cpl", "bool", "BluetoothFindRadioClose", "handle", $hBtFind)
    If @error Then Return SetError(2, @error, 0)
    Return SetError($aResult[0] = 0, 0, $aResult[0])
    EndFunc ;==>_BluetoothFindRadioClose

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

    Func _BluetoothFindNextDevice($HANDLE)
    $t1BLUETOOTH_DEVICE_INFO = DllStructCreate('DWORD;UINT64;ULONG;BOOL;BOOL;BOOL;word[8];word[8];WCHAR[248]')
    $RESULTX = DllCall("bthprops.cpl", "Bool", "BluetoothFindNextDevice", "handle", $HANDLE, "struct*", $t1BLUETOOTH_DEVICE_INFO)
    Return $RESULTX[0]
    EndFunc ;==>_BluetoothFindNextDevice

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

    Func _BluetoothRegisterForAuthenticationEx()
    Local $ZRESULT, $tBLUETOOTH_DEVICE_REG
    $tBLUETOOTH_DEVICE_REG = DllStructCreate('DWORD;UINT64;ULONG;BOOL;BOOL;BOOL;word[8];word[8];WCHAR[248]')
    DllStructSetData($tBLUETOOTH_DEVICE_REG, 1, DllStructGetSize($tBLUETOOTH_DEVICE_REG))
    DllStructSetData($tBLUETOOTH_DEVICE_REG, 2, 560)
    DllStructSetData($tBLUETOOTH_DEVICE_REG, 3, 550377916751)
    DllStructSetData($tBLUETOOTH_DEVICE_REG, 4, 9600)
    DllStructSetData($tBLUETOOTH_DEVICE_REG, 5, False)
    DllStructSetData($tBLUETOOTH_DEVICE_REG, 6, False)
    DllStructSetData($tBLUETOOTH_DEVICE_REG, 7, False)
    $ZRESULT = DllCall("bthprops.cpl", "handle", "BluetoothRegisterForAuthenticationEx", "struct*", $tBLUETOOTH_DEVICE_REG, "handle*", 0)
    Return $ZRESULT
    EndFunc ;==>_BluetoothRegisterForAuthenticationEx

    [/autoit]
  • Einfache TCP Socket Frage

    • BinDannMalWeg
    • 28. August 2013 um 23:56

    Du hast wohl etwas falsch gemacht.

    Spoiler anzeigen
    [autoit]

    TCPStartup()
    $hMainSocket = TCPListen(@IPAddress1, 11111)

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

    While 1
    ConsoleWrite("waiting for a client..." & @LF)
    Do
    $hClientSocket = TCPAccept($hMainSocket)
    Until $hClientSocket <> -1
    ConsoleWrite("new client connected at socket " & $hClientSocket & @LF)
    While 1
    $sReceivedData = TCPRecv($hClientSocket, 1024)
    If @error Then
    ExitLoop
    ElseIf $sReceivedData <> "" Then
    TCPSend($hClientSocket, $sReceivedData)
    ConsoleWrite("receiced data: '" & $sReceivedData & "'" & @LF)
    EndIf
    WEnd
    TCPCloseSocket($hClientSocket)
    ConsoleWrite("client disconnected!" & @LF)
    WEnd

    [/autoit]
  • Einfache TCP Socket Frage

    • BinDannMalWeg
    • 28. August 2013 um 14:10

    Hier in unserem Forum wurde diese Frage schon mindestens 1000000000000000000000000 Mal gestellt. ;)
    So funktioniert es:

    [autoit]

    TCPStartup()
    $hMainSocket = TCPListen("192.168.178.49", 11111)

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

    While 1
    MsgBox(0, "", "Ich warte auf eine neue Verbinung!")
    Do
    $hClientSocket = TCPAccept($hMainSocket)
    Until $hClientSocket <> -1
    MsgBox(0, "", "Eine Verbindung wurde hergestellt!")
    While 1
    $sReceivedData = TCPRecv($hClientSocket, 1024) ; Wenn eine Socketverbindung hergestellt wurde, empfange ein Paket vom Client ($connectedSocket)
    If @error Then
    ExitLoop
    ElseIf $sReceivedData <> "" Then
    MsgBox(64, "Nachricht empfangen!", "Es wurde eine Nachricht empfangen: " & $sReceivedData)
    EndIf
    WEnd
    TCPCloseSocket($hClientSocket)
    MsgBox(64, "", "Der Client hat die Verbinung getrennt!")
    WEnd

    [/autoit]

    :thumbdown:

  • AutoIt.de Logo Wettbewerb

    • BinDannMalWeg
    • 27. August 2013 um 20:44

    Dann geb ich auch mal meinen Senf dazu... :P[Blockierte Grafik: http://i.imagebanana.com/img/4j9o4prk/vorschlagKopie.jpg]
    Wenn es überhaupt jemandem gefällt reiche ich die Wettbewerbs konformen Dateien noch nach. ;)

  • Dec2Binary Rechner

    • BinDannMalWeg
    • 20. August 2013 um 21:59

    Vielleicht auch interessant: Ich hab vor langer Zeit mal ein Script zum erzeugen von Normalformen (DNF & KNF) geschrieben...

    Spoiler anzeigen
    [autoit]

    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=icon.ico
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    Opt("GUIOnEventMode", 1)
    Global $iBit

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

    ; GUI erstellen
    $Form1 = GUICreate("NF Generator", 354, 253, -1, -1)
    $Label1 = GUICtrlCreateLabel("Eingänge:", 8, 10, 62, 20)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $Input1 = GUICtrlCreateInput("1", 80, 8, 41, 24, BitOR($GUI_SS_DEFAULT_INPUT, $ES_CENTER, $ES_NUMBER))
    GUICtrlSetLimit(-1, 3)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $Button1 = GUICtrlCreateButton("Okay", 144, 8, 75, 25)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $ListView1 = GUICtrlCreateListView("", 8, 40, 210, 206, Default, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES))
    $Button2 = GUICtrlCreateButton("Generieren", 224, 64, 123, 33)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial")
    GUICtrlSetState(-1, $GUI_DISABLE)
    $Label2 = GUICtrlCreateLabel("DNF", 232, 144, 30, 18)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial")
    $Label3 = GUICtrlCreateLabel("KNF", 232, 208, 30, 20)
    GUICtrlSetFont(-1, 10, 800, 0, "Arial")
    $Input2 = GUICtrlCreateInput("", 224, 120, 121, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $Input3 = GUICtrlCreateInput("", 224, 184, 121, 24)
    GUICtrlSetFont(-1, 10, 400, 0, "Arial")
    $Button3 = GUICtrlCreateButton("Kopieren", 288, 144, 59, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")
    $Button4 = GUICtrlCreateButton("Kopieren", 288, 208, 59, 25)
    GUICtrlSetFont(-1, 8, 400, 0, "Arial")

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

    GUISetState(@SW_SHOW)

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

    ; GUI-Events
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    GUICtrlSetOnEvent($Button1, "_Button_Okay")
    GUICtrlSetOnEvent($Button2, "_Button_Generate")
    GUICtrlSetOnEvent($Button3, "_Button_Copy_DNF")
    GUICtrlSetOnEvent($Button4, "_Button_Copy_KNF")

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

    While True ; Endlosschleife
    Sleep(500)
    WEnd

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

    Func _Button_Okay()
    $iBit = GUICtrlRead($Input1)
    If $iBit > 0 And $iBit < 27 Then
    GUICtrlSetState($Button1, $GUI_DISABLE)
    GUICtrlSetState($Input1, $GUI_DISABLE)
    GUICtrlSetState($Label1, $GUI_DISABLE)
    GUICtrlSetState($Button2, $GUI_ENABLE)
    _GUICtrlListView_BeginUpdate($ListView1)
    _GUICtrlListView_AddColumn($ListView1, "Ausgang", 60)
    For $i = 0 To $iBit - 1
    _GUICtrlListView_AddColumn($ListView1, Chr(97 + $i), 20)
    Next
    For $i = 0 To 2 ^ $iBit - 1
    $aBinary = GUICtrlCreateListViewItem("An" & StringRegExpReplace(_AddZeros(_DecToBinary($i), $iBit), "(.)", "|\1"), $ListView1)
    Next
    _GUICtrlListView_EndUpdate($ListView1)
    Else
    MsgBox(64, "NF Generator", "Es sind nur 1 bis 26 Eingänge erlaubt!", 5)
    EndIf
    EndFunc ;==>_Button_Okay

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

    Func _Button_Generate()
    Local $aAusgang[2 ^ $iBit], $aEingange[$iBit]
    For $i = 0 To $iBit - 1
    $aEingange[$i] = Chr(97 + $i)
    Next
    For $i = 0 To 2 ^ $iBit - 1
    If _GUICtrlListView_GetItemChecked($ListView1, $i) Then
    $aAusgang[$i] = 1
    Else
    $aAusgang[$i] = 0
    EndIf
    Next
    GUICtrlSetData($Input2, _GenNF($aEingange, $aAusgang, True))
    GUICtrlSetData($Input3, _GenNF($aEingange, $aAusgang, False))
    EndFunc ;==>_Button_Generate

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

    Func _Button_Copy_DNF()
    ClipPut(GUICtrlRead($Input2))
    EndFunc ;==>_Button_Copy_DNF

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

    Func _Button_Copy_KNF()
    ClipPut(GUICtrlRead($Input3))
    EndFunc ;==>_Button_Copy_KNF

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

    Func _Export_Excel()

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

    EndFunc ;==>_Export_Excel

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

    Func _AddZeros($sBinary, $iLen)
    While (StringLen($sBinary) < $iLen)
    $sBinary = 0 & $sBinary
    WEnd
    Return $sBinary
    EndFunc ;==>_AddZeros

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

    Func _DecToBinary($i)
    Local $sBinary
    Do
    If Mod($i, 2) Then
    $sBinary = 1 & $sBinary
    $i = ($i - 1) / 2
    Else
    $sBinary = 0 & $sBinary
    $i /= 2
    EndIf
    Until $i = 0
    Return $sBinary
    EndFunc ;==>_DecToBinary

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

    Func _GenNF($aIn, $aOut, $bDNF = True)
    Local $sNF, $aBinary, $iResultToUse, $iNumberToInvert, $sLinkInBrackets, $sLinkOutBrackets
    If $bDNF Then
    $sNF = "DNF = "
    $iResultToUse = 1
    $iNumberToInvert = 0
    $sLinkInBrackets = " AND "
    $sLinkOutBrackets = " OR "
    Else
    $sNF = "KNF = "
    $iResultToUse = 0
    $iNumberToInvert = 1
    $sLinkInBrackets = " OR "
    $sLinkOutBrackets = " AND "
    EndIf

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

    For $i = 0 To UBound($aOut) - 1
    If $aOut[$i] = $iResultToUse Then
    $aBinary = StringSplit(_AddZeros(_DecToBinary($i), UBound($aIn)), "", 2)
    $sNF &= "("
    For $y = 0 To UBound($aBinary) - 1
    If $aBinary[$y] = $iNumberToInvert Then $sNF &= "-"
    $sNF &= $aIn[$y] & $sLinkInBrackets
    Next
    $sNF = StringTrimRight($sNF, StringLen($sLinkInBrackets))
    $sNF &= ")" & $sLinkOutBrackets
    EndIf
    Next

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

    $sNF = StringTrimRight($sNF, StringLen($sLinkOutBrackets))
    Return $sNF
    EndFunc ;==>_GenNF

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

    Func _Exit()
    GUIDelete($Form1)
    Exit
    EndFunc ;==>_Exit

    [/autoit]

    Es enthält auch die Dezimal zu Binär Umrechung. ^^

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™