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

Beiträge von BugFix

  • Text Datei schreiben

    • BugFix
    • 15. Oktober 2007 um 12:24

    _FileReadToArray() zum Einlesen der Datei
    In einer Schleife durchgehen (Start ab Zeile 24) mit _StringBetween($String, '(',')')

  • Taschenrechner

    • BugFix
    • 15. Oktober 2007 um 12:16

    Ich glaube, es ist wesentlich einfacher, wenn jeder Operator nur einmal auftaucht (als Button).
    Du kannst doch die Rechenoperation komplett als Zeichenkette erfassen, oder noch besser jedes Element in ein Array schreiben (kannst es ja mit 500 Elementen definieren - so lang wird sicher keine Aufgabe).
    Zum Durchführen der Rechnung verwendest du dann Execute().

  • Teile eines Arrays auslesen

    • BugFix
    • 15. Oktober 2007 um 12:07

    Sind denn in deinem Quelltext die Anweisungen
    <td>.... </td>
    nur einmalig in der benannten Form vorhanden?
    Dann kannst du beim Durchgehen der Zeilen doch mit _StringBetween() arbeiten.

    [autoit]

    Dim $arFound[1]
    $val = _StringBetween($aArray[$i], '<td>', '</td>', 1)
    If IsArray($val) Then
    ReDim $arFound[Ubound($arFound)+1]
    $arFound[Ubound($arFound)-1] = $val[0]
    EndIf

    [/autoit]

    $arFound enthält dann alle Treffer. Die brauchst du dann nur noch den Variablen zuordnen, wobei du den zweiten und fünften Treffer ja noch splitten mußt.

  • Teile eines Arrays auslesen

    • BugFix
    • 15. Oktober 2007 um 11:24
    Zitat

    _FileReadToArray ( @ScriptDir & "\log.txt", $aArray ) ;damit lade ich die db

    <hier müsste das hin, dass er immer einen teil der db als array einlist>


    ??
    Du hast doch die eingelesene Datei bereits im Array. Was willst du jetzt noch einlesen?
    Du mußt nur das Array durchgehen und nach deinen Kriterien selektieren.

    [autoit]

    For $i = 1 To $aArray[0]
    $aArray[$i] ; ist der Inhalt der aktuellen Zeile, kannst du auswerten
    Next

    [/autoit]
  • Speicher einlesen etc

    • BugFix
    • 15. Oktober 2007 um 10:27

    Hi,
    Cheatengine reicht aus, wenn du mit umgehen kannst ;).
    [URL=http://forum.extreme-gaming.de/topic,1696,-%5Btut-2%5D-dma,-pointer.html]Hier[/URL] findest du ein Tutorial, wie man Dynamische Speicheradressen suchen kann (Pointer-Shift).

  • Weiß nicht was...

    • BugFix
    • 14. Oktober 2007 um 20:02

    Danke Spinne ;),
    da werde ich dann mal etwas testen. Erst mal ein paar passende 'Opfer' suchen, die ich über die serielle Schnittstelle abschießen kann.:D

  • GUICtrlCreateLabel farbig anzeigen.

    • BugFix
    • 14. Oktober 2007 um 17:50

    Ich habe mal eine Funktion erstellt, die dir die passenden Befehle zusammenstellt:
    Tool: Formatierung Controls

  • Taschenrechner

    • BugFix
    • 14. Oktober 2007 um 17:24

    Du mußt die ausgelesenen Werte auch Variablen zuordnen, sonst kannst du nicht darauf zugreifen:

    [autoit]

    ; falsch:
    GUICtrlRead($number2)
    GUICtrlRead($Number3)
    GUICtrlRead($Number4)
    GUICtrlRead($Number1)
    ; richtig:
    $var1 = GUICtrlRead($number2)
    $var2 = GUICtrlRead($Number3)
    $var3 = GUICtrlRead($Number4)
    $var4 = GUICtrlRead($Number1)

    [/autoit]
  • URLs aus Datei öffnen

    • BugFix
    • 14. Oktober 2007 um 17:08

    [OT]
    Sagt mal, was habt ihr an unserem Syntaxhighlighting auszusetzen?
    Oder welche Gründe veranlassen euch bei Codezeilen kein Autoit-Tag zu setzen?
    [/OT]

  • URLs aus Datei öffnen

    • BugFix
    • 14. Oktober 2007 um 17:04

    Mit $i iterierst du durch das Array. Wenn du aber sagst "$aArray[$i-1]" verweist du bei $i = 1 auf das Element $aArray[0]. Und dort steht die Anzahl der eingelesenen Zeilen.

    [autoit]

    #include <File.au3>
    Dim $aArray

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

    _FileReadToArray ( @ScriptDir & "\log.txt", $aArray )

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

    For $i = 1 To $aArray[0]
    Run("E:\Programme\Mozilla Firefox\firefox.exe " & $aArray[$i])
    sleep(40000)
    Next

    [/autoit]
  • _CountDown() UDF

    • BugFix
    • 14. Oktober 2007 um 16:29

    *bg*
    CountDown
    ( und ich war nicht der erste :D )

  • Weiß nicht was...

    • BugFix
    • 14. Oktober 2007 um 14:30

    Hier was Sinnvolles:
    (wollt ich immer schon mal machen, komme aber einfach nicht dazu ;) )

    Versuch ob du per Object auf die RS232-Schnittstelle zugreifen kannst.
    - Lassen sich die Pegel von Rx, Tx auslesen UND auch setzen?

    :lol: OK, das ist sicher zu krass für den Anfang, interessiert mich aber wirklich. ;)

  • Button nicht anklickbar machen

    • BugFix
    • 14. Oktober 2007 um 12:52

    Schau dir mal: GUICtrlSetState() an.
    Status Disable setzen.

  • Bei GUI_EVENT_MAXIMIZE in $GUI1 soll $GUI2 das gleiche machen.

    • BugFix
    • 14. Oktober 2007 um 12:21

    Das ist im OnEvent-Mode viel einfacher als im GuiGetMsg-Mode.
    Du mußt nur den Ereignissen jeder GUI eigene Funktionen zuordnen:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    Opt("GUIOnEventMode", 1)

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

    $GUI1 = GUICreate("GUI1", 200, 200, 0, 0, BitOR($WS_SIZEBOX, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX))
    GUISetOnEvent($GUI_EVENT_CLOSE, "_GUI_1__EVENT_CLOSE")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE, "_GUI_1_EVENT_MAXIMIZE")
    GUIRegisterMsg($WM_GETMINMAXINFO, "MY_WM_GETMINMAXINFO")
    GUISetState(@SW_SHOW, $GUI1)

    $GUI2 = GUICreate("GUI2", 200, 200, 300, 0, BitOR($WS_SIZEBOX, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX))
    GUISetOnEvent($GUI_EVENT_CLOSE, "_GUI_2__EVENT_CLOSE")
    GUISetOnEvent($GUI_EVENT_MAXIMIZE, "_GUI_2_EVENT_MAXIMIZE")
    GUIRegisterMsg($WM_GETMINMAXINFO, "MY_WM_GETMINMAXINFO")
    GUISetState(@SW_SHOW, $GUI2)

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

    While 1
    Sleep(100)
    WEnd

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

    Func _GUI_1__EVENT_CLOSE()
    Exit
    EndFunc

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

    Func _GUI_2__EVENT_CLOSE()
    GUISetState(@SW_HIDE, $GUI2)
    EndFunc

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

    Func _GUI_1_EVENT_MAXIMIZE()
    GUISetState(@SW_MAXIMIZE, $GUI2)
    EndFunc

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

    Func _GUI_2_EVENT_MAXIMIZE()
    GUISetState(@SW_MAXIMIZE, $GUI1)
    EndFunc

    [/autoit]
  • ich bekomme es einfach nicht hin!!

    • BugFix
    • 14. Oktober 2007 um 11:42
    Zitat

    Ist aber schon eine komplizierte sache ihr nur für das "X".


    Kompliziert? :D, eher logisch.
    Wenn die GUI-Meldung kommt: "Ich habe Fenster geschlossen", weißt du ja nicht wer das war. Also mußt du abfragen: "He, wer hat das gesagt?"

  • GUI-Fenstergröße und Bildschirmauflösung

    • BugFix
    • 14. Oktober 2007 um 10:25

    Hi,

    zu 1.
    Wenn du keine Option setzt sind deine Größenangaben nicht dynamisch. Alle Controls werden so angezeigt, wie von dir gewollt.
    Dynamik kannst du erreichen mit:
    - AutoitSetOption('GUIResizeMode', [, param] )
    Für die Controls:
    - GUICtrlSetResizing ( controlID, resizing )

    zu 2.
    "Opt("ExpandVarStrings", 1)" ist nicht notwendig um die Anzahl der Parameter zu ermitteln.
    Dein Aufruf war nur nicht korrekt:

    [autoit]

    $Params = $CmdLine[0]
    MsgBox(0, "ParameterTest", "Anzahl der Parameter: " & $Params)

    [/autoit]
    Zitat

    Und wenn mir dann noch jemand sagen könnte, wie ich diese sch... Zentrierung und die lächerlichen Smilies aus diesem Editor 'rausbekomme, wäre ich restlos glücklich!


    :lol: Die Smileys entstehen, weil du keine Tags gesetzt hast. Und schon wird aus abschließender Klammer und folgendem Semikolon das Zwinker-Smiley.
    Dein Text erscheint nur in deinem Browser zentriert. Das Problem liegt ausschließlich auf deiner Seite des Netzes. :)

  • ich bekomme es einfach nicht hin!!

    • BugFix
    • 14. Oktober 2007 um 01:25

    Da mußt du zusätzlich zu ID/Event auch das Fensterhandle auswerten:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

    $main = GUICreate("Hallo", 300, 200)
    $bild_B = GUICtrlCreateButton("Bild öffnen", 98, 70, 100, 50)
    GUISetBkColor(0xe0c782)

    GUICtrlCreateLabel("made by codemaster", 107, 180)
    GUISetState()

    $child = GUICreate("", 700, 550)
    $back_B = GUICtrlCreateButton("Zurück", 310, 515, 80, 25)

    While 1
    $msg = GUIGetMsg(1)
    Switch $msg[1] ; Window-Handle
    Case $main
    Switch $msg[0] ; Control-ID, Event
    Case $GUI_EVENT_CLOSE
    Exit
    Case $bild_B
    GUISetState(@SW_SHOW, $child)
    GUISetState(@SW_HIDE, $main)
    EndSwitch
    Case $child
    Select
    Case $msg[0] = $GUI_EVENT_CLOSE Or _
    $msg[0] = $back_B
    GUISetState(@SW_HIDE, $child)
    GUISetState(@SW_SHOW, $main)
    EndSelect
    EndSwitch
    WEnd

    [/autoit]
  • Wer hat Lust zu helfen?

    • BugFix
    • 14. Oktober 2007 um 00:56
    Zitat

    Da ich ja gerade (14.10.07 - 00.10) das Proggen mit Autoit aufgegeben habe,


    OK, habe ich kein Verständnis für - so reagieren eigentlich Kinder, wenn sie gnatzen.
    Aber damit halte ich das Thema auch für gegessen.

    [BugFix: CLOSED]

  • Scrollbarer Label?

    • BugFix
    • 14. Oktober 2007 um 00:52
    Zitat

    edit: Die Zeichen kann ich net kopieren, denn diese ergeben sofort eine Neue Zeile, weil ich denke,dass sie dann entshclüsselt werden oder so was in der art..


    Darum solltest du mal im HEX-Editor das anschauen.
    Vermutlich findest du dort: "0d 0a" oder dezimal: "13 10"
    Und das sind die Zeichen für @CRLF, also Zeilenumbruch.

    Du schreibst, dass sie sofort eine neue Zeile ergeben: Aber das ist es doch, was du wolltest - oder?

  • txt bearbeitung??

    • BugFix
    • 14. Oktober 2007 um 00:41

    Ich hoffe, dass die Lösung dem entspricht was du möchtest:
    - FileOpenDialog zum Aussuchen der zu bearbeitenden Datei
    - Einlesen Datei in Array
    - Inputbox für Ersetzung
    - in Schleife Ersetzen mit Eingabe
    - Inputbox für Ausgabedateiname
    - Zurückschreiben in Ausgabedatei

    (Wenn du so formulierst, was du möchtest, ist das viel einfacher ;) )

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    Dim $inFile = FileOpenDialog('Datei zum Bearbeiten wählen', @ScriptDir, 'Webdateien (*.htm;*.html)', 3)
    Dim $outFile
    Dim $aArray
    $ret = _FileReadToArray ( $inFile, $aArray ) ; datei in Array lesen
    If @error Then
    MsgBox(0, '', 'Datei konnte nicht eingelesen werden.')
    Exit
    EndIf

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

    $Eingabe = InputBox('Ersetzen', 'Bitte eingeben:')

    For $i = 1 To $aArray[0] ; zeilenweise durchgehen
    $aArray[$i] = StringReplace($aArray[$i], 'XX', $Eingabe) ; der String wird ersetzt durch den String mit der Eingabe
    Next

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

    $outFile = InputBox('Datei speichern', 'Bitte Dateinamen für Ausgabe festlegen.')
    _FileWriteFromArray(@ScriptDir & '\' & $outFile, $aArray, 1) ; vom Array in Ausgabedatei schreiben

    [/autoit]

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™