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

Beiträge von TJF

  • Listbox - alle gewählten Items abwählen

    • TJF
    • 1. September 2010 um 18:43

    Ah ok... Das funktioniert auf das konkret abgewählte Item. Deine anderen beiden bleiben aber markiert. Ich hatte gehofft nicht alles abfragen und abwählen zu müssen (im Falle von mehreren markierten Items). Sozusagen "Reset"..

  • Listbox - alle gewählten Items abwählen

    • TJF
    • 1. September 2010 um 18:34

    Macht's leider nicht...

  • Listbox - alle gewählten Items abwählen

    • TJF
    • 1. September 2010 um 17:44

    Hallo,

    vielleicht stehe ich gerade auf dem Schlauch: Wie kann ich mit " _GUICtrlListBox_SetSel " oder manuell ausgewählte Items wieder gänzlich abwählen? So dass gar nichts markiert ist in der Listbox?

    Dank und Gruß
    Thomas

  • "_FileWriteFromArray2D" schreibt nicht

    • TJF
    • 27. Juli 2010 um 13:11

    Danke! Das isses!

  • "_FileWriteFromArray2D" schreibt nicht

    • TJF
    • 27. Juli 2010 um 11:55

    Schon, aber:

    [autoit]

    ; Description: Write 1D/2D array to file...

    [/autoit]

    Geht auch damit nicht (Rückgabe: 1)

    [autoit]

    $arr = _FileWriteFromArray("Testneu.txt", $aListe)

    [/autoit]
  • "_FileWriteFromArray2D" schreibt nicht

    • TJF
    • 27. Juli 2010 um 11:49

    Hallo,

    kann mir jemand sagen, warum dieses "_ArrayDisplay($aListe)" zwar richtig angezeigt wird, jedoch nicht in die Textdatei geschrieben wird? Rückgabewert: -1 ...

    [autoit]


    Func _speichern()
    $count = _GUICtrlListBox_GetCount($idListe)
    Dim $aListe[$count]
    For $i = 0 To $count - 1
    $aListe[$i] = _GUICtrlListBox_GetText($idListe, $i)
    Next
    _ArrayDisplay($aListe)
    ;$hFile = FileOpen("\Testneu.txt", 2)
    ;MsgBox(0, "Ergebnis: ", $hFile)
    $arr = _FileWriteFromArray2D("Testneu.txt", $aListe,0,0,0,0,'|')
    ;FileClose($hFile)
    MsgBox(0, "Ergebnis: ", $arr)
    EndFunc

    [/autoit]

    Dank und Gruß
    Thomas

  • Fenster - Hide

    • TJF
    • 3. Februar 2010 um 12:07

    Hallo Stefan,

    es gibt nicht recht viel mehr sachdienlichen Code dazu. Ich lasse das Tool (192 kHz AudioPlayer) so wie beschrieben laufen, klicke auf einen Button (Pause) meiner GIU und das Tool-Fenster öffnet sich um zu fragen, ob ich wirklich auf "Pause" klicken will. Wenn Du das nachstellen möchtest, bräuchtest Du das Tool. Dabei handelt es sich um einen AudioPlayer, der komplett im RAM arbeitet, d.h. du müßtest einige Windows-Rechte (Lock Privileges) einstellen, damit das Teil überhaupt läuft. Ich dachte, dass sowas vielleicht zu weit führt. Deshalb die abstrakte Frage, wie man ein Fenster schon im Vornherein verstecken kann, falls es sich öffnet, bzw. wie man das kurze irritierende Aufpoppen unterdrücken kann...

    So poppt es auf jeden Fall kurz auf, bevor dann die Bestätigung folgt:

    [autoit]


    Func _pause()
    If WinWait($titel) Then
    WinSetState($titel, "", @SW_HIDE)
    ControlClick($titel, "", "Button1")
    EndIf
    EndFunc

    [/autoit]

    Viele Grüße
    Thomas

  • Fenster - Hide

    • TJF
    • 3. Februar 2010 um 11:39

    Danke Stefan,

    mein Beispiel stößt hier an seine Grenzen. Ich rufe das Tool schon so auf:

    [autoit]


    Run(@WindowsDir & "\system32\cmd.exe /C start /realtime " & '"kk"' & " " & $adir & " " & $mdir_dat, "", @SW_HIDE)

    [/autoit]

    Trotzdem öffnet sich das o.g. Messagebox-Fenster. Das mit derselben PID läuft... ?(
    Viele Grüße
    Thomas

  • Fenster - Hide

    • TJF
    • 3. Februar 2010 um 11:14

    Hallo,

    ich will ein Kommandozeilen-Tool mit einer GUI versehen. Das Tool läßt an einer Stelle eine Messagebox erscheinen, welche ich abfangen und managen will. Dabei soll dieses Fenster gar nicht erst sichtbar werden, sobald dessen Erscheinen von der GUI her ausgelöst wird. Momentan poppt das Fenster noch kurz hoch, bevor es auf "@SW_HIDE" gesetzt wird. Der Vorgang ist also etwa so:

    [autoit]


    $titel = "Unbenannt"
    Run("notepad")
    WinWait($titel)
    WinSetState($titel, "", @SW_HIDE)
    exit

    [/autoit]

    Weil es sich bei dem Tool nur um eine *.exe handelt, dachte ich, ich könnte das vielleicht über ProcessExists anfangs des Scripts schon mit WinSetState auf Hide stellen (soweit das dann überhaupt funktionieren sollte). Das konnte ich nicht weiter verfolgen, weil ich jetzt nicht weiss, wie ich von der PID zu einem Titel komme, den WinSetState verarbeiten kann.

    Hat jemand eine Idee?

    Dank und Gruß
    Thomas

  • AutoIt v3 GUI (CLASS)

    • TJF
    • 1. Februar 2010 um 21:12

    Tausend Dank!

  • Win7 - WASAPI Audio-Anbindung

    • TJF
    • 1. Februar 2010 um 20:48

    Ja, danke. Da war ich schon. Mir ist der Einstieg von AutoIt her in dieses procedere nur nicht klar...

  • Win7 - WASAPI Audio-Anbindung

    • TJF
    • 1. Februar 2010 um 14:30

    Hallo,

    kann mir jemand eine Einstiegshilfe geben, um einen einfachen WASAPI-Audio-Player zu bauen? Gibt es eine UDF oder ein Plugin oder stößt AutoIt hier an seine Grenzen?

    Dank und Gruß
    Thomas

  • AutoIt v3 GUI (CLASS)

    • TJF
    • 1. Februar 2010 um 14:27

    Hallo,

    läßt sich das irgendwo einstellen dem CLASS-Namen "AutoIt v3 GUI" einen anderen Namen zu geben oder eine Ergänzung?

    Das gleiche in Bezug auf Fehlermeldungen. Also anstatt "AutoIt-Error" z.B. "xy.exe - Error "...

    Dank und Gruß

  • _FileWriteFromArray schreibt nicht

    • TJF
    • 22. Januar 2010 um 16:08

    Kein Problem :) Danke!

  • _FileWriteFromArray schreibt nicht

    • TJF
    • 22. Januar 2010 um 15:03

    Hi,

    jetzt bin ich doch hier bei BugFix fündig geworden.

    Vielen Dank!
    Thomas

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    Dim $T
    Dim $arATB[513][5]

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

    For $r = 0 To 512
    For $c = 0 To 4
    $T = Int(Random(20) + 1)
    $arATB[$r][$c] = $T
    Next
    Next
    _ArrayDisplay($arATB,"Test",0)
    _FileWriteFromArray2D(@ScriptDir & "\test.txt", $arATB)

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

    ;==========================================================================================================================================
    ; Function: _FileReadToArray2D($FILEPATH, $ARRAY [, $DELIM=-1])
    ;
    ; Description: Read 1D/2D array from file, if $DELIM is given (<> -1) 2D array will created
    ;
    ; Parameter(s): $FILEPATH - path/filename of the file to read in an array
    ; $ARRAY - array variable to hold readed data
    ; optional $DELIM - delimiter for 2D-array entries, default -1 (none 2D-array)
    ;
    ; Requirement(s): None
    ;
    ; Return Value(s): On Success - Returns -1
    ; On Failure - Returns 0 and sets @error = 1 (given file are not seperated with given delimiter or count of delimiters
    ; are not equal); @error = 2 (unable to open filepath)
    ;
    ; Note: If given file is delimited to create 2D-array ALL lines need the same count of delimiters, otherwise an error occurs!
    ;
    ; Author(s): BugFix ( [email='bugfix@autoit.de'][/email] )
    ;==========================================================================================================================================
    Func _FileReadToArray2D($FILEPATH, ByRef $ARRAY, $DELIM=-1)
    Local $fh = FileOpen($FILEPATH, 0), $line, $var, $n = 1
    If $fh = -1 Then
    SetError(2)
    Return 0
    EndIf
    If $DELIM <> -1 Then
    $line = FileReadLine($fh, 1)
    $var = StringSplit($line, $DELIM)
    If IsArray($var) Then
    $Ubound2nd = $var[0]
    Local $AR[1][$Ubound2nd]
    $AR[0][0] = 0
    Else
    SetError(1)
    Return 0
    EndIf
    While 1
    $line = FileReadLine($fh, $n)
    If @error = -1 Then ExitLoop
    $var = StringSplit($line, $DELIM)
    If IsArray($var) Then
    ReDim $AR[UBound($AR)+1][$Ubound2nd]
    For $i = 0 To $Ubound2nd-1
    $AR[UBound($AR)-1][$i] = $var[$i+1]
    Next
    $AR[0][0] += 1
    Else
    SetError(1)
    Return 0
    EndIf
    $n += 1
    Wend
    Else
    Local $AR[1]
    $AR[0] = 0
    While 1
    $line = FileReadLine($fh, $n)
    If @error = -1 Then ExitLoop
    ReDim $AR[UBound($AR)+1]
    $AR[UBound($AR)-1] = $line
    $AR[0] += 1
    $n += 1
    WEnd
    EndIf
    FileClose($fh)
    $ARRAY = $AR
    Return -1
    EndFunc ;==>_FileReadToArray2D

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

    ;==========================================================================================================================================
    ; Function: _FileWriteFromArray2D($FILEPATH, $ARRAY [, $iROWstart=0 [, $iROWend=0 [, $iCOLstart=0 [, $iCOLend=0 [, $DELIM='|']]]]])
    ;
    ; Description: Write 1D/2D array to file, 2D with delimiter between every entry
    ;
    ; Parameter(s): $FILEPATH - path/filename of the file to be write
    ; $ARRAY - array to write from
    ; optional $iROWstart - start row-index, default 0
    ; optional $iROWend - end row-index, default Ubound(array)-1
    ; optional $iCOLstart - start column-index, default 0
    ; optional $iCOLend - end column-index, default Ubound(array,2)-1
    ; optional $DELIM - delimiter for 2D-array entries, default '|'
    ;
    ; Requirement(s): None
    ;
    ; Return Value(s): On Success - Returns -1
    ; On Failure - Returns 0 and sets @error = 1 (given array is'nt array); @error = 2 (unable to open filepath)
    ;
    ; Note: If $iROWstart > $iROWend or $iCOLstart > $iCOLend the values will be swapped among
    ;
    ; Author(s): BugFix ( [email='bugfix@autoit.de'][/email] )
    ;==========================================================================================================================================
    Func _FileWriteFromArray2D($FILEPATH, $ARRAY, $iROWstart=0, $iROWend=0, $iCOLstart=0, $iCOLend=0, $DELIM='|')
    If Not IsArray($ARRAY) Then
    SetError(1)
    Return 0
    EndIf
    Local $Ubound = UBound($ARRAY)
    If $iROWend = 0 Then $iROWend = $Ubound-1
    Local $fh = FileOpen($FILEPATH, 2)
    If $fh = -1 Then
    SetError(2)
    Return 0
    EndIf
    Select
    Case $iROWstart < 0 Or $iROWstart > $Ubound-1
    $iROWstart = 0
    ContinueCase
    Case $iROWend < 0 Or $iROWend > $Ubound-1
    $iROWend = $Ubound-1
    ContinueCase
    Case $iROWstart > $iROWend
    $tmp = $iROWstart
    $iROWstart = $iROWend
    $iROWend = $tmp
    EndSelect
    Local $Ubound2nd = UBound($ARRAY, 2)
    If @error = 2 Then
    For $i = $iROWstart To $iROWend
    FileWriteLine($fh, $ARRAY[$i])
    Next
    Else
    If $iCOLend = 0 Then $iCOLend = $Ubound2nd-1
    Select
    Case $iCOLstart < 0 Or $iCOLstart > $Ubound2nd-1
    $iCOLstart = 0
    ContinueCase
    Case $iCOLend < 0 Or $iCOLend > $Ubound2nd-1
    $iCOLend = $Ubound2nd-1
    ContinueCase
    Case $iCOLstart > $iCOLend
    $tmp = $iCOLstart
    $iCOLstart = $iCOLend
    $iCOLend = $tmp
    EndSelect
    For $i = $iROWstart To $iROWend
    $tmp = ''
    For $k = $iCOLstart To $iCOLend
    If $k < $iCOLend Then
    $tmp &= $ARRAY[$i][$k] & $DELIM
    Else
    $tmp &= $ARRAY[$i][$k]
    EndIf
    Next
    FileWriteLine($fh, $tmp)
    Next
    EndIf
    FileClose($fh)
    Return -1
    EndFunc ;==>_FileWriteFromArray2D

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • _FileWriteFromArray schreibt nicht

    • TJF
    • 22. Januar 2010 um 13:42

    Hallo SEuBo,

    ich bekomme Deine Funktion nicht dazu, dass sie Zeilen als Zeilen und Spalten als Spalten schreibt. Könntest Du mir da bitte nochmal helfen?

    Dank und Gruß
    Thomas

  • _FileWriteFromArray schreibt nicht

    • TJF
    • 20. Januar 2010 um 20:30

    Hi,

    vielen Dank! Das mit dem 5D ist mir nach meinem Posting auch gekommen...

    Die *.txt schreibt jetzt alle Spalten formatiert in Zeilen - was schon mal ein Fortschritt ist... :) Bloß sollten die Spalten als Spalten erscheinen - also anders herum. Genauso wie es _ArrayDisplay anzeigt. Anliegend unten schicke ich mal eine Datei mit 2 Spalten. Das sind Messdaten, die links die Frequenz und rechts den Pegelwert stehen haben. Ich will die linke Reihe auswerten und in das große Array schreiben, dann rechts daneben die (relativen) Pegelwerte in absolute umrechnen und ebenfalls in das Array schreiben. Danach noch drei andere elektrische Werte (Spalten) aus anderen Dateien dazu. Das muss wieder in derselben Form sein, damit alle Meßdaten zusammen von einer Simulationssoftware auf einmal eingelesen werden können. Grundsätzlich soll das Endergebnis dann also so ausschauen wie in der anliegenden Datei - nur mit 5 Spalten. Dabei ist (neben dem Inhalt natürlich) die Formatierung der *.txt das entscheidende...

    Viele Grüße
    Thomas

    Dateien

    _test.txt 4,5 kB – 300 Downloads
  • _FileWriteFromArray schreibt nicht

    • TJF
    • 20. Januar 2010 um 13:20

    Meine letzte Frage erübrigt sich zumindest so:

    [autoit]


    For $r = 0 To 512
    For $c = 0 To 4
    $arATB[$r][$c] = ""
    Next
    Next

    [/autoit]

    Die erste Frage mündet dahin, wie die Funktion _FileWriteFromArray5D formatiert... :?:

    Dank und Gruß an alle!
    Thomas

  • _FileWriteFromArray schreibt nicht

    • TJF
    • 20. Januar 2010 um 09:49

    Die Erstellung der *.txt klappt jetzt grundsätzlich mit den Funktionen, die SEuBo gepostet hat. Vielen Dank! Nur mit den Trennern hapert es noch. S. Anlagen. Ich wollte in 5 Spalten alle Zeilen schreiben...

    Hat noch jemand eine Idee, wie man ähnlich ein leeres Array erstellen kann, das dann mit mehreren eindimensionale Zahlenspalten aus einem anderen Array eingelesen werden kann?

    Dank und Gruß
    Thomas

    Bilder

    • atb.jpg
      • 44,11 kB
      • 282 × 483

    Dateien

    atb.txt 4,49 kB – 317 Downloads
  • _FileWriteFromArray schreibt nicht

    • TJF
    • 20. Januar 2010 um 00:54

    Hallo,

    kann mir jemand sagen warum die *.txt Datei zwar angelegt aber leer bleibt?

    [autoit]


    #include <Array.au3>
    #include <File.au3>
    Dim $T
    Dim $arATB[513][5]

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

    For $r = 0 To 512
    For $c = 0 To 4
    $T = Int(Random(20) + 1)
    $arATB[$r][$c] = $T
    Next
    Next
    ;_ArrayDisplay($arATB,"Test",0)
    _FileWriteFromArray(@ScriptDir & "\atb.txt", 0,0)

    [/autoit]

    Und gleich noch eine Zusatzfrage: Wie könnte das ganze Array "leer" erstellt werden?

    Dank und Gruß
    Thomas

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™