Das ganze Drumrum (Musikplayer) um die Bass.dll lässt sich nicht per UDF darstellen.
Einen gutes, auskommentiertes Beispiel eines Musikplayers auf bass.dll Basis wäre sinvoller.
Das ist jetzt aber nur meine Meinung (bevor es gar niemand sagt ...). ![]()
Das ganze Drumrum (Musikplayer) um die Bass.dll lässt sich nicht per UDF darstellen.
Einen gutes, auskommentiertes Beispiel eines Musikplayers auf bass.dll Basis wäre sinvoller.
Das ist jetzt aber nur meine Meinung (bevor es gar niemand sagt ...). ![]()
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, ','))
Global $array = _ExportListview($liste, 1, "Fixed")
;_ArrayDisplay($array)
_FileWriteFromArray2D($path& ".csv", $array)
[/autoit][autoit][/autoit][autoit]EndFunc
[/autoit]
Der zweite Parameter von _ExportListview
Laut Bild im Startpost müsste hier eine 2 rein.
Dort musst du quasi eintragen in welcher Listviewspalte (der Subitemindex) gesucht werden soll.
P.S. Das Beispiel von Autobert funktioniert auch .... was da bei deinem Skript alles passiert kann ich nicht sagen. ![]()
Also subzero, du solltest versuchen die Programmabläufe zu verstehen und erst dann die Funkionen reinkopieren.
Das ist nicht böse gemeint, aber sonst wird das nichts!
Meine Funktion bricht mit einem Fehler ab (Rückgabe: 1, 2 oder 3 - schaus dir in einer msgbox mal an) und gibt somit kein Array zurück - anschließend steigt die Funktion von Bugfix auch aus (die hat nämlich auch ein Errorhandling) und schreibt kein Testfile!
Fehler können auftreten wenn: $hlistview gar kein Handle von einem Listview ist (Listviewfunktionen auf Fehler prüfen), kein Treffer gefunden wird (das ist dein Fehler), kein Item im Listview ist.
Func _ExportListview($hListView, $subitem, $search)
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
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]
Return $aret
[/autoit] [autoit][/autoit] [autoit]EndFunc ;==>_ExportListview
[/autoit]
Mit Errormanagment!
Wo ist das Listview? Welche Gui? In meiner Beispielfunktion fehlt das komplette errorhandling, da kann das schon vorkommen. ![]()
https://autoit.de/index.php?page…36658#post36658
_Filewritefromarray2D sollte dir weiterhelfen.
Oder gleich ein 1D Array mit "," als Trennzeichen zurückgeben.
Das mit den Labels verstehe ich jetzt nicht.
$objWMIService=ObjGet("winmgmts:\\.\root\cimv2")
$objNewPort=$objWMIService.Get("Win32_TCPIPPrinterPort")
$objNewPort2=$objNewPort.SpawnInstance_
$objNewPort2.Name = "IP_132.1.83.12"
$objNewPort2.Protocol = 1
$objNewPort2.HostAddress = "127.0.0.1"
$objNewPort2.PortNumber = "9100"
$objNewPort2.SNMPEnabled = False
$objNewPort2.Put_
So gehts bei mir.
Na mit Sicherheit, nur ob es auf dein Problem passt?
Vielleicht so:
#AutoIt3Wrapper_au3check_parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <array.au3>
;Opt('MustDeclareVars', 1)
$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
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()
local $array=_ExportListview($hlistview, 1, "data")
_ArrayDisplay($array)
; Loop until user exits
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
GUIDelete()
EndFunc ;==>_Main
Func _ExportListview($hlistview, $subitem, $search)
local $count = _GUICtrlListView_GetItemCount($hlistview)
local $colcount = _GUICtrlListView_GetColumnCount($hListView)
local $aret[$count][$colcount] ;2D Rückgabearray
Local $atext, $counter= 0
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]
Return $aret
endfunc
Kannst dir die Änderungen in den Arrays durch _Arraydisplay (auskommentiert) ja anschauen.
In der Funktion (selbstgeschrieben?) gibt es 3 Durchgänge, wieso und weshalb kann ich anhand dieser Funktion nicht sagen.
Welche Irrlicht Funktionen willst du nutzen? Hier mal reingeschaut: https://autoit.de/index.php?page…91&pageNo=1 ?
Nichts aber warum sollte diese Anweisung 4 mal aufgerufen werden?
Woran scheiterts denn? In deinem Loop durch die Listvieitems musst du ein bestimmtest Subitem (2) mit dem String "fixed" vergleichen.
[autoit]if _GUICtrlListView_GetItemText($lisviewhandle, $i, 2) = "fixed" then
[/autoit]Damit man sich für den einfachen Stringabgleich nicht durch dein Skript wühlen muss? ![]()
StringInStr
[/autoit]?
Kannst du die Datei mal anhängen?
Das geht schon ![]()
Ich finde es besser, sollte es möglich sein, bei den schnellen autoiteigenen String-Funktionen zu bleiben aber ok:
[autoit]
$search = "Hallo das ist ein Test"
$smatch ="Test"
If Not StringRegExp($search,$smatch) Then
MsgBox(1, "", "Kein Treffer gefunden")
ElseIf StringRegExp($search,$smatch) then
MsgBox(1, "", "Treffer")
endif
So dann - bei dir stimmen vielleicht die Variabeln nicht?
Das geht über die shell32.dll, was die genau macht musst du bei MS nachfragen. ![]()
#include <File.au3>
$path = @ScriptDir & '\test.txt'
_FilePrint($path)
Ich hatte mich hier mal um eine Listview-Druckansicht bemüht:
https://autoit.de/index.php?page…view#post111403
So im nachhinein betrachtet fehlt mir der wirkliche HTML-Durchblick ![]()
Worin liegt da genau die Praixsrelevanz?