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

Beiträge von limette

  • array problem

    • limette
    • 1. August 2008 um 17:08

    Ok, aber

    Zitat


    Dim $array_spam[1][2]
    $array_spam[$find][2] += 1

    ist immernoch falsch. ^^
    Wie gesagt, Arrays fangen bei 0 an !
    Also:

    Dim $array_spam[1][2]
    $array_spam[$find][1] += 1 ; [$find][0] = Spalte Nr.1, [$find][1] = Spalte Nr. 2 ;)

    limette

    Edit: $find ? Wieso $find ? ;) ArrayAdd gibt das doch schon zurück =)

  • array problem

    • limette
    • 1. August 2008 um 16:31

    Öhm, nur mal so:
    was soll das 2. [1] bei Dim $array[1][1] bringen ?
    wenn du 2 Spalten haben willst muss da ne 2 hin ;)
    Ansonsten einfach weglassen, eine Spalte ist doch immer :P

    Also so müsste es gehn:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    $aZeilen = 'current'
    $aZeilenlast = 'diff'
    $Name = 'TESTNAME1'
    Dim $array_spam[1]

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

    _ArrayDisplay($array_spam)

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

    If not ($aZeilen = $aZeilenlast) And _ArraySearch($array_spam,$Name) = -1 Then ;bedingungen prüfen
    _ArrayAdd($array_spam, $Name) ;name dem array hinzufügen
    _ArrayDisplay( $array_spam )
    $find = _ArraySearch($array_spam,$Name) ;zeile finden in welcher der name vorhanden ist
    $array_spam[$find] += 1
    EndIf

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

    _ArrayDisplay($array_spam)

    [/autoit]

    Auch wenn ich nicht weiß, was das
    $array_spam[$find] += 1
    soll, das ersetzt den Namen durch ne 1 ;)
    Anhängen geht mit & =)

    Außerdem kannst du das ArraySearch eigentlich weglassen, guck mal in der
    Hilfe, was ArrayAdd zurückgibt ;)

    Spoiler anzeigen
    Zitat

    Return Value
    Success: Index of last added item
    Failure: -1, sets @error to 1

    limette

  • Menü über Systray-Icon

    • limette
    • 1. August 2008 um 13:51

    Ich weiß nicht ob du das jetzt schon gefunden hast, aber...
    wie wärs mit:

    Switch $msg
    Case §GUI_EVENT_CLOSE
    GUISetState( @SW_HIDE, $gui )
    EndSwitch

    Solltest dann natürlich einen TrayEintrag zum wiederherstellen anfügen ;)

  • Do...Until Problem

    • limette
    • 31. Juli 2008 um 22:11

    Könnt ja mal Opt( 'TrayIconDebug', 1 ) einstellen und mal gucken.
    Habs selber nicht getestet :rolleyes:

  • Array Anfängerproblem

    • limette
    • 31. Juli 2008 um 22:05

    Vorherige Posts nicht gelesen ?
    Ist immer recht sinnvoll ;)

  • Array Anfängerproblem

    • limette
    • 31. Juli 2008 um 21:51

    Was soll er denn an Script posten ?
    Er hat eine Frage zu dem gestellt, was ich ihm als
    als Lösung geposted habe und das anscheinend auf funktioniert :S

    Alles klar soweit ? ;)
    limette

  • 2 verschiedene GUIs - Button funktioniert nicht

    • limette
    • 31. Juli 2008 um 20:09

    Öhm, nimm mal den Parameter bei GuiGetMsg raus ! xD
    GuiGetMsg hat nur einen optionalen Parameter, und der ist entweder 0 oder 1,
    das bestimmt nur, in welcher Form die Events ausgegeben werden.
    Du kannst da nicht einfach ein Window-Handle angeben, das bringt nichts, außer Fehler ;)

    Und warum soll das Fenster immer neu erstellt werden ?
    Du kannst das doch einfacher verstecken mit
    GUISetState(@SW_HIDE, $kontaktfenster)
    und zeigen mit
    GUISetState(@SW_SHOW, $kontaktfenster),
    so wie das da auch schon ist.
    Evtl. eingetragene Daten kannst du ja mit GuiCtrlSetData zurücksetzen..

    Ansonsten, wenn du das immer wieder komplett neu machen musst:
    Erstell dir dafür eine Funktion

    Func _create()
    $gui = GuiCreate( 'nananaa' )
    ;...
    EndFunc

    und deklariere die dafür genutzten Variablen "Global",
    dann müsstest du nur in der Zeile, wo sie erstellt werden soll, die Funktion aufrufen.

    limette

    Edit: Bin jetzt erst weg, bis später, gutes Gelingen ;)

  • 2 verschiedene GUIs - Button funktioniert nicht

    • limette
    • 31. Juli 2008 um 19:48

    Das von Tweaky war doch schön ? ^^
    Schick mal den Code mit nem Kommentar, wo die GUI neu erstellt werden soll ;)

    limette

  • 2 verschiedene GUIs - Button funktioniert nicht

    • limette
    • 31. Juli 2008 um 19:10

    Das kannst du ja noch mit nem GUISetState( @SW_RESTORE, $winhandle ) beheben ;)

    Tweaky: War auch gerade dabei das umzuschreiben.. :P

  • 2 verschiedene GUIs - Button funktioniert nicht

    • limette
    • 31. Juli 2008 um 18:58

    Ach, nach dem Case $msg2 = $tab1_speichern (oder wie du die Variable genannt hast),
    also nachdem man den Speichern-Button geklickt hat, fehlt noch ein ExitLoop !
    So löscht er nur die GUI, bleibt aber in der While - Schleife ;)

    limette

  • Aktuelles Datum mit Änderungsdatum vergleichen

    • limette
    • 31. Juli 2008 um 18:53

    Oder so ^^
    Ist aber mehr Code ;)

    Edit: Danke x) Ich versuche StringRegExp möglichst zu vermeiden, diese Funktionen sind mir nicht geheuer xD

  • 2 verschiedene GUIs - Button funktioniert nicht

    • limette
    • 31. Juli 2008 um 18:44

    Du hast bei deiner 2. GUI die gleichen Variablen genommen wie bei deiner 1.
    Deshalb haben die, nachdem die 2.GUI geschlossen wurde, immernoch die CtrlIds der
    Controls aus der 2.GUI drin.. :P

    Du müsstest der 2.GUI einfach andere Variablen geben ;)

    Kleiner Tipp am Rande:
    Es ist schöner, die ganzen GUIs erst zu erstellen und bei Bedarf mit GUISetState
    anzeigen zu lassen ;)

    limette

  • Aktuelles Datum mit Änderungsdatum vergleichen

    • limette
    • 31. Juli 2008 um 18:38

    Laut Hilfe:
    Remarks:
    The array is a single dimension array containing six elements:
    $array[0] = year (four digits)
    $array[1] = month (range 01 - 12)
    $array[2] = day (range 01 - 31)
    $array[3] = hour (range 00 - 23)
    $array[4] = min (range 00 - 59)
    $array[5] = sec (range 00 - 59)
    Notice that return values are zero-padded.

    Damit lässt sich doch was anfangen ?
    rechnest das gesamt in Tage um, also
    $Tage_neu = (@Year-1) * 365 + @Yday
    $Tage_alt = ($array[0]-1) * 365 + ($array[1]-1) * 30 + $array[2]

    Oder etwa nicht ? :P
    und dann halt:
    If $Tage_neu - 7 > $Tage_alt Then MsgBox( 0, '', 'älter als 1 Woche' )

  • WinWaitActive MSN Fenster?

    • limette
    • 31. Juli 2008 um 18:19

    Opt( 'WinTitleMatchMode', 2 )

    müsste dir hier helfen ;)

    Spoiler anzeigen


    WinTitleMatchMode Alters the method that is used to match window titles during search operations.
    1 = Match the title from the start (default)
    2 = Match any substring in the title
    3 = Exact title match
    4 = Advanced mode, see Window Titles & Text (Advanced)
    -1 to -4 = force lower case match according to other type of match.

    limette =)

  • Aktuelles Datum mit Änderungsdatum vergleichen

    • limette
    • 31. Juli 2008 um 18:12

    Sieh dir mal die Funktion
    "FileGetTime" an,..

    Spoiler anzeigen
    Zitat


    FileGetTime
    --------------------------------------------------------------------------------

    Returns the time and date information for a file.


    FileGetTime ( "filename" [, option [, format]] )


    Parameters

    filename Filename to check.
    option [optional] Flag to indicate which timestamp
    0 = Modified (default)
    1 = Created
    2 = Accessed
    format [optional] to specify type of return
    0 = return an array (default)
    1 = return a string YYYYMMDDHHMMSS

    Alles anzeigen
  • Array Anfängerproblem

    • limette
    • 31. Juli 2008 um 17:50

    Einmal kommentiert ^^

    Spoiler anzeigen
    [autoit]


    Dim $array[80][2] ; Erstellt eine Tabelle mit 80 Zeilen und 2 Spalten, Spalte [0] für x, Spalte [1] für y.
    $a = 0 ;$a ist hier der Index der zu beschreibenden Zeile, start bei 0
    For $i = 0 To 7 ;0 bis 7 = 8 Zeilen
    For $j = 0 To 9 ; 0 bis 9 = 10 Spalten, so hattest du deine 'fiktive Tabelle' an Koordinaten erklärt.
    $array[$a][1] = 150 + 30 * $i
    $array[$a][0] = 300 + 10 * $j
    $a+=1
    Next
    Next

    [/autoit]

    Du sagtest ja selbst, wie eine Tabelle mit 8 Zeilen und 10 Spalten, so habe ich mir die
    vorgestellt.
    Also $i ist die Zeilennummer dieser 8x10 Tabelle, damit berechne ich die y-Koordinate, da die vom
    Anfang ( 150 ) immer um 30 erweitert wird. Also beim ersten Eintrag für y: 150 + 30*0 = 150

    $j ist die Spaltennummer. Ich gehe mit der 2. For-Next-Schleife für jede Zeilennummer alle 10 Spalten
    durch und addiere hier zur Ausgangs-X-Koordinate von 300 immer 10 für jedes weitere Spalte ;)

    Wenn das noch zu kompliziert ist, frag nochmal, dann kann ich das vll an ner kleinen Graphik erläutern x)

    limette =)

  • Do...Until Problem

    • limette
    • 31. Juli 2008 um 17:34

    Wenn ich das richtig sehe ist da folgendes Problem:

    Wenn du die Do-Until-Schleife wieder "aktivierst" ruft sich die Funktion doch mehrmals selbst auf,
    über das 'check'.
    Versuch mal folgendes:
    Klammer den Aufruf von 'check' aus und deklariere auf jeden Fall die Variable $loop global !

    limette =)
    Edit: Kann sein dass das gerade komplett falsch sehe.. irgentwie verwirrt es mich, dass du den
    Code 2x gepostet hast, ich sehe da keinen Unterschied... *Augenreib*

    P.S.: Zu meinem Post davor:
    Wenn man in dem Script 2x auf den Button drückt hängt der, denn beim ersten mal macht er
    das Fenster zu und beim 2. Mal wartet er dann, bis diese Abfrage wieder kommt !
    Deshalb meinte ich, dass du den Stop-Button nur aktivieren, als 'klickbar' machen sollst,
    wenn bereits 'start' gedrückt wurde.
    Und dass der Stop-Button, wenn man ihn klickt, sich sozusagen selbst auf 'disable' stellt, um
    nicht noch einmal gedrückt zu werden ;)

  • Textdatei splitten

    • limette
    • 31. Juli 2008 um 17:20
    Spoiler anzeigen
    [autoit]


    $file_count = 50
    $read = FileRead( @ScriptDir&"\Test\DBDVFALT.TXT" )
    $bsize = Ceiling( StringLen( $read ) / $file_count )

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

    For $i = 1 To $file_count
    ToolTip( ($i/$file_count)*100 & '%' )
    FileWrite( @ScriptDir&"\Test\DBDVFALT_" & $i & ".TXT", StringLeft( $read, $bsize ) )
    $read = StringTrimLeft( $read, $bsize )
    Next

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

    MsgBox( 0, '', 'Done' )

    [/autoit]

    Das wär mein Vorschlag x)
    Der Splitted die eine Datei auf eine gewünschte Anzahl..
    Einfach nach Belieben $file_count ändern.
    Ich weiß aber nicht, wie gut das mit so ner meega-Datei funzt, weil der erst
    die ganze Datei mit FileRead einliest.

    Du kannst das natürlich auch so machen:

    Spoiler anzeigen
    [autoit]


    $file_size = 10000000
    $file = FileOpen( @ScriptDir&"\Test\DBDVFALT.TXT", 0 )
    $a = 1
    Do
    $read = FileRead( $file, $file_size )
    $err = @error
    FileWrite( @ScriptDir&"\Test\DBDVFALT_" & $a & ".TXT", $read )
    $a += 1
    ToolTip( $a )
    Until $err = -1
    FileClose( $file )
    MsgBox( 0, '', 'Done' )

    [/autoit]

    Da wird die Datei nur geöffnet und Stück für Stück gelesen & geschrieben,
    da werden x Dateien erstellt mit der vorgegebenen Länge von $file_size.

  • Array Anfängerproblem

    • limette
    • 31. Juli 2008 um 16:52

    So müsste das passen:

    Spoiler anzeigen
    [autoit]


    Dim $array[80][2], $a = 0
    For $i = 0 To 7
    For $j = 0 To 9
    $array[$a][1] = 150 + 30 * $i
    $array[$a][0] = 300 + 10 * $j
    $a+=1
    Next
    Next

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

    While 1
    For $i = 0 To 79
    $color = PixelGetColor( $array[$i][0], $array[$i][1] )
    Switch $color
    Case 0x00FFFF
    _1()
    Case 0x0C3CAE
    _2()
    ;...
    EndSwitch
    Next
    WEnd

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

    Func _1()
    EndFunc
    Func _2()
    EndFunc
    ;....

    [/autoit]

    limette =)

    Edit: lass dir lieber einmal mit _ArrayDisplay die Koordinaten anzeigen, ob das die sind, die
    du brauchst. Ich hoffe aber mal deine Angaben richtig interpretiert zu haben ;)

  • Menü über Systray-Icon

    • limette
    • 31. Juli 2008 um 16:34
    [autoit]


    TrayItemSetState($tray_id, $TRAY_DISABLE )
    TrayItemSetState($tray_id, $TRAY_ENABLE )

    [/autoit]

    Siehe: AutoIt-Hilfe ;)
    limette

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™