#include "windows.bi"
#include "win/wininet.bi"
Type Category
lenguaje As String
numEntrada As Integer
End Type
Function DownloadString(url As String) As String
Const BUFFER_SIZE As Integer = 8192
Dim As HINTERNET hInternet, hConnect
Dim As String resultado
Dim As ZString * BUFFER_SIZE buffer
Dim As DWORD bytesRead
hInternet = InternetOpen("FreeBASIC", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0)
If hInternet = 0 Then Return ""
hConnect = InternetOpenUrl(hInternet, Strptr(url), NULL, 0, INTERNET_FLAG_RELOAD, 0)
If hConnect = 0 Then
InternetCloseHandle(hConnect)
Return ""
End If
Do
If InternetReadFile(hConnect, @buffer, BUFFER_SIZE - 1, @bytesRead) = 0 Then Exit Do
If bytesRead = 0 Then Exit Do
resultado &= Left(*Cast(ZString Ptr, @buffer), bytesRead)
Loop
InternetCloseHandle(hConnect)
InternetCloseHandle(hInternet)
Return resultado
End Function
Sub PrintTopCategories(url As String)
Dim As String content = DownloadString(url)
Dim As Integer startPos, endPos, numEntrada
Dim As String categoria, memberStr
Dim As Category categorias(999)
Dim As Integer cnt = 0
Dim As Integer i, j
startPos = Instr(content, "") + 1
endPos = Instr(startPos, content, "")
categoria = Mid(content, startPos, endPos - startPos)
startPos = Instr(endPos, content, "(") + 1
endPos = Instr(startPos, content, " member")
memberStr = Mid(content, startPos, endPos - startPos)
numEntrada = 0
For i = 1 To Len(memberStr)
If Mid(memberStr, i, 1) <> "," Then
numEntrada = numEntrada * 10 + Val(Mid(memberStr, i, 1))
End If
Next i
If Left(categoria, 5) <> "Pages" Then
categorias(cnt).lenguaje = categoria
categorias(cnt).numEntrada = numEntrada
cnt += 1
End If
startPos = Instr(endPos, content, "