Modify ↓
Opened 16 years ago
Closed 16 years ago
#759 closed Bug (Fixed)
_GUICtrlListView_GetItemTextString() --> BIG speed optimize
Reported by: | Zedna | Owned by: | Jpm |
---|---|---|---|
Milestone: | 3.3.1.0 | Component: | Standard UDFs |
Version: | 3.2.12.1 | Severity: | None |
Keywords: | Cc: |
Description
$iSelected = _GUICtrlListView_GetNextItem($hWnd)
should be before FOR NEXT loop and not inside.
When I need to get text of all listview items then this function will be called many times: number of rows * number of columns!
original:
Func _GUICtrlListView_GetItemTextString($hWnd, $iItem = -1) If $Debug_LV Then _GUICtrlListView_ValidateClassName($hWnd) Local $sRow = "", $SeparatorChar = Opt('GUIDataSeparatorChar') If $iItem <> -1 Then ; get row For $x = 0 To _GUICtrlListView_GetColumnCount($hWnd) - 1 $sRow &= _GUICtrlListView_GetItemText($hWnd, $iItem, $x) & $SeparatorChar Next Return StringTrimRight($sRow, 1) Else ; get current row selected For $x = 0 To _GUICtrlListView_GetColumnCount($hWnd) - 1 $sRow &= _GUICtrlListView_GetItemText($hWnd, _GUICtrlListView_GetNextItem($hWnd), $x) & $SeparatorChar Next Return StringTrimRight($sRow, 1) EndIf EndFunc ;==>_GUICtrlListView_GetItemTextString
optimized:
Func _GUICtrlListView_GetItemTextString($hWnd, $iItem = -1) If $Debug_LV Then _GUICtrlListView_ValidateClassName($hWnd) Local $sRow = "", $SeparatorChar = Opt('GUIDataSeparatorChar') If $iItem <> -1 Then ; get row For $x = 0 To _GUICtrlListView_GetColumnCount($hWnd) - 1 $sRow &= _GUICtrlListView_GetItemText($hWnd, $iItem, $x) & $SeparatorChar Next Return StringTrimRight($sRow, 1) Else ; get current row selected $iSelected = _GUICtrlListView_GetNextItem($hWnd) For $x = 0 To _GUICtrlListView_GetColumnCount($hWnd) - 1 $sRow &= _GUICtrlListView_GetItemText($hWnd, $iSelected, $x) & $SeparatorChar Next Return StringTrimRight($sRow, 1) EndIf EndFunc ;==>_GUICtrlListView_GetItemTextString
Attachments (0)
Change History (2)
comment:1 Changed 16 years ago by Jpm
comment:2 Changed 16 years ago by Jpm
- Milestone set to 3.3.1.0
- Owner changed from Gary to Jpm
- Resolution set to Fixed
- Status changed from new to closed
Fixed in version: 3.3.1.0
Guidelines for posting comments:
- You cannot re-open a ticket but you may still leave a comment if you have additional information to add.
- In-depth discussions should take place on the forum.
For more information see the full version of the ticket guidelines here.
Note: See
TracTickets for help on using
tickets.
even smaller with