Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Programlama ve Script dilleri konusunda bilgi paylaşım alanıdır.
darendeli
Kilobyte1
Kilobyte1
Mesajlar: 202
Kayıt: 06 Haz 2016, 16:55
Teşekkür etti: 1 kez
Teşekkür edildi: 6 kez

Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen darendeli »

Resim

Covid-19 Tablosunu Takip Edenler için Yazdığım Küçük Bir Program
LİNK = Darendeli TÜRKiYE COVID-19 Hasta Tablosu
ŞİFRE = darendeli

[*]Version 1.1 Yenilikler

Geç Veri Yükleme Fixlendi
Her Yüklemede İnputları Yenileme Özelliği Eklendi...
En son darendeli tarafından 26 Kas 2020, 23:46 tarihinde düzenlendi, toplamda 5 kere düzenlendi.
Kullanıcı avatarı
trasmus
Megabyte2
Megabyte2
Mesajlar: 1195
Kayıt: 14 May 2010, 14:50
cinsiyet: Erkek

Re: Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen trasmus »

Programda sorun çıktı herhalde.
Kullanıcı avatarı
velociraptor
Yottabyte4
Yottabyte4
Mesajlar: 46474
Kayıt: 14 Mar 2006, 02:33
cinsiyet: Erkek
Teşekkür etti: 4602 kez
Teşekkür edildi: 3916 kez

Re: Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen velociraptor »

Link uçtuğuna göre olasıdır
darendeli
Kilobyte1
Kilobyte1
Mesajlar: 202
Kayıt: 06 Haz 2016, 16:55
Teşekkür etti: 1 kez
Teşekkür edildi: 6 kez

Re: Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen darendeli »

S.a Link Yenilendi..Deneyip Program hakkındaki Görüslerinizi Geri Dönüs Yaparsanız Sevinirim....
Kullanıcı avatarı
velociraptor
Yottabyte4
Yottabyte4
Mesajlar: 46474
Kayıt: 14 Mar 2006, 02:33
cinsiyet: Erkek
Teşekkür etti: 4602 kez
Teşekkür edildi: 3916 kez

Re: Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen velociraptor »

Verileri biraz yavaş alıyor ama çalışıyor , ilk resmi yeniledim, eline sağlık
darendeli
Kilobyte1
Kilobyte1
Mesajlar: 202
Kayıt: 06 Haz 2016, 16:55
Teşekkür etti: 1 kez
Teşekkür edildi: 6 kez

Re: Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen darendeli »

Teşekkürler.. yeni versiyonda eksiklikler giderilecektir..
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 269
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 24 kez

Re: Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen BlueLife »

@Darendeli
Ben win7 kullanıyorum ve bende malesef veri alınmadı. Kodlamada ie udf si kullanmışsın lakin bu her sistemde malesef bu ie komutları düzgün çalışmıyor. Ie udf si yerine sitenin kaynak kodlarını okuyup verileri almak daha avantajlıdır. Senin için ufak bir fonsiyon yazdım. Inceleyip bu şekilde programını geliştirirsen daha verimli çalışacaktır.

Program için teşekkürler. Kolay gelsin...

Kod: Tümünü seç

#include <Array.au3>

Local $SonDurum = _Covid19_Son_Durum()
If @error <> 0 Then
	MsgBox(16, "", "Hata!")
	Exit
EndIf

MsgBox(4096, "", $SonDurum)

Local $Array = StringSplit($SonDurum, @LF, 1)
_ArrayDisplay($Array)
Exit

Func _Covid19_Son_Durum()
	Local $InetRead = StringStripWS(BinaryToString(InetRead("https://covid19.saglik.gov.tr", 1)), 8)

	Local $Instr = StringInStr($InetRead, "varsondurumjson=[{", 0, -1)
	If $Instr = 0 Then Return SetError(1, 0, 0)
	$InetRead = StringTrimLeft($InetRead, $Instr + 17)

	$Instr = StringInStr($InetRead, "}")
	If $Instr = 0 Then Return SetError(2, 0, 0)
	$InetRead = StringLeft($InetRead, $Instr - 1)

	$InetRead = StringReplace($InetRead, '",', @LF)
	$InetRead = StringReplace($InetRead, Chr(34), "")

	Return $InetRead
EndFunc   ;==>_Covid19_Son_Durum
darendeli
Kilobyte1
Kilobyte1
Mesajlar: 202
Kayıt: 06 Haz 2016, 16:55
Teşekkür etti: 1 kez
Teşekkür edildi: 6 kez

Re: Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen darendeli »

@BlueLife Tesekkurler eve gecince bakacam..
Kullanıcı avatarı
trasmus
Megabyte2
Megabyte2
Mesajlar: 1195
Kayıt: 14 May 2010, 14:50
cinsiyet: Erkek

