Listview e Sırayla Toplu Listeleme

Programlama dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
darendeli
Byte3
Byte3
Mesajlar: 147
Kayıt: 06 Haz 2016, 16:55

Listview e Sırayla Toplu Listeleme

Mesaj gönderen darendeli » 11 Eyl 2018, 02:17

Siteden Verileri Listeye Aktarmak icin Ugrastım Listeye Alıyorda Alt alta Sıralatamadım... Yardımcı Olursaniz sevinirim Hayırlı Geceler...

Kod: Tümünü seç

#include <IE.au3>
#include <MsgBoxConstants.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>



 $gui = GUICreate("Maç Listesi", 425, 238, 192, 124)
    Local $idListview = GUICtrlCreateListView("Sıra                                  |   Ev Sahibi Takım      |     Deplasman Takımı         ", 10, 10, 450, 100) ;,$LVS_SORTDESCENDING)
    Local $idItem1 = GUICtrlCreateListViewItem("||", $idListview)
    Local $idItem2 = GUICtrlCreateListViewItem("||", $idListview)
    Local $idItem3 = GUICtrlCreateListViewItem("||", $idListview)
    GUISetState(@SW_SHOW)
    GUICtrlSetData($idItem2, "||")
    GUICtrlSetData($idItem3, "||")
    GUICtrlDelete($idItem1)
    $buton = GUICtrlCreateButton("Maçları Listele", 100, 150, 200, 30)

GUISetState()


While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $buton
			_MaclariListele()
	EndSwitch
WEnd

Func _MaclariListele()
	Local $oIE = _IECreate("http://www.statarea.com/predictions",0,0)
Local $oTags = _IETagNameGetCollection($oIE, "div")
For $oTag In $oTags
     if $oTag.GetAttribute("class") == "hostteam" Then
		 $hostteam = $oTag.innerTEXT
		 If $hostteam <> '' Then
		 ConsoleWrite($hostteam & @CRLF)
         GUICtrlSetData($idItem2,'|'&$hostteam )
		 EndIf
EndIf
Next


_IEQuit($oIE)

EndFunc
Program Yazmanın En Güzel Yanı Birilerinin Bu Programlardan Faydalandığını Görmektir..



anxious
Byte2
Byte2
Mesajlar: 72
Kayıt: 11 Mar 2015, 07:56

Re: Listview e Sırayla Toplu Listeleme

Mesaj gönderen anxious » 19 Eyl 2018, 13:53

Tahminim GUICtrlCreateListViewItem ile yapılır diye düşünüyorum ama Listview ile hiç çalışmadım.
Açıkcası bende merak ediyorum biryerden alınan veriyi Listview de alt alta nasıl sıralanır @BlueLife yardımcı olacaktır.

Kullanıcı avatarı
BlueLife
Byte3
Byte3
Mesajlar: 148
Kayıt: 29 Ağu 2014, 20:42

Re: Listview e Sırayla Toplu Listeleme

Mesaj gönderen BlueLife » 20 Eyl 2018, 10:53

@darendeli

Örnekğindeki IE udfleri benim sistemimde çalışmıyor. Bu konu için sana yardımcı olamam. Ben listview için genellikle verieleri bir arraya dizip kullanıyorum. Eğer alfebetik sıralama yapmak istersen, arraydaki verileri _ArraySort gibi komutlarla sıralayabilir ve listedeki verileri silip yeniden oluşturabilirsin... Tabi veriler sabitse listeye yansıtmadan arrayda istediğin işlemleri yapıp sonradan listeye yansıtabilirsin.
Liste + array için örnek;

Kod: Tümünü seç

#include <IE.au3>
;~ #include <MsgBoxConstants.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <Array.au3>


Global $Separator = Chr(124) ; | Vertica
Global $MY_LIST,$LIST_VIEW_ID

Global $gui,$buton


$gui = GUICreate("Maç Listesi", 425, 238, 192, 124)
$LIST_VIEW_ID = GUICtrlCreateListView("Sıra                                  |   Ev Sahibi Takım      |     Deplasman Takımı         ", 10, 10, 450, 100) ;,$LVS_SORTDESCENDING)
$buton = GUICtrlCreateButton("Maçları Listele", 100, 150, 200, 30)
GUISetState(@SW_SHOW,$gui)

_ADD_LIST(1,"FenerBahçe","Galatasaray")
_ADD_LIST(2,"Turkey","Russia")
; ....

While 1
	Switch GUIGetMsg()
		Case -3
			Exit
		Case $buton
			_ArrayDisplay($MY_LIST)
;~ 			_MaclariListele()
	EndSwitch
WEnd

;~ Func _MaclariListele()
;~ 	Local $oIE = _IECreate("http://www.statarea.com/predictions",0,1)
;~ Local $oTags = _IETagNameGetCollection($oIE, "div")
;~ For $oTag In $oTags
;~      if $oTag.GetAttribute("class") == "hostteam" Then
;~ 		 $hostteam = $oTag.innerTEXT
;~ 		 If $hostteam <> '' Then
;~ 		 ConsoleWrite($hostteam & @CRLF)
;~          GUICtrlSetData($idItem2,'|'&$hostteam )
;~ 		 EndIf
;~ EndIf
;~ Next

;~ _IEQuit($oIE)

;~ EndFunc

Func _ADD_LIST($Row,$Team1,$Team2)
	;0 = Row, 1 = Team1, 2 = Team2, 3 = ItemID
	If IsArray($MY_LIST) = 0 Then
		Dim $MY_LIST[10][4] = [[1]]
	Else
		$MY_LIST[0][0] += 1
		If $MY_LIST[0][0] >= UBound($MY_LIST) Then
			Redim $MY_LIST[$MY_LIST[0][0] + 10][4]
		EndIf
	EndIf
	$MY_LIST[$MY_LIST[0][0]][0] = $Row
	$MY_LIST[$MY_LIST[0][0]][1] = $Team1
	$MY_LIST[$MY_LIST[0][0]][2] = $Team2

	$MY_LIST[$MY_LIST[0][0]][3] = GUICtrlCreateListViewItem($Row & $Separator & $Team1 & $Separator & $Team2, $LIST_VIEW_ID)
EndFunc

Cevapla