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

Beiträge von subzero007

  • Listview Item erstellen und Label erstellen.

    • subzero007
    • 14. April 2010 um 19:09

    nuts
    Danke...........

    Funktioniert Super

    eine frage noch wenn ich mit:

    [autoit]

    GUICtrlSetData

    [/autoit]


    eine listview editiere
    1|2|3|4|5|6|
    und anschliessend in die gleiche listview folgendes schreibe:
    a|b|c|
    dann sehe ich noch 4|5|6|
    was kann ich dagegen tun?
    das ich nur a|b|c| sehe und nicht a|b|c|4|5|6| ??

  • Listview Item erstellen und Label erstellen.

    • subzero007
    • 14. April 2010 um 18:28

    Hier die Datei: Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Aber verstehe nicht wenn ich das umsetze,
    For $i = 2 To $aArray[0

    dann habe ich doch nur in StringReplace was geändert oder verstehe ich jetzt was falsch?

    Dateien

    hardware.txt 498 Byte – 329 Downloads
  • RegEnumKey und mehrer zeichenfolgen abfragen??

    • subzero007
    • 14. April 2010 um 18:01

    Ok??
    und wie mache ich das?

  • Listview Item erstellen und Label erstellen.

    • subzero007
    • 14. April 2010 um 17:51

    hey,

    so mache ich es ja auch,

    Spoiler anzeigen
    [autoit]

    Func _fileconv($interface)

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

    if not FileExists(@ScriptDir&'\tools\sic\Output\'&$interface) then Return

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

    Dim $sFilePath = @ScriptDir&'\tools\sic\Output\'&$interface
    Dim $outFile = @ScriptDir&'\tools\sic\Output\'&$interface
    Dim $aArray
    _FileReadToArray($sFilePath, $aArray) ; datei in Array lesen
    For $i = 1 To $aArray[0] ; zeilenweise durchgehen
    $aArray[$i] = StringReplace($aArray[$i], ';', '|') ; der String wird ersetzt durch den String mit der Eingabe
    Next
    If FileExists($outFile) Then FileDelete($outFile) ; falls Ausgabedatei bereits vorhanden - löschen
    _FileWriteFromArray($outFile, $aArray, 1) ; vom Array in Ausgabedatei schreiben

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

    Local $hFile = FileOpen(@ScriptDir&'\tools\sic\Output\'&$interface, 0) ; Datei zum lesen öffnen
    If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    _GUICtrlListView_BeginUpdate($ListViewSic) ; Listview sperren
    While True ; Endlosschleife
    $sItem = FileReadLine($hFile) ; Zeile aus der Datei lesen

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

    If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen

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

    GUICtrlCreateListViewItem($sItem, $ListViewSic) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($ListViewSic) ; Listview wieder freigeben
    FileClose($hFile) ; Datei schließen
    EndIf
    ;$zeile1 = FileReadLine($hFile, 1)
    ;$zeile1 = FileReadLine($hFile, 1)
    ;$ListViewSic = GUICtrlCreateListView($zeile1 , 200, 216, 770, 470)

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

    EndFunc

    [/autoit]

    Aber er erstellt aus der ganzen datei die listview einträge und nicht ab der zweiten zeile?

  • Listview Item erstellen und Label erstellen.

    • subzero007
    • 14. April 2010 um 17:25

    Funktioniert soweit
    so jetzt zur meiner letzten frage ;)

    wie kann ich im dazu bringen das er nur ab der zweiten zeile listviewitems aus der csv erzeugt ?


    [autoit]


    Local $hFile = FileOpen(@ScriptDir&'\tools\sic\Output\'&$interface, 0) ; Datei zum lesen öffnen
    If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    _GUICtrlListView_BeginUpdate($ListViewSic) ; Listview sperren
    While True ; Endlosschleife
    $sItem = FileReadLine($hFile) ; Zeile aus der Datei lesen

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

    If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen

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

    GUICtrlCreateListViewItem($sItem, $ListViewSic) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($ListViewSic) ; Listview wieder freigeben
    FileClose($hFile) ; Datei schließen
    EndIf

    [/autoit]
  • Listview Item erstellen und Label erstellen.

    • subzero007
    • 14. April 2010 um 16:49

    ist wirklich nicht schwer mache ich bereits so:

    [autoit]

    Local $hFile = FileOpen(@ScriptDir&'\tools\sic\Output\'&$interface, 0) ; Datei zum lesen öffnen
    If $hFile <> -1 Then ; wenn das öffnen erfolgreich war, dann...
    _GUICtrlListView_BeginUpdate($ListViewSic) ; Listview sperren
    While True ; Endlosschleife
    $sItem = FileReadLine($hFile) ; Zeile aus der Datei lesen
    If @error Then ExitLoop ; wenn das Ende der Datei erreicht ist, dann Endlosschleife verlassen
    GUICtrlCreateListViewItem($sItem, $ListViewSic) ; mit den eingelesenen Daten einen neuen Listview-Eintrag erstellen
    WEnd
    _GUICtrlListView_EndUpdate($ListViewSic) ; Listview wieder freigeben
    FileClose($hFile) ; Datei schließen
    EndIf

    [/autoit]

    aber wie erzeuge ich aus der ersten zeile der csv folgendes?

    [autoit]

    $listview = GUICtrlCreateListView("Systemname|Manufacturer|Product Name|Serial Number|Chassis Type|BIOS Name|BIOS Manufacturer|BIOS Version|Processor Type|Processor Description|Processor Max Clock Speed (Hz)|Logical CPU(s)|Physical CPU(s)|Memory Capacity (MB)|Memory Banks", 1, 1, 198, 198)

    [/autoit]
  • Listview Item erstellen und Label erstellen.

    • subzero007
    • 14. April 2010 um 16:39

    und wie kann ich dies aus der csv erzeugen?

  • Listview Item erstellen und Label erstellen.

    • subzero007
    • 14. April 2010 um 16:12

    Hey;

    habe folgende datei: Hardware.csv
    Systemname|Manufacturer|Product Name|Serial Number|Chassis Type|BIOS Name|BIOS Manufacturer|BIOS Version|Processor Type|Processor Description|Processor Max Clock Speed (Hz)|Logical CPU(s)|Physical CPU(s)|Memory Capacity (MB)|Memory Banks
    Hostname|FUJITSU SIEMENS|SCENIC W|YBES191407|Mini Tower|Version 5.00 R2.03.1567.01|FUJITSU SIEMENS // Phoenix Technologies Ltd.|5.00 R2.03.1567.01 |Intel(R) Pentium(R) 4 CPU 2.80GHz|x86 Family 15 Model 2 Stepping 9|2793|1|1|1024|4


    Möchte aus dieser datei folgedende listiview erstellen.
    Wie mache ich das?

    [autoit]

    $listview = GUICtrlCreateListView("Systemname|Manufacturer|Product Name|Serial Number|Chassis Type|BIOS Name|BIOS Manufacturer|BIOS Version|Processor Type|Processor Description|Processor Max Clock Speed (Hz)|Logical CPU(s)|Physical CPU(s)|Memory Capacity (MB)|Memory Banks", 32, 178, 300, 478)
    GUICtrlCreateListViewItem('Hostname|FUJITSU SIEMENS|SCENIC W|YBES191407|Mini Tower|Version 5.00 R2.03.1567.01|FUJITSU SIEMENS // Phoenix Technologies Ltd.|5.00 R2.03.1567.01 |Intel(R) Pentium(R) 4 CPU 2.80GHz|x86 Family 15 Model 2 Stepping 9|2793|1|1|1024|4', $ListView)

    [/autoit]
  • RegEnumKey und mehrer zeichenfolgen abfragen??

    • subzero007
    • 14. April 2010 um 16:03

    Was mache ich falsch?

    07.au3 (12) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
    $regkey = RegRead($startkey & "\" & $keys[$i][0], "Status")
    $regkey = RegRead($startkey & "\" & ^ ERROR


    Spoiler anzeigen
    [autoit]

    #include <array.au3>
    Local $keys[1][2] = [['']] , $startkey ="HKEY_LOCAL_MACHINE\SOFTWARE\Meinesoftware\packages\", $string = "RC0"

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

    For $i= 1 to 100
    $var = RegEnumKey($startkey, $i)
    If @error Then ExitLoop
    If $keys[UBound($keys) -1][0] <> '' Then ReDim $keys[UBound($keys) +1][2]
    $keys[UBound($keys) -1][0] = $var
    Next

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

    For $i = 0 To UBound($keys) -1
    $regkey = RegRead($startkey & "\" & $keys[$i][0], "Status")
    If @error Then ContinueLoop ; falls für den Schlüssel kein 'Status' vorhanden ==> nächsten Schlüssel lesen
    If $regkey <> $string Then
    $keys[$i][1] = $regkey
    EndIf
    Local $keys[1][4] ; <== zweite Dimension nach Anzahl der zu lesenden Schlüssel
    ;...
    ;...

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

    Local $aReadKey[4] = ["vendor","Version","status","Installdate"]
    ; Du kannst auch $aReadKey als 2D verwenden und nicht gewollte Werte zu den Schlüsseln schreiben (also: ['status','RC0'])
    For $i = 0 To UBound($keys) -1
    For $j = 0 To UBound($aReadKey) -1
    $regkey = RegRead($startkey & "\" & $keys[$i][0], $aReadKey[$j]) ; od. $aReadKey[$j][0]
    If @error Then ContinueLoop
    ;~ If $regkey <> $aReadKey[$j][1] Then
    $keys[$i][$j] = $regkey
    ;~ EndIf
    Next
    Next
    Next

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

    ; ==> Das folgende ist unnütz, da du nur dann Werte einträgst, wenn der Wert <> 'RC0' ist
    ;~ For $i = Ubound($keys) -1 To 0 Step -1
    ;~ If $keys[$i][1] = 'RC0' Then _ArrayDelete($keys, $i)
    ;~ Next

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

    _ArrayDisplay ($keys)

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit]
  • RegEnumKey und mehrer zeichenfolgen abfragen??

    • subzero007
    • 14. April 2010 um 14:29

    Ich weiss nicht ob ich das richtig verstanden habe??

    aber kriege diesen fehler?
    07.au3(2,24) : ERROR: wrong nesting in initializer
    Local $keys[1][2] = ['']


    [autoit]

    #include <array.au3>
    Local $keys[1][2] = [''], $startkey ="HKEY_LOCAL_MACHINE\SOFTWARE\MeineSoftware\", $string = "RC0"

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

    For $i= 1 to 100
    $var = RegEnumKey($startkey, $i)
    If @error Then ExitLoop
    If $keys[UBound($keys) -1][0] <> '' Then ReDim $keys[UBound($keys) +1][2]
    $keys[UBound($keys) -1][0] = $var
    Next

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

    For $i = 0 To UBound($keys) -1
    $regkey = RegRead($startkey & "\" & $keys[$i][0], "Status")
    If @error Then ContinueLoop ; falls für den Schlüssel kein 'Status' vorhanden ==> nächsten Schlüssel lesen
    If $regkey <> $string Then
    $keys[$i][1] = $regkey
    EndIf
    Local $keys[1][4] ; <== zweite Dimension nach Anzahl der zu lesenden Schlüssel
    ;...
    ;...

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

    Local $aReadKey[4] = ["vendor","Version","status","Installdate"]
    ; Du kannst auch $aReadKey als 2D verwenden und nicht gewollte Werte zu den Schlüsseln schreiben (also: ['status','RC0'])
    For $i = 0 To UBound($keys) -1
    For $j = 0 To UBound($aReadKey) -1
    $regkey = RegRead($startkey & "\" & $keys[$i][0], $aReadKey[$j]) ; od. $aReadKey[$j][0]
    If @error Then ContinueLoop
    ;~ If $regkey <> $aReadKey[$j][1] Then
    $keys[$i][$j] = $regkey
    ;~ EndIf
    Next
    Next
    Next

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

    ; ==> Das folgende ist unnütz, da du nur dann Werte einträgst, wenn der Wert <> 'RC0' ist
    ;~ For $i = Ubound($keys) -1 To 0 Step -1
    ;~ If $keys[$i][1] = 'RC0' Then _ArrayDelete($keys, $i)
    ;~ Next

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

    _ArrayDisplay ($keys)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit]
  • RegEnumKey und mehrer zeichenfolgen abfragen??

    • subzero007
    • 14. April 2010 um 13:17

    Danke ;)
    Ja status ist gewollt..
    wie kann ich den die anderen zeichenfolgen mit abfragen?

  • RegEnumKey und mehrer zeichenfolgen abfragen??

    • subzero007
    • 14. April 2010 um 11:56

    Hallo,

    ich möchte alle Unterschlüssel auslesen inklusive einiger zeichenfolgen."vendor" "Version" "status" "Installdate" "..."

    Also so in etwa:
    "HKEY_LOCAL_MACHINE\SOFTWARE\MeineSoftware\Produkt1" "vendor" "Version" "status" "Installdate" "..."
    "HKEY_LOCAL_MACHINE\SOFTWARE\MeineSoftware\Produkt2" "vendor" "Version" "status" "Installdate" "..."
    "HKEY_LOCAL_MACHINE\SOFTWARE\MeineSoftware\Produkt3" "vendor" "Version" "status" "Installdate" "..."
    ..
    ..
    ...


    Habe schon erste versuche aber komme nicht weiter eventuell ist auch mein ganzer ansatz falsch??!!

    [autoit]

    #include <array.au3>

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

    Local $keys [1] [2], $startkey ="HKEY_LOCAL_MACHINE\SOFTWARE\MeineSoftware\", $string = "RC0"

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

    For $i= 1 to 100
    $var = RegEnumKey($startkey, $i)
    If @error <> 0 then ExitLoop
    $keys [$i - 1] [0] = $var
    ReDim $keys [$i + 1] [2]
    Next

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

    For $i = 0 To UBound ($keys) - 1
    $regkey = RegRead ($startkey & "\" & $keys [$i] [0], "Status")
    If @error <> 0 then ExitLoop
    If $regkey <> $string Then
    $keys [$i] [1] = $regkey
    EndIf
    Next

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

    For $i = ubound($keys) - 1 To 0 Step -1
    If $keys[$i][1] = 'RC0' Then _ArrayDelete($keys, $i)
    Next

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

    _ArrayDisplay ($keys)

    [/autoit]
  • array to Clipput

    • subzero007
    • 12. April 2010 um 14:50

    hey,

    möchte gerne etwas in die zwischenablage kopieren und weiss nicht weiter??.

    führe die Funktion _clipfixed() aus.
    mein array wird sauber dargestellt:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Wie kann ich jetzt das in dem Format in die Zwischenablage hinzufügen.
    also ein Array to string ??


    [autoit]

    func _clipfixed()

    Global $array = _ExportListview($liste, 2, "Fixed")
    _ArrayDisplay($array)
    ClipPut($array)

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

    EndFunc

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

    Func _ExportListview($hListView, $subitem, $search)
    $liste = $hListView
    Local $count = _GUICtrlListView_GetItemCount($hListView)
    if @error then Return SetError(1,0,1)
    if $count=0 then Return SetError(1,0,2)
    Local $colcount = _GUICtrlListView_GetColumnCount($hListView)
    Local $aret[$count][$colcount] ;2D Rückgabearray
    Local $atext, $counter = 0

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

    For $i = 0 To $count - 1 ;loop durch die Items
    $atext = _GUICtrlListView_GetItemTextArray($hListView, $i)
    ;_arraydisplay($atext)
    If $atext[$subitem + 1] = $search Then ; bei gefunden Searchstring im bezeichneten Subitem
    For $x = 1 To $atext[0] ;loop durchs Array der Subitems
    $aret[$counter][$x - 1] = $atext[$x] ; "D Rückgabearray befüllen
    Next
    ;_arraydisplay($aret)
    $counter += 1
    EndIf
    Next
    if $counter = 0 then Return SetError(1,0,3)
    ReDim $aret[$counter][$colcount]

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

    Return $aret

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

    EndFunc

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

    Dateien

    array.JPG 37,89 kB – 0 Downloads
  • Listview Makieren und Kopieren?

    • subzero007
    • 9. April 2010 um 21:31

    Hallo,

    besteht die möglichkeit
    "In einer Listview Makieren und kopieren ?"

  • Bestimmte zeile aus Listview Exportieren...

    • subzero007
    • 9. April 2010 um 17:10

    danke danke

    habe es endlich gelöst und verstanden ...;-)

  • Bestimmte zeile aus Listview Exportieren...

    • subzero007
    • 9. April 2010 um 17:00

    die export funktion von Bugfix funktioniert.

    aber leider kriege ich das mit den Fixed nicht hin??

    was mache ich falsch oder was läuft falsch?

  • Bestimmte zeile aus Listview Exportieren...

    • subzero007
    • 9. April 2010 um 16:43

    danke jetzt stürtzt er nicht ab aber was ist daran falsch?

    er schreibt die datei nicht?

    [autoit]

    func _exportfixed()

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

    $hWnd = $Liste
    $path = FileSaveDialog('ListView-Export speichern', @ScriptDir, "CSV Datei (*.csv)")
    If @error Then Return MsgBox(0, 'Fehler', 'Keine Zieldatei gewählt.')
    ;FileWrite($path & ".csv", _GUICtrlListView_Export($hWnd, 1, ','))

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

    Global $array = _ExportListview($liste, 1, "Fixed")
    ;_ArrayDisplay($array)

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

    _FileWriteFromArray2D($path, $array)

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

    EndFunc

    [/autoit]
  • Bestimmte zeile aus Listview Exportieren...

    • subzero007
    • 9. April 2010 um 16:06

    hey,

    führe das script jetzt so aus:

    Spoiler anzeigen
    [autoit]

    func _exportfixed()

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

    $hWnd = $Liste
    $path = FileSaveDialog('ListView-Export speichern', @ScriptDir, "CSV Datei (*.csv)")
    If @error Then Return MsgBox(0, 'Fehler', 'Keine Zieldatei gewählt.')
    ;FileWrite($path & ".csv", _GUICtrlListView_Export($hWnd, 1, ','))

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

    Global $array = _ExportListview($liste, 1, "Fixed")
    ;_ArrayDisplay($array)

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

    _FileWriteFromArray2D($path& ".csv", $array)

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

    EndFunc

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

    Func _ExportListview($hListView, $subitem, $search)

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

    Local $count = _GUICtrlListView_GetItemCount($hListView)
    Local $colcount = _GUICtrlListView_GetColumnCount($hListView)
    Local $aret[$count][$colcount] ;2D Rückgabearray
    Local $atext, $counter = 0

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

    For $i = 0 To $count - 1 ;loop durch die Items
    $atext = _GUICtrlListView_GetItemTextArray($hListView, $i)
    ;_arraydisplay($atext)
    If $atext[$subitem + 1] = $search Then ; bei gefunden Searchstring im bezeichneten Subitem
    For $x = 1 To $atext[0] ;loop durchs Array der Subitems
    $aret[$counter][$x - 1] = $atext[$x] ; "D Rückgabearray befüllen
    Next
    ;_arraydisplay($aret)
    $counter += 1
    EndIf
    Next
    ReDim $aret[$counter][$colcount]

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

    Return $aret

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

    EndFunc ;==>_ExportListview

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

    Func _FileWriteFromArray2D($FILEPATH, $array, $iROWstart = 0, $iROWend = 0, $iCOLstart = 0, $iCOLend = 0, $DELIM = ',')

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

    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 ;=

    [/autoit]


    und kriege einen fehler:
    v05.au3 (36) : ==> Array variable subscript badly formatted.:
    ReDim $aret[$counter][$colcount]
    ReDim $aret[^ ERROR
    ->16:05:03 AutoIT3.exe ended.rc:1

    und die Gui schliesst sich??


    Einen Vorschlag!!

  • Bestimmte zeile aus Listview Exportieren...

    • subzero007
    • 9. April 2010 um 15:13

    was mache ich falsch?
    er schreibt auch keinen c:\test.txt??

    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GuiListView.au3>
    #include <array.au3>
    ;Opt('MustDeclareVars', 1)

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

    $Debug_LV = False ; Check ClassName being passed to ListView functions, set to True and use a handle to another control to see it work

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

    _Main()

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

    Func _Main()
    Local $hListView

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

    GUICreate("ListView Get Item Text Array", 400, 300)

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

    $hListView = GUICtrlCreateListView("col1|col2|col3", 2, 2, 394, 268)
    GUICtrlCreateListViewItem("line1|data|more1", $hListView)
    GUICtrlCreateListViewItem("line2|data|more2", $hListView)
    GUICtrlCreateListViewItem("line3|data3|more3", $hListView)
    GUICtrlCreateListViewItem("line4|data|more4", $hListView)
    GUICtrlCreateListViewItem("line5|data5|more5", $hListView)
    GUICtrlCreateListViewItem("line6|data|more5", $hListView)
    GUISetState()

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

    global $array=_ExportListview($hlistview, 1, "data")
    _ArrayDisplay($array)

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

    ; Loop until user exits
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
    EndFunc ;==>_Main

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

    Func _ExportListview($hlistview, $subitem, $search)

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

    local $count = _GUICtrlListView_GetItemCount($hlistview)
    local $colcount = _GUICtrlListView_GetColumnCount($hListView)
    local $aret[$count][$colcount] ;2D Rückgabearray
    Local $atext, $counter= 0

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

    for $i = 0 to $count -1 ;loop durch die Items
    $atext=_GUICtrlListView_GetItemTextArray($hlistview, $i)
    ;_arraydisplay($atext)
    if $atext[$subitem+1] = $search then ; bei gefunden Searchstring im bezeichneten Subitem
    for $x=1 to $atext[0] ;loop durchs Array der Subitems
    $aret[$counter][$x-1]=$atext[$x] ; "D Rückgabearray befüllen
    next
    ;_arraydisplay($aret)
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, $DELIM=',')
    $counter +=1
    EndIf
    next
    Redim $aret[$counter][$colcount]

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

    Return $aret

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

    endfunc

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

    Func _FileWriteFromArray2D($FILEPATH, $ARRAY, $iROWstart=0, $iROWend=0, $iCOLstart=0, $iCOLend=0, $DELIM=',')

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

    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

    [/autoit]


    kriege folgenden fehler :

    [autoit]

    c:\01.au3(49,44) : WARNING: $ARRAY: possibly used before declaration.
    _FileWriteFromArray2D('c:\test.txt', $ARRAY,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    c:\01.au3(49,56) : WARNING: $iROWstart: possibly used before declaration.
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, $iROWstart=
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    c:\01.au3(49,68) : WARNING: $iROWend: possibly used before declaration.
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, $iROWstart=0, $iROWend=
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    c:\01.au3(49,82) : WARNING: $iCOLstart: possibly used before declaration.
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, $iROWstart=0, $iROWend=0, $iCOLstart=
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    c:\01.au3(49,94) : WARNING: $iCOLend: possibly used before declaration.
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, $iROWstart=0, $iROWend=0, $iCOLstart=0, $iCOLend=
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    c:\01.au3(49,104) : WARNING: $DELIM: possibly used before declaration.
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, $iROWstart=0, $iROWend=0, $iCOLstart=0, $iCOLend=0, $DELIM=
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    c:\01.au3(24,54) : WARNING: $ARRAY: declared global in function only. Prefer top of file.
    global $array=_ExportListview($hlistview, 1, "data")
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    c:\01.au3 - 0 error(s), 7 warning(s)
    ->15:11:39 AU3Check ended.rc:1
    >Running:(3.3.0.0):C:\Program Files\AutoIt3\autoit3.exe "c:\01.au3"
    c:\01.au3 (49) : ==> Variable used without being declared.:
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, $iROWstart=0, $iROWend=0, $iCOLstart=0, $iCOLend=0, $DELIM=',')
    _FileWriteFromArray2D('c:\test.txt', $ARRAY, ^ ERROR
    ->15:11:40 AutoIT3.exe ended.rc:1
    +>15:11:41 AutoIt3Wrapper Finished
    >Exit code: 1 Time: 2.361

    [/autoit]
  • Bestimmte zeile aus Listview Exportieren...

    • subzero007
    • 9. April 2010 um 14:19

    Danke,
    noch zwei kleinigkeiten...
    wie kriege ich es ',' getrennt?
    Und alles in eine TXT datei...schreibe?

    Hast du noch einen vorschlag wie ich meine labels in die txt übernehmen kann?
    "Hostname,LW,Type...."

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™