Re: Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen trasmus »

Web üzerinden tek seferde tüm veriler çekilebilir. Sayfa kaynak kodunda gerekli veriler var. Php ve html ile ben de yapabilirim.
darendeli
Kilobyte1
Kilobyte1
Mesajlar: 202
Kayıt: 06 Haz 2016, 16:55
Teşekkür etti: 1 kez
Teşekkür edildi: 6 kez

Re: Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen darendeli »

S.a Vermis oldugunuz kodu buraya kadar düzenledim bu verileri inputlara sırayla nasıl aktarmamız gerekli hepsini ayrı inputa

Kod: Tümünü seç

#include <Array.au3>

Local $SonDurum = _Covid19_Son_Durum()
If @error <> 0 Then
	MsgBox(16, "", "Hata!")
	Exit
EndIf

MsgBox(4096, "", $SonDurum)
Local $Array = StringSplit($SonDurum, @LF, 1)
Exit

Func _Covid19_Son_Durum()
	Local $InetRead = StringStripWS(BinaryToString(InetRead("https://covid19.saglik.gov.tr/", 1)), 8)
	Local $Instr = StringInStr($InetRead, "varsondurumjson=[{", 0, -1)
	If $Instr = 0 Then Return SetError(1, 0, 0)
	$InetRead = StringTrimLeft($InetRead, $Instr + 17)
	$Instr = StringInStr($InetRead, ',"toplam_yogun_bakim":"","toplam_entube":"","hastalarda_zaturre_oran":"3,8","agir_hasta_sayisi":"3.610","yatak_doluluk_orani":"54,7","eriskin_yogun_bakim_doluluk_orani":"70,8","ventilator_doluluk_orani":"37,6","ortalama_filyasyon_suresi":"","ortalama_temasli_tespit_suresi":"11","filyasyon_orani":"99,6"')
	If $Instr = 0 Then Return SetError(2, 0, 0)
	$InetRead = StringLeft($InetRead, $Instr - 1)
	$InetRead = StringRegExpReplace($InetRead ,"([^0-9.]+)", @LF)
	$InetRead = StringReplace($InetRead, '",', @LF)
	$InetRead = StringReplace($InetRead, Chr(34), "")
	Return $InetRead
EndFunc   ;==>_Covid19_Son_Durum
darendeli
Kilobyte1
Kilobyte1
Mesajlar: 202
Kayıt: 06 Haz 2016, 16:55
Teşekkür etti: 1 kez
Teşekkür edildi: 6 kez

Re: Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen darendeli »

Win7 Sorunu için Tekrar Link Yenilendi Win 7de Deneyebilirmisiniz..
Kullanıcı avatarı
trasmus
Megabyte2
Megabyte2
Mesajlar: 1195
Kayıt: 14 May 2010, 14:50
cinsiyet: Erkek

Re: Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen trasmus »

Windows7'de önceki sürümü denemiştim, hiçbir sıkıtı yoktu.
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 269
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 24 kez

Re: Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen BlueLife »

@trasmus
Program arkaplanda gizli olarak internet exploreri çalıştırıp, internet explorer üzerinden veri alıyordu. Bazı sistemlerde bu yöntem malesef düzgün çalışmıyor. Yani bendeki win7de düzgün çalışmamıştı. Tekrar denemedim.. Başka win7 de düzgün çalışabilir. Tabi bazen düzgün çalışıp bazen çalışmayabilir.

@darendeli
Son verdiğin örnekte verilerin yerleri değişirse hata oluşacaktır. Array üzerinden bir döngüde arama yaparak inputlara yansıtabilirsin.
Form örneği aşağıda. Kolay gelsin...

Kod: Tümünü seç

;#include <Array.au3>

Opt("MustDeclareVars", 1)
Local $Form1 = GUICreate("Form1", 500, 290)
Local $Tarih = GUICtrlCreateLabel("", 15, 15, 100, 22)

