Jump to content

Please help me with this code


Recommended Posts

I have this code, and I am trying to get the results using HTML from a specific website. However, I am encountering a build error. Can anyone help me? https://www.minhngoc.net.vn/ket-qua-xo-so/mien-bac/27-10-2024.html

#include <GUIConstantsEx.au3>
#include <Date.au3>

; Biến lưu trữ kết quả 10 ngày gần nhất
Global $aResults[10][8]

; Tạo GUI
Global $hGUI = GUICreate("Kết quả xổ số miền Bắc - 10 ngày gần nhất", 600, 400)
Global $lblDate, $lblDB, $lbl1st, $lbl2nd, $lbl3rd, $lbl4th, $lbl5th, $lbl6th, $lbl7th
Global $btnPrev = GUICtrlCreateButton("Trang Trước", 150, 350, 100, 30)
Global $btnNext = GUICtrlCreateButton("Trang Sau", 350, 350, 100, 30)

; Tạo các nhãn để hiển thị kết quả
$lblDate = GUICtrlCreateLabel("", 10, 10, 580, 20)
$lblDB = GUICtrlCreateLabel("", 20, 40, 580, 20)
$lbl1st = GUICtrlCreateLabel("", 20, 70, 580, 20)
$lbl2nd = GUICtrlCreateLabel("", 20, 100, 580, 20)
$lbl3rd = GUICtrlCreateLabel("", 20, 130, 580, 20)
$lbl4th = GUICtrlCreateLabel("", 20, 160, 580, 20)
$lbl5th = GUICtrlCreateLabel("", 20, 190, 580, 20)
$lbl6th = GUICtrlCreateLabel("", 20, 220, 580, 20)
$lbl7th = GUICtrlCreateLabel("", 20, 250, 580, 20)

Local $iCurrentPage = 0 ; Trang hiện tại

; Lấy kết quả từ trang web cho 10 ngày gần nhất
For $i = 0 To 9
    Local $sDate = _DateAdd('D', -$i, _NowCalcDate())
    Local $sFormattedDate = StringReplace($sDate, "-", "/")
    $aResults[$i][0] = $sFormattedDate
    Local $sData = FetchData($sFormattedDate)
    If Not @error Then
        ParseData($sData, $i)
    Else
        MsgBox(16, "Lỗi", "Không thể lấy dữ liệu từ trang web cho ngày: " & $sFormattedDate)
    EndIf
Next

; Hàm lấy dữ liệu từ URL
Func FetchData($sDate)
    Local $sURL = "https://www.minhngoc.net.vn/ket-qua-xo-so/mien-bac/" & $sDate & ".html"
    Local $sData = InetRead($sURL)
    If @error Then
        Return SetError(1, 0, "")
    EndIf
    ; Ghi nội dung HTML ra file để kiểm tra
    FileWrite("output_" & $sDate & ".html", $sData)
    Return BinaryToString($sData)
EndFunc

