hogfan Posted August 16, 2012 Posted August 16, 2012 I am using the native listview control and am looking for the quickest way to loop through the items in the listview control, counting how many times a value exists. For example, My listview has 3 columns. Column 1 - Name Column 2 - State Column 3 - Resident/Non-resident I need loop through the listiview, checking the third column to count how many are flagged as resident. Is there a good quick way of doing this directly by seaching through the listview, or will I have to read all of hte info into an array first and they search the array. I am looking for the quickest way to do this as I am doing this at work, for work but don't have any official time to work on it, so I am working on it between other projects. Any suggestions appreciated. -hogfan
Shane0000 Posted August 16, 2012 Posted August 16, 2012 (edited) I think the below should work, When the loop exits, $Cnt should be the number of 'Resident's found $i = 0 $Cnt = 0 While $i = _GUICtrlListView_FindText($hListView, "Resident",$i) $i += 1 ;start next search after the current result $Cnt += 1 Wend Edited August 16, 2012 by Shane0000
BrewManNH Posted August 17, 2012 Posted August 17, 2012 Here's one way of doing it. #include <GUIConstantsEx.au3> #include <guilistview.au3> $Count = 0 GUICreate("Test Listview") $listview = GUICtrlCreateListView("Name|State|Resident/Non-Resident", 10, 70, 380, 320) For $I = 0 To 20 If Mod($I, 2) Then $Res = "R" Else $Res = "N" EndIf GUICtrlCreateListViewItem("Name" & $I & "|State" & $I & "|" & $Res, $listview) Next $Button = GUICtrlCreateButton("Count", 10, 10) GUISetState() While 1 $msg = GUIGetMsg() Switch $msg Case $GUI_EVENT_CLOSE Exit Case $Button For $I = 0 To _GUICtrlListView_GetItemCount($listview) - 1 $Array = _GUICtrlListView_GetItemTextArray($listview, $I) If $Array[3] = "R" Then $Count += 1 Next ConsoleWrite("Count = " & $Count & @CRLF) EndSwitch WEnd If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator
hogfan Posted August 17, 2012 Author Posted August 17, 2012 @BrewManNHThanks for that example. That got me going.-hogfan
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now