GUICtrlCreateLabel("BUGUN", 190, 15, 125, 22, 1)
GUICtrlCreateLabel("TOPLAM", 330, 15, 125, 22, 1)
; -------
GUICtrlCreateLabel("", 15, 40, 470, 50, 8)
GUICtrlSetState(-1,128)
GUICtrlCreateLabel("TEST SAYISI", 24, 55, 160, 22, 512)
Local $input1 = GUICtrlCreateInput("", 190, 55, 125, 22)
Local $input2 = GUICtrlCreateInput("", 330, 55, 125, 22)
; -------
GUICtrlCreateLabel("", 15, 100, 470, 50, 8)
GUICtrlSetState(-1,128)
GUICtrlCreateLabel("HASTA SAYISI", 24, 115, 160, 22, 512)
Local $input3 = GUICtrlCreateInput("", 190, 115, 125, 22)
Local $input4 = GUICtrlCreateInput("", 330, 115, 125, 22)
; -------
GUICtrlCreateLabel("", 15, 160, 470, 50, 8)
GUICtrlSetState(-1,128)
GUICtrlCreateLabel("VEFAT SAYISI", 24, 175, 160, 22, 512)
Local $input5 = GUICtrlCreateInput("", 190, 175, 125, 22)
Local $input6 = GUICtrlCreateInput("", 330, 175, 125, 22)
; -------
GUICtrlCreateLabel("", 15, 220, 470, 50, 8)
GUICtrlSetState(-1,128)
GUICtrlCreateLabel("IYILESEN HASTA SAYISI", 24, 235, 160, 22, 512)
Local $input7 = GUICtrlCreateInput("", 190, 235, 125, 22)
Local $input8 = GUICtrlCreateInput("", 330, 235, 125, 22)
GUISetState(@SW_SHOW, $Form1)
_Update_Form()

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

Func _Update_Form()
	Local $SonDurum = _Covid19_Son_Durum()
	If @error <> 0 Then Return 0
	;_ArrayDisplay($SonDurum)

	For $I = 1 To $SonDurum[0][0]
		;ConsoleWrite($SonDurum[$I][0] & @CRLF)
		Switch $SonDurum[$I][0]
			Case "tarih:"
				GUICtrlSetData($Tarih, $SonDurum[$I][1])

			Case "gunluk_test:"
				GUICtrlSetData($input1, $SonDurum[$I][1])

			Case "toplam_test:"
				GUICtrlSetData($input2, $SonDurum[$I][1])

			Case "gunluk_vaka:"
				GUICtrlSetData($input3, $SonDurum[$I][1])

			Case "toplam_vaka:"
				GUICtrlSetData($input4, $SonDurum[$I][1])

			Case "gunluk_vefat:"
				GUICtrlSetData($input5, $SonDurum[$I][1])

			Case "toplam_vefat:"
				GUICtrlSetData($input6, $SonDurum[$I][1])

			Case "gunluk_iyilesen:"
				GUICtrlSetData($input7, $SonDurum[$I][1])

			Case "toplam_iyilesen:"
				GUICtrlSetData($input8, $SonDurum[$I][1])

		EndSwitch
	Next
EndFunc   ;==>_Update_Form

Func _Covid19_Son_Durum()
	Local $InetRead = StringStripWS(BinaryToString(InetRead("https://covid19.saglik.gov.tr", 1)), 8)

	Local $Instr = StringInStr($InetRead, "varsondurumjson=[{", 0, -1)
	If $Instr = 0 Then Return SetError(1, 0, 0)
	$InetRead = StringTrimLeft($InetRead, $Instr + 17)

	$Instr = StringInStr($InetRead, "}")
	If $Instr = 0 Then Return SetError(2, 0, 0)
	$InetRead = StringLeft($InetRead, $Instr - 1)

	$InetRead = StringReplace($InetRead, '",', @LF)
	$InetRead = StringReplace($InetRead, Chr(34), "")

	;Array
	Local $SplitStr = StringSplit($InetRead, @LF, 1)
	Local $RetArr[$SplitStr[0] + 1][2] = [[$SplitStr[0]]]

	For $I = 1 To $SplitStr[0]
		$Instr = StringInStr($SplitStr[$I], ":")
		If $Instr = 0 Then
			$RetArr[$I][0] = $SplitStr[$I]
		Else
			$RetArr[$I][0] = StringLeft($SplitStr[$I], $Instr)
			$RetArr[$I][1] = StringTrimLeft($SplitStr[$I], $Instr)
		EndIf
	Next
	Return $RetArr
EndFunc   ;==>_Covid19_Son_Durum
darendeli
Kilobyte1
Kilobyte1
Mesajlar: 202
Kayıt: 06 Haz 2016, 16:55
Teşekkür etti: 1 kez
Teşekkür edildi: 6 kez

Re: Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen darendeli »

Teşekkürler eve geçince inceleyip son düzenlemeleri yaparım...
darendeli
Kilobyte1
Kilobyte1
Mesajlar: 202
Kayıt: 06 Haz 2016, 16:55
Teşekkür etti: 1 kez
Teşekkür edildi: 6 kez

Re: Darendeli TÜRKiYE COVID-19 Hasta Tablosu

Mesaj gönderen darendeli »

@BlueLife Yardımlarından Dolayı Çok Teşekkürler Herkese Yardımcı Bir Program Olması Dileğiyle... Version 1.1 olarak Link Yenilenmistir...
Cevapla