#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, "