; Hàm phân tích dữ liệu HTML từ trang web
Func ParseData($sData, $iDayIndex)
    Local $aMatch

    ; Đặc biệt
    $aMatch = StringRegExp($sData, '(?s)Đặc biệt.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][1] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải nhất
    $aMatch = StringRegExp($sData, '(?s)Giải nhất.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][2] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải nhì
    $aMatch = StringRegExp($sData, '(?s)Giải nhì.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][3] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải ba
    $aMatch = StringRegExp($sData, '(?s)Giải ba.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][4] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải tư
    $aMatch = StringRegExp($sData, '(?s)Giải tư.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][5] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải năm
    $aMatch = StringRegExp($sData, '(?s)Giải năm.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][6] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải sáu
    $aMatch = StringRegExp($sData, '(?s)Giải sáu.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][7] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải bảy
    $aMatch = StringRegExp($sData, '(?s)Giải bảy.*?>(.*?)<', 1)
    If Not IsArray($aMatch) Or UBound($aMatch) = 0 Then
        $aResults[$iDayIndex][8] = "Không tìm thấy dữ liệu"
    Else
        $aResults[$iDayIndex][8] = $aMatch[0]
    EndIf
EndFunc


; Hàm để cập nhật trang hiển thị kết quả
Func UpdatePage($iPage)
    GUICtrlSetData($lblDate, "Ngày: " & $aResults[$iPage][0])
    GUICtrlSetData($lblDB, "Đặc biệt: " & $aResults[$iPage][1])
    GUICtrlSetData($lbl1st, "Giải nhất: " & $aResults[$iPage][2])
    GUICtrlSetData($lbl2nd, "Giải nhì: " & $aResults[$iPage][3])
    GUICtrlSetData($lbl3rd, "Giải ba: " & $aResults[$iPage][4])
    GUICtrlSetData($lbl4th, "Giải tư: " & $aResults[$iPage][5])
    GUICtrlSetData($lbl5th, "Giải năm: " & $aResults[$iPage][6])
    GUICtrlSetData($lbl6th, "Giải sáu: " & $aResults[$iPage][7])
    GUICtrlSetData($lbl7th, "Giải bảy: " & $aResults[$iPage][8])
EndFunc

; Hiển thị trang đầu tiên
UpdatePage($iCurrentPage)
GUISetState(@SW_SHOW)

; Vòng lặp GUI
While 1
    Local $iMsg = GUIGetMsg()
    Select
        Case $iMsg = $btnPrev
            If $iCurrentPage > 0 Then
                $iCurrentPage -= 1
                UpdatePage($iCurrentPage)
            EndIf
        Case $iMsg = $btnNext
            If $iCurrentPage < 9 Then
                $iCurrentPage += 1
                UpdatePage($iCurrentPage)
            EndIf
        Case $iMsg = $GUI_EVENT_CLOSE
            ExitLoop
    EndSelect
WEnd

GUIDelete($hGUI)

 

Link to comment
Share on other sites

Hi @1stPK 👋 ,

no build errors with this code:

Spoiler
#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
#AutoIt3Wrapper_AU3Check_Stop_OnWarning=y

#include-once
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <Date.au3>

; Biến lưu trữ kết quả 10 ngày gần nhất
Global $aResults[10][8]

; Tạo GUI
Global $hGUI = GUICreate("Kết quả xổ số miền Bắc - 10 ngày gần nhất", 600, 400)
Global $lblDate, $lblDB, $lbl1st, $lbl2nd, $lbl3rd, $lbl4th, $lbl5th, $lbl6th, $lbl7th
Global $btnPrev = GUICtrlCreateButton("Trang Trước", 150, 350, 100, 30)
Global $btnNext = GUICtrlCreateButton("Trang Sau", 350, 350, 100, 30)

; Tạo các nhãn để hiển thị kết quả
$lblDate = GUICtrlCreateLabel("", 10, 10, 580, 20)
$lblDB = GUICtrlCreateLabel("", 20, 40, 580, 20)
$lbl1st = GUICtrlCreateLabel("", 20, 70, 580, 20)
$lbl2nd = GUICtrlCreateLabel("", 20, 100, 580, 20)
$lbl3rd = GUICtrlCreateLabel("", 20, 130, 580, 20)
$lbl4th = GUICtrlCreateLabel("", 20, 160, 580, 20)
$lbl5th = GUICtrlCreateLabel("", 20, 190, 580, 20)
$lbl6th = GUICtrlCreateLabel("", 20, 220, 580, 20)
$lbl7th = GUICtrlCreateLabel("", 20, 250, 580, 20)

Global $iCurrentPage = 0 ; Trang hiện tại

; Lấy kết quả từ trang web cho 10 ngày gần nhất
For $i = 0 To 9
    Global $sDate = _DateAdd('D', -$i, _NowCalcDate())
    Global $sFormattedDate = StringReplace($sDate, "-", "/")
    $aResults[$i][0] = $sFormattedDate
    Global $sData = FetchData($sFormattedDate)
    If Not @error Then
        ParseData($sData, $i)
    Else
        MsgBox(16, "Lỗi", "Không thể lấy dữ liệu từ trang web cho ngày: " & $sFormattedDate)
    EndIf
Next

; Hàm lấy dữ liệu từ URL
Func FetchData($sDate)
    Local $sURL = "https://www.minhngoc.net.vn/ket-qua-xo-so/mien-bac/" & $sDate & ".html"
    Local $sData = InetRead($sURL)
    If @error Then
        Return SetError(1, 0, "")
    EndIf
    ; Ghi nội dung HTML ra file để kiểm tra
    FileWrite("output_" & $sDate & ".html", $sData)
    Return BinaryToString($sData)
EndFunc   ;==>FetchData

; Hàm phân tích dữ liệu HTML từ trang web
Func ParseData($sData, $iDayIndex)
    Local $aMatch

    ; Đặc biệt
    $aMatch = StringRegExp($sData, '(?s)Đặc biệt.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][1] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải nhất
    $aMatch = StringRegExp($sData, '(?s)Giải nhất.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][2] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải nhì
    $aMatch = StringRegExp($sData, '(?s)Giải nhì.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][3] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải ba
    $aMatch = StringRegExp($sData, '(?s)Giải ba.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][4] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải tư
    $aMatch = StringRegExp($sData, '(?s)Giải tư.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][5] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải năm
    $aMatch = StringRegExp($sData, '(?s)Giải năm.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][6] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải sáu
    $aMatch = StringRegExp($sData, '(?s)Giải sáu.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][7] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"


    ; Giải bảy
    $aMatch = StringRegExp($sData, '(?s)Giải bảy.*?>(.*?)<', 1)

    _ArrayDisplay($aResults, 1)
    _ArrayDisplay($aMatch, 2)

    If Not IsArray($aMatch) Or UBound($aMatch) = 0 Then
        $aResults[$iDayIndex][8] = "Không tìm thấy dữ liệu"
    Else
        $aResults[$iDayIndex][8] = $aMatch[0]
    EndIf
EndFunc   ;==>ParseData


; Hàm để cập nhật trang hiển thị kết quả
Func UpdatePage($iPage)
    GUICtrlSetData($lblDate, "Ngày: " & $aResults[$iPage][0])
    GUICtrlSetData($lblDB, "Đặc biệt: " & $aResults[$iPage][1])
    GUICtrlSetData($lbl1st, "Giải nhất: " & $aResults[$iPage][2])
    GUICtrlSetData($lbl2nd, "Giải nhì: " & $aResults[$iPage][3])
    GUICtrlSetData($lbl3rd, "Giải ba: " & $aResults[$iPage][4])
    GUICtrlSetData($lbl4th, "Giải tư: " & $aResults[$iPage][5])
    GUICtrlSetData($lbl5th, "Giải năm: " & $aResults[$iPage][6])
    GUICtrlSetData($lbl6th, "Giải sáu: " & $aResults[$iPage][7])
    GUICtrlSetData($lbl7th, "Giải bảy: " & $aResults[$iPage][8])
EndFunc   ;==>UpdatePage

; Hiển thị trang đầu tiên
UpdatePage($iCurrentPage)
GUISetState(@SW_SHOW)

; Vòng lặp GUI
While 1
    Global $iMsg = GUIGetMsg()
    Select
        Case $iMsg = $btnPrev
            If $iCurrentPage > 0 Then
                $iCurrentPage -= 1
                UpdatePage($iCurrentPage)
            EndIf
        Case $iMsg = $btnNext
            If $iCurrentPage < 9 Then
                $iCurrentPage += 1
                UpdatePage($iCurrentPage)
            EndIf
        Case $iMsg = $GUI_EVENT_CLOSE
            ExitLoop
    EndSelect
WEnd

GUIDelete($hGUI)

 

But your InetRead request does not provide any data (empty string is returned). So please check line 11 (and the error handling), also the lines 9, 51 and 52 to display the result array. Without a deeper look, I guess you have to get the source page by another method.

Search the forum (maybe by google) for "getting page source" or similar and you will find several answer or suggestions besides InetRead.
Hope this will help you 🤝 .

Best regards
Sven

Edited by SOLVE-SMART

Stay innovative!

Spoiler

🌍 Au3Forums

🎲 AutoIt (en) Cheat Sheet

📊 AutoIt limits/defaults

💎 Code Katas: [...] (comming soon)

🎭 Collection of GitHub users with AutoIt projects

🐞 False-Positives

🔮 Me on GitHub

💬 Opinion about new forum sub category

📑 UDF wiki list

✂ VSCode-AutoItSnippets

📑 WebDriver FAQs

👨‍🏫 WebDriver Tutorial (coming soon)

Link to comment
Share on other sites

On 10/28/2024 at 4:37 PM, SOLVE-SMART said:

Hi @1stPK 👋 ,

no build errors with this code:

  Hide contents
#AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7
#AutoIt3Wrapper_AU3Check_Stop_OnWarning=y

#include-once
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <Date.au3>

; Biến lưu trữ kết quả 10 ngày gần nhất
Global $aResults[10][8]

; Tạo GUI
Global $hGUI = GUICreate("Kết quả xổ số miền Bắc - 10 ngày gần nhất", 600, 400)
Global $lblDate, $lblDB, $lbl1st, $lbl2nd, $lbl3rd, $lbl4th, $lbl5th, $lbl6th, $lbl7th
Global $btnPrev = GUICtrlCreateButton("Trang Trước", 150, 350, 100, 30)
Global $btnNext = GUICtrlCreateButton("Trang Sau", 350, 350, 100, 30)

; Tạo các nhãn để hiển thị kết quả
$lblDate = GUICtrlCreateLabel("", 10, 10, 580, 20)
$lblDB = GUICtrlCreateLabel("", 20, 40, 580, 20)
$lbl1st = GUICtrlCreateLabel("", 20, 70, 580, 20)
$lbl2nd = GUICtrlCreateLabel("", 20, 100, 580, 20)
$lbl3rd = GUICtrlCreateLabel("", 20, 130, 580, 20)
$lbl4th = GUICtrlCreateLabel("", 20, 160, 580, 20)
$lbl5th = GUICtrlCreateLabel("", 20, 190, 580, 20)
$lbl6th = GUICtrlCreateLabel("", 20, 220, 580, 20)
$lbl7th = GUICtrlCreateLabel("", 20, 250, 580, 20)

Global $iCurrentPage = 0 ; Trang hiện tại

; Lấy kết quả từ trang web cho 10 ngày gần nhất
For $i = 0 To 9
    Global $sDate = _DateAdd('D', -$i, _NowCalcDate())
    Global $sFormattedDate = StringReplace($sDate, "-", "/")
    $aResults[$i][0] = $sFormattedDate
    Global $sData = FetchData($sFormattedDate)
    If Not @error Then
        ParseData($sData, $i)
    Else
        MsgBox(16, "Lỗi", "Không thể lấy dữ liệu từ trang web cho ngày: " & $sFormattedDate)
    EndIf
Next

; Hàm lấy dữ liệu từ URL
Func FetchData($sDate)
    Local $sURL = "https://www.minhngoc.net.vn/ket-qua-xo-so/mien-bac/" & $sDate & ".html"
    Local $sData = InetRead($sURL)
    If @error Then
        Return SetError(1, 0, "")
    EndIf
    ; Ghi nội dung HTML ra file để kiểm tra
    FileWrite("output_" & $sDate & ".html", $sData)
    Return BinaryToString($sData)
EndFunc   ;==>FetchData

; Hàm phân tích dữ liệu HTML từ trang web
Func ParseData($sData, $iDayIndex)
    Local $aMatch

    ; Đặc biệt
    $aMatch = StringRegExp($sData, '(?s)Đặc biệt.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][1] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải nhất
    $aMatch = StringRegExp($sData, '(?s)Giải nhất.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][2] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải nhì
    $aMatch = StringRegExp($sData, '(?s)Giải nhì.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][3] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải ba
    $aMatch = StringRegExp($sData, '(?s)Giải ba.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][4] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải tư
    $aMatch = StringRegExp($sData, '(?s)Giải tư.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][5] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải năm
    $aMatch = StringRegExp($sData, '(?s)Giải năm.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][6] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"

    ; Giải sáu
    $aMatch = StringRegExp($sData, '(?s)Giải sáu.*?class="numbers">(.*?)<', 1)
    $aResults[$iDayIndex][7] = IsArray($aMatch) And UBound($aMatch) > 0 ? $aMatch[0] : "Không có dữ liệu"


    ; Giải bảy
    $aMatch = StringRegExp($sData, '(?s)Giải bảy.*?>(.*?)<', 1)

    _ArrayDisplay($aResults, 1)
    _ArrayDisplay($aMatch, 2)

    If Not IsArray($aMatch) Or UBound($aMatch) = 0 Then
        $aResults[$iDayIndex][8] = "Không tìm thấy dữ liệu"
    Else
        $aResults[$iDayIndex][8] = $aMatch[0]
    EndIf
EndFunc   ;==>ParseData


; Hàm để cập nhật trang hiển thị kết quả
Func UpdatePage($iPage)
    GUICtrlSetData($lblDate, "Ngày: " & $aResults[$iPage][0])
    GUICtrlSetData($lblDB, "Đặc biệt: " & $aResults[$iPage][1])
    GUICtrlSetData($lbl1st, "Giải nhất: " & $aResults[$iPage][2])
    GUICtrlSetData($lbl2nd, "Giải nhì: " & $aResults[$iPage][3])
    GUICtrlSetData($lbl3rd, "Giải ba: " & $aResults[$iPage][4])
    GUICtrlSetData($lbl4th, "Giải tư: " & $aResults[$iPage][5])
    GUICtrlSetData($lbl5th, "Giải năm: " & $aResults[$iPage][6])
    GUICtrlSetData($lbl6th, "Giải sáu: " & $aResults[$iPage][7])
    GUICtrlSetData($lbl7th, "Giải bảy: " & $aResults[$iPage][8])
EndFunc   ;==>UpdatePage

; Hiển thị trang đầu tiên
UpdatePage($iCurrentPage)
GUISetState(@SW_SHOW)

; Vòng lặp GUI
While 1
    Global $iMsg = GUIGetMsg()
    Select
        Case $iMsg = $btnPrev
            If $iCurrentPage > 0 Then
                $iCurrentPage -= 1
                UpdatePage($iCurrentPage)
            EndIf
        Case $iMsg = $btnNext
            If $iCurrentPage < 9 Then
                $iCurrentPage += 1
                UpdatePage($iCurrentPage)
            EndIf
        Case $iMsg = $GUI_EVENT_CLOSE
            ExitLoop
    EndSelect
WEnd

GUIDelete($hGUI)

 

But your InetRead request does not provide any data (empty string is returned). So please check line 11 (and the error handling), also the lines 9, 51 and 52 to display the result array. Without a deeper look, I guess you have to get the source page by another method.

Search the forum (maybe by google) for "getting page source" or similar and you will find several answer or suggestions besides InetRead.
Hope this will help you 🤝 .

Best regards
Sven

#include <GUIConstantsEx.au3>
#include <IE.au3>

Global $day_labels[7] = ["Hôm nay", "Hôm qua", "2 ngày trước", "3 ngày trước", "4 ngày trước", "5 ngày trước", "6 ngày trước"]
Global $winData[7][10] ; Mảng lưu dữ liệu các giải mỗi ngày
Global $resultLabels[7] ; Mảng lưu các đối tượng nhãn để in dữ liệu

; Khởi tạo GUI
Global $hGUI = GUICreate("Kết quả xổ số miền Bắc", 800, 600)
Global $tabCtrl = GUICtrlCreateTab(10, 10, 780, 550)

For $i = 0 To 6
    GUICtrlCreateTabItem($day_labels[$i])
    GUICtrlCreateLabel("Dữ liệu ngày: " & $day_labels[$i], 20, 40)
    $resultLabels[$i] = GUICtrlCreateLabel("", 20, 70, 750, 400) ; Khởi tạo nhãn cho từng ngày
    GUICtrlCreateTabItem("")
Next

GUICtrlCreateTabItem("")
GUISetState(@SW_SHOW, $hGUI)

; Hàm cập nhật dữ liệu từ trang web
Func UpdateResults()
    Local $oIE = _IECreate("https://www.minhngoc.net.vn/ket-qua-xo-so/mien-bac.html", 0, 1)
    Local $html = _IEDocReadHTML($oIE)
    _IEQuit($oIE)

    ; In nội dung HTML để kiểm tra
    ConsoleWrite($html & @CRLF)

    ; Phân tích cú pháp HTML và cập nhật mảng dữ liệu
    For $day = 0 To 6
        ; Tìm bảng kết quả xổ số của từng ngày trong HTML bằng cách dùng vị trí hoặc ID của bảng
        Local $htmlData = StringRegExp($html, '(?s)<table class="bkqtinhmienbac">.*?</table>', 3)
        
        ; Kiểm tra xem đã lấy được dữ liệu bảng hay chưa
        If UBound($htmlData) > 0 And $day < UBound($htmlData) Then
            ; Lấy dữ liệu từng giải (giả sử có 10 giải cho mỗi ngày)
            $winData[$day][0] = "Giải đặc biệt: " & ExtractResult($htmlData[$day], "giaidb")
            $winData[$day][1] = "Giải nhất: " & ExtractResult($htmlData[$day], "giai1")
            $winData[$day][2] = "Giải nhì: " & ExtractResult($htmlData[$day], "giai2")
            $winData[$day][3] = "Giải ba: " & ExtractResult($htmlData[$day], "giai3")
            $winData[$day][4] = "Giải tư: " & ExtractResult($htmlData[$day], "giai4")
            $winData[$day][5] = "Giải năm: " & ExtractResult($htmlData[$day], "giai5")
            $winData[$day][6] = "Giải sáu: " & ExtractResult($htmlData[$day], "giai6")
            $winData[$day][7] = "Giải bảy: " & ExtractResult($htmlData[$day], "giai7")
        Else
            ; Nếu không có dữ liệu, đặt thông báo lỗi
            $winData[$day][0] = "Không có dữ liệu"
        EndIf
    Next
EndFunc

; Hàm trích xuất từng giải từ HTML
Func ExtractResult($htmlText, $giaiClass)
    ; Sử dụng StringRegExp để trích xuất số liệu theo lớp (class) từng giải
    Local $result = StringRegExp($htmlText, '<td class="' & $giaiClass & '">([0-9]+)</td>', 1)
    If IsArray($result) And UBound($result) > 0 Then
        Return $result[0]
    Else
        Return "Không tìm thấy"
    EndIf
EndFunc

; Cập nhật GUI
Func RefreshGUI()
    For $day = 0 To 6
        Local $text = ""
        For $prize = 0 To 9
            $text &= $winData[$day][$prize] & @CRLF
        Next
        ; Đảm bảo cập nhật đúng từng nhãn cho mỗi ngày
        GUICtrlSetData($resultLabels[$day], $text)
    Next
EndFunc

; Cập nhật lần đầu và đặt hẹn giờ cho lần cập nhật tiếp theo
UpdateResults()
RefreshGUI()
AdlibRegister("UpdateResults", 3600000) ; Cập nhật mỗi 1 giờ

; Vòng lặp sự kiện GUI
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            ExitLoop
    EndSwitch
WEnd

I tried another way but it still didn't work....

HTML.txt

Link to comment
Share on other sites

Hi @1stPK

I made it work with this:

#include <GUIConstantsEx.au3>
#include <InetConstants.au3>
#include <StringConstants.au3>
#include "./Include/HTMLParser.au3"

Opt("GUIOnEventMode", 1)

#cs
# taken from https://techblog.willshouse.com/2012/01/03/most-common-user-agents/
# Helps to avoid bot detection
#ce
HttpSetUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36')

$sDate = "27-10-2024"
$sHTML = FetchData($sDate)
If @error <> 0 Then
    ConsoleWriteError(StringFormat("Failed to fetch data for ""%s""\n", $sDate))
    Exit 1
EndIf

; Fix issue with missing space between multiple html element attributes
$sHTML = StringRegExpReplace($sHTML, '(="[^"]+")([^ \/>;,])', "$1 $2")
; Fix issue with multiple lt
$sHTML = StringRegExpReplace($sHTML, '<{2,}', "<")

$tHTML = ParseData($sHTML)
If @error <> 0 Then
    ConsoleWriteError(StringFormat("Failed to parse data for ""%s""\n", $sDate))
    Exit 1
EndIf

$pNode = _HTMLParser_GetFirstStartTag($tHTML.head)
If @error <> 0 Then
    ConsoleWriteError(StringFormat("Failed to find first tag in data for ""%s""\n", $sDate))
    Exit 1
EndIf

$hWnd = GUICreate("kết quả xổ số", 700, 320)
GUISetOnEvent($GUI_EVENT_CLOSE, "GuiClose", $hWnd)

$label1 = GUICtrlCreateLabel("Giải đặc biệt: đang tải...", 10, 10, 680, 20)
$label2 = GUICtrlCreateLabel("Giải nhất: đang tải...", 10, 30, 680, 20)
$label3 = GUICtrlCreateLabel("Giải nhì: đang tải...", 10, 50, 680, 20)
$label4 = GUICtrlCreateLabel("Giải ba: đang tải...", 10, 70, 680, 20)
$label5 = GUICtrlCreateLabel("Giải tư: đang tải...", 10, 90, 680, 20)
$label6 = GUICtrlCreateLabel("Giải năm: đang tải...", 10, 110, 680, 20)
$label7 = GUICtrlCreateLabel("Giải sáu: đang tải...", 10, 130, 680, 20)
$label8 = GUICtrlCreateLabel("Giải bảy: đang tải...", 10, 150, 680, 20)

GUISetState(@SW_SHOW, $hWnd)

$sText = ExtractText($pNode, "giaidb")
GUICtrlSetData($label1, "Giải đặc biệt: " & (@error <> 0 ? "Lỗi" : $sText))

$sText = ExtractText($pNode, "giai1")
GUICtrlSetData($label2, "Giải nhất: " & (@error <> 0 ? "Lỗi" : $sText))

$sText = ExtractText($pNode, "giai2")
GUICtrlSetData($label3, "Giải nhì: " & (@error <> 0 ? "Lỗi" : $sText))

$sText = ExtractText($pNode, "giai3")
GUICtrlSetData($label4, "Giải ba: " & (@error <> 0 ? "Lỗi" : $sText))

$sText = ExtractText($pNode, "giai4")
GUICtrlSetData($label5, "Giải tư: " & (@error <> 0 ? "Lỗi" : $sText))

$sText = ExtractText($pNode, "giai5")
GUICtrlSetData($label6, "Giải năm: " & (@error <> 0 ? "Lỗi" : $sText))

$sText = ExtractText($pNode, "giai6")
GUICtrlSetData($label7, "Giải sáu: " & (@error <> 0 ? "Lỗi" : $sText))

$sText = ExtractText($pNode, "giai7")
GUICtrlSetData($label8, "Giải bảy: " & (@error <> 0 ? "Lỗi" : $sText))

While 1
    Sleep(10)
Wend

Func FetchData($sDate)
    Local $sURL = StringFormat("https://www.minhngoc.net.vn/ket-qua-xo-so/mien-bac/%s.html", $sDate)
    Local $dData = InetRead($sURL, BitAND($INET_BINARYTRANSFER, $INET_FORCEBYPASS))
    If @error <> 0 Then
        ConsoleWriteError(StringFormat("Failed to fetch data for ""%s""\n", $sURL))
        Return SetError(1)
    EndIf

    Return BinaryToString($dData)
EndFunc

Func ParseData($sHTML)
    Local $tTokenList = _HTMLParser($sHTML)
    If @error <> 0 Then Return SetError(1)
    ; Check if all HTML was parsed
    If @extended < StringLen($sHTML) Then Return SetError(2)

    Return $tTokenList
EndFunc

Func ExtractText($pNode, $sClassName)
    Local $aNodes = _HTMLParser_GetElementsByClassName($sClassName, $pNode)
    If @error <> 0 Then Return SetError(1)
    $pNode = $aNodes[0]
    Local $aText = _HTMLParser_Element_GetText($pNode)
    Local $sText = ""
    For $pText In $aText
        $tNode = __doublyLinkedList_Node($pText)
        $sText &= " " & StringRegExpReplace(__HTMLParser_GetString($tNode.data), "^\s+|\s+$", "")
    Next
    Return $sText
EndFunc

Func GuiClose()
    Exit
EndFunc

I used my html parser for this, but a better parser solution could also work, or go back to regex :)

I used google translate for the Vietnamese strings i added, so they might be wrong :)

I'll also attach my solution with includes to this post.

Hope it helps!

212413.zip

Link to comment
Share on other sites

2 hours ago, genius257 said:

Hi @1stPK

I made it work with this:

#include <GUIConstantsEx.au3>
#include <InetConstants.au3>
#include <StringConstants.au3>
#include "./Include/HTMLParser.au3"

Opt("GUIOnEventMode", 1)

#cs
# taken from https://techblog.willshouse.com/2012/01/03/most-common-user-agents/
# Helps to avoid bot detection
#ce
HttpSetUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36')

$sDate = "27-10-2024"
$sHTML = FetchData($sDate)
If @error <> 0 Then
    ConsoleWriteError(StringFormat("Failed to fetch data for ""%s""\n", $sDate))
    Exit 1
EndIf

; Fix issue with missing space between multiple html element attributes
$sHTML = StringRegExpReplace($sHTML, '(="[^"]+")([^ \/>;,])', "$1 $2")
; Fix issue with multiple lt
$sHTML = StringRegExpReplace($sHTML, '<{2,}', "<")

$tHTML = ParseData($sHTML)
If @error <> 0 Then
    ConsoleWriteError(StringFormat("Failed to parse data for ""%s""\n", $sDate))
    Exit 1
EndIf

$pNode = _HTMLParser_GetFirstStartTag($tHTML.head)
If @error <> 0 Then
    ConsoleWriteError(StringFormat("Failed to find first tag in data for ""%s""\n", $sDate))
    Exit 1
EndIf

$hWnd = GUICreate("kết quả xổ số", 700, 320)
GUISetOnEvent($GUI_EVENT_CLOSE, "GuiClose", $hWnd)

$label1 = GUICtrlCreateLabel("Giải đặc biệt: đang tải...", 10, 10, 680, 20)
$label2 = GUICtrlCreateLabel("Giải nhất: đang tải...", 10, 30, 680, 20)
$label3 = GUICtrlCreateLabel("Giải nhì: đang tải...", 10, 50, 680, 20)
$label4 = GUICtrlCreateLabel("Giải ba: đang tải...", 10, 70, 680, 20)
$label5 = GUICtrlCreateLabel("Giải tư: đang tải...", 10, 90, 680, 20)
$label6 = GUICtrlCreateLabel("Giải năm: đang tải...", 10, 110, 680, 20)
$label7 = GUICtrlCreateLabel("Giải sáu: đang tải...", 10, 130, 680, 20)
$label8 = GUICtrlCreateLabel("Giải bảy: đang tải...", 10, 150, 680, 20)

GUISetState(@SW_SHOW, $hWnd)

$sText = ExtractText($pNode, "giaidb")
GUICtrlSetData($label1, "Giải đặc biệt: " & (@error <> 0 ? "Lỗi" : $sText))

$sText = ExtractText($pNode, "giai1")
GUICtrlSetData($label2, "Giải nhất: " & (@error <> 0 ? "Lỗi" : $sText))

$sText = ExtractText($pNode, "giai2")
GUICtrlSetData($label3, "Giải nhì: " & (@error <> 0 ? "Lỗi" : $sText))

$sText = ExtractText($pNode, "giai3")
GUICtrlSetData($label4, "Giải ba: " & (@error <> 0 ? "Lỗi" : $sText))

$sText = ExtractText($pNode, "giai4")
GUICtrlSetData($label5, "Giải tư: " & (@error <> 0 ? "Lỗi" : $sText))

$sText = ExtractText($pNode, "giai5")
GUICtrlSetData($label6, "Giải năm: " & (@error <> 0 ? "Lỗi" : $sText))

$sText = ExtractText($pNode, "giai6")
GUICtrlSetData($label7, "Giải sáu: " & (@error <> 0 ? "Lỗi" : $sText))

$sText = ExtractText($pNode, "giai7")
GUICtrlSetData($label8, "Giải bảy: " & (@error <> 0 ? "Lỗi" : $sText))

While 1
    Sleep(10)
Wend

Func FetchData($sDate)
    Local $sURL = StringFormat("https://www.minhngoc.net.vn/ket-qua-xo-so/mien-bac/%s.html", $sDate)
    Local $dData = InetRead($sURL, BitAND($INET_BINARYTRANSFER, $INET_FORCEBYPASS))
    If @error <> 0 Then
        ConsoleWriteError(StringFormat("Failed to fetch data for ""%s""\n", $sURL))
        Return SetError(1)
    EndIf

    Return BinaryToString($dData)
EndFunc

Func ParseData($sHTML)
    Local $tTokenList = _HTMLParser($sHTML)
    If @error <> 0 Then Return SetError(1)
    ; Check if all HTML was parsed
    If @extended < StringLen($sHTML) Then Return SetError(2)

    Return $tTokenList
EndFunc

Func ExtractText($pNode, $sClassName)
    Local $aNodes = _HTMLParser_GetElementsByClassName($sClassName, $pNode)
    If @error <> 0 Then Return SetError(1)
    $pNode = $aNodes[0]
    Local $aText = _HTMLParser_Element_GetText($pNode)
    Local $sText = ""
    For $pText In $aText
        $tNode = __doublyLinkedList_Node($pText)
        $sText &= " " & StringRegExpReplace(__HTMLParser_GetString($tNode.data), "^\s+|\s+$", "")
    Next
    Return $sText
EndFunc

Func GuiClose()
    Exit
EndFunc

I used my html parser for this, but a better parser solution could also work, or go back to regex :)

I used google translate for the Vietnamese strings i added, so they might be wrong :)

I'll also attach my solution with includes to this post.

Hope it helps!

212413.zip 7.14 kB · 0 downloads

On this website (https://www.minhngoc.net.vn/ket-qua-xo-so/mien-bac.html), there are 7 results, and I want them to be updated on the GUI. If there is not enough space on the GUI, we can create pages to view everything. I also want it to update daily for each access session; the program.

Link to comment
Share on other sites

Hi @genius257 👋 ,

the fix was to add these two flags (constants) to InetRead, right?

Local $dData = InetRead($sURL, BitAND($INET_BINARYTRANSFER, $INET_FORCEBYPASS))

Good work, as usually 😀 .

Best regards
Sven

Stay innovative!

Spoiler

🌍 Au3Forums

🎲 AutoIt (en) Cheat Sheet

📊 AutoIt limits/defaults

💎 Code Katas: [...] (comming soon)

🎭 Collection of GitHub users with AutoIt projects

🐞 False-Positives

🔮 Me on GitHub

💬 Opinion about new forum sub category

📑 UDF wiki list

✂ VSCode-AutoItSnippets

📑 WebDriver FAQs

👨‍🏫 WebDriver Tutorial (coming soon)

Link to comment
Share on other sites

12 hours ago, 1stPK said:

On this website (https://www.minhngoc.net.vn/ket-qua-xo-so/mien-bac.html), there are 7 results, and I want them to be updated on the GUI.

You can do a for loop on $aNodes in the ExtractText function, to get each of the 7 elements that match the classname.

13 hours ago, 1stPK said:

If there is not enough space on the GUI, we can create pages to view everything.

That is some math you will need to do. You also just add a could add a scroll-bar (https://www.autoitscript.com/autoit3/docs/libfunctions/_GUIScrollBars_Init.htm) or GUI tabs (https://www.autoitscript.com/autoit3/docs/functions/GUICtrlCreateTab.htm)

13 hours ago, 1stPK said:

I also want it to update daily for each access session

For that you could register your with Windows scheduled tasks. There are many threads with examples, if you search for it :)

 


 

Hi @SOLVE-SMART :D

The INET_BINARYTRANSFER flag is the default behavior, when no explicit option is given, and INET_FORCEBYPASS simply speeds up InetRead, bypassing the normal force connection online step.

I am not sure what the problem was initially, as i read the original code and made mine from scratch, but using the same url and function naming.

It could be something as simple as setting the user agent string, because many sites do not like scrapers and bots, so "AutoIt" as the default user agent string might trigger responses.

But thanks for the nice words and the like ;)

Link to comment
Share on other sites

as per the code below, and on the main GUI i have set the default date to real time.
i have added a way to see more results of another day, by pressing the button to select the day we need to see on a new window.
now i want to see other days right on the main GUI, by creating more Conversion Tabs.
this i have done a lot but not working, hope you will help again, Thanks.

 

#include <GUIConstantsEx.au3>
#include <InetConstants.au3>
#include <StringConstants.au3>
#include "./Include/HTMLParser.au3"

Opt("GUIOnEventMode", 1)

HttpSetUserAgent('Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36')

; Cập nhật ngày hiện tại
Global $sDate = @MDAY & "-" & @MON & "-" & @YEAR
Global $hWnd = GUICreate("Kết quả xổ số", 700, 320)
GUISetOnEvent($GUI_EVENT_CLOSE, "GuiClose", $hWnd)

; Các nhãn cho kết quả giải thưởng
Global $label1 = GUICtrlCreateLabel("Giải đặc biệt: đang tải...", 10, 10, 680, 20)
Global $label2 = GUICtrlCreateLabel("Giải nhất: đang tải...", 10, 30, 680, 20)
Global $label3 = GUICtrlCreateLabel("Giải nhì: đang tải...", 10, 50, 680, 20)
Global $label4 = GUICtrlCreateLabel("Giải ba: đang tải...", 10, 70, 680, 20)
Global $label5 = GUICtrlCreateLabel("Giải tư: đang tải...", 10, 90, 680, 20)
Global $label6 = GUICtrlCreateLabel("Giải năm: đang tải...", 10, 110, 680, 20)
Global $label7 = GUICtrlCreateLabel("Giải sáu: đang tải...", 10, 130, 680, 20)
Global $label8 = GUICtrlCreateLabel("Giải bảy: đang tải...", 10, 150, 680, 20)

; Nút để mở cửa sổ mới
Global $btnNewWindow = GUICtrlCreateButton("Xem ngày khác", 10, 180, 120, 30)
GUICtrlSetOnEvent($btnNewWindow, "ShowNewWindow")

GUISetState(@SW_SHOW, $hWnd)

; Hiển thị kết quả ban đầu
ShowResults($sDate, $label1, $label2, $label3, $label4, $label5, $label6, $label7, $label8)

While 1
    Sleep(10)
WEnd

Func ShowResults($sDate, $lbl1, $lbl2, $lbl3, $lbl4, $lbl5, $lbl6, $lbl7, $lbl8)
    Local $sHTML = FetchData($sDate)
    If @error <> 0 Then
        ConsoleWriteError(StringFormat("Failed to fetch data for ""%s""\n", $sDate))
        Return
    EndIf
    
    $sHTML = StringRegExpReplace($sHTML, '(="[^"]+")([^ \/>;,])', "$1 $2")
    $sHTML = StringRegExpReplace($sHTML, '<{2,}', "<")
    
    Local $tHTML = ParseData($sHTML)
    If @error <> 0 Then
        ConsoleWriteError(StringFormat("Failed to parse data for ""%s""\n", $sDate))
        Return
    EndIf

    Local $pNode = _HTMLParser_GetFirstStartTag($tHTML.head)
    If @error <> 0 Then
        ConsoleWriteError(StringFormat("Failed to find first tag in data for ""%s""\n", $sDate))
        Return
    EndIf

    ; Cập nhật các nhãn với kết quả
    GUICtrlSetData($lbl1, "Giải đặc biệt: " & ExtractText($pNode, "giaidb"))
    GUICtrlSetData($lbl2, "Giải nhất: " & ExtractText($pNode, "giai1"))
    GUICtrlSetData($lbl3, "Giải nhì: " & ExtractText($pNode, "giai2"))
    GUICtrlSetData($lbl4, "Giải ba: " & ExtractText($pNode, "giai3"))
    GUICtrlSetData($lbl5, "Giải tư: " & ExtractText($pNode, "giai4"))
    GUICtrlSetData($lbl6, "Giải năm: " & ExtractText($pNode, "giai5"))
    GUICtrlSetData($lbl7, "Giải sáu: " & ExtractText($pNode, "giai6"))
    GUICtrlSetData($lbl8, "Giải bảy: " & ExtractText($pNode, "giai7"))
EndFunc

Func ShowNewWindow()
    Local $sNewDate = InputBox("Ngày Kết Quả", "Nhập ngày (dd-mm-yyyy):", "31-10-2024")
    If @error Then Return

    ; Kiểm tra định dạng ngày tháng
    If Not StringRegExp($sNewDate, '^\d{2}-\d{2}-\d{4}$') Then
        MsgBox(0, "Lỗi", "Định dạng ngày không hợp lệ. Vui lòng nhập theo định dạng dd-mm-yyyy.")
        Return
    EndIf

    ; Tách ngày, tháng, năm
    Local $aDate = StringSplit($sNewDate, "-")
    Local $iDay = $aDate[1]
    Local $iMonth = $aDate[2]
    Local $iYear = $aDate[3]

    ; Kiểm tra xem ngày có phải là ngày trong tương lai không
    If Not IsDateValid($iDay, $iMonth, $iYear) Then
        MsgBox(0, "Lỗi", "Ngày không hợp lệ hoặc là ngày trong tương lai.")
        Return
    EndIf

    Local $hNewWnd = GUICreate("Kết quả xổ số ngày " & $sNewDate, 700, 320)
    Local $lbl1 = GUICtrlCreateLabel("Giải đặc biệt: đang tải...", 10, 10, 680, 20)
    Local $lbl2 = GUICtrlCreateLabel("Giải nhất: đang tải...", 10, 30, 680, 20)
    Local $lbl3 = GUICtrlCreateLabel("Giải nhì: đang tải...", 10, 50, 680, 20)
    Local $lbl4 = GUICtrlCreateLabel("Giải ba: đang tải...", 10, 70, 680, 20)
    Local $lbl5 = GUICtrlCreateLabel("Giải tư: đang tải...", 10, 90, 680, 20)
    Local $lbl6 = GUICtrlCreateLabel("Giải năm: đang tải...", 10, 110, 680, 20)
    Local $lbl7 = GUICtrlCreateLabel("Giải sáu: đang tải...", 10, 130, 680, 20)
    Local $lbl8 = GUICtrlCreateLabel("Giải bảy: đang tải...", 10, 150, 680, 20)

    GUISetState(@SW_SHOW, $hNewWnd)
    ShowResults($sNewDate, $lbl1, $lbl2, $lbl3, $lbl4, $lbl5, $lbl6, $lbl7, $lbl8)
EndFunc

Func FetchData($sDate)
    Local $sURL = StringFormat("https://www.minhngoc.net.vn/ket-qua-xo-so/mien-bac/%s.html", $sDate)
    Local $dData = InetRead($sURL, BitAND($INET_BINARYTRANSFER, $INET_FORCEBYPASS))
    If @error <> 0 Then
        ConsoleWriteError(StringFormat("Failed to fetch data for ""%s""\n", $sURL))
        Return SetError(1)
    EndIf

    Return BinaryToString($dData)
EndFunc

Func ParseData($sHTML)
    Local $tTokenList = _HTMLParser($sHTML)
    If @error <> 0 Then Return SetError(1)
    If @extended < StringLen($sHTML) Then Return SetError(2)

    Return $tTokenList
EndFunc

Func ExtractText($pNode, $sClassName)
    Local $aNodes = _HTMLParser_GetElementsByClassName($sClassName, $pNode)
    If @error <> 0 Then Return SetError(1)
    $pNode = $aNodes[0]
    Local $aText = _HTMLParser_Element_GetText($pNode)
    Local $sText = ""
    For $pText In $aText
        $tNode = __doublyLinkedList_Node($pText)
        $sText &= " " & StringRegExpReplace(__HTMLParser_GetString($tNode.data), "^\s+|\s+$", "")
    Next
    Return $sText
EndFunc

Func IsDateValid($iDay, $iMonth, $iYear)
    ; Kiểm tra xem năm có hợp lệ không
    If $iYear < 1900 Or $iYear > @YEAR Then Return False
    ; Kiểm tra xem tháng có hợp lệ không
    If $iMonth < 1 Or $iMonth > 12 Then Return False
    ; Kiểm tra xem ngày có hợp lệ không
    Switch $iMonth
        Case 1, 3, 5, 7, 8, 10, 12
            If $iDay < 1 Or $iDay > 31 Then Return False
        Case 4, 6, 9, 11
            If $iDay < 1 Or $iDay > 30 Then Return False
        Case 2
            If $iYear Mod 4 = 0 And ($iYear Mod 100 <> 0 Or $iYear Mod 400 = 0) Then
                ; Năm nhuận
                If $iDay < 1 Or $iDay > 29 Then Return False
            Else
                ; Năm không nhuận
                If $iDay < 1 Or $iDay > 28 Then Return False
            EndIf
        Case Else
            Return False
    EndSwitch
    ; Kiểm tra xem ngày có phải là ngày trong tương lai không
    If $iYear > @YEAR Or ($iYear = @YEAR And ($iMonth > @MON Or ($iMonth = @MON And $iDay > @MDAY))) Then
        Return False
    EndIf
    Return True
EndFunc

Func GuiClose()
    Exit
EndFunc

 

Test Appxstd.rar

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...