Онлайновый просмотр телевизионных каналов.
Программа основана на парсинге сервиса www.guzei.com.
Для предания внешнего вида окну, применена библиотека SkinFeature.dll
Так, как библиотека не работает в режиме Unicode, применена процедура Utf2Ansi() для преобразования текста.
Если не применять SkinFeature.dll, то и Utf2Ansi() - не нужна.
Скачать архив файлов
PS. Из за наличия html тегов в коде, PB код на странице отображается не корректно.
; Последнее изменение:3 Апрель, 2011 @ 5:41:44 PM
;===========================Стиль окна Dark Soft==============================================
Global UnLoadSkin.l
Procedure.l Skin(skin.s)
If OpenLibrary(0, "SkinFeature.dll")
InitializeSkin.l = GetFunction(0, "InitializeSkin")
LoadSkinFile.l = GetFunction(0, "LoadSkinFile")
UnLoadSkin.l = GetFunction(0, "UnLoadSkin")
InitLicenKeys.l = GetFunction(0, "InitLicenKeys")
CallFunctionFast(InitializeSkin)
CallFunctionFast(InitLicenKeys, @"EB3E7432-D0A3-4fbe-AADE-D73C7903ABB6")
CallFunctionFast(LoadSkinFile, @"Dark Soft.rss", @"") ; Надеваем скин из файла на диске
rez=1
EndIf
ProcedureReturn rez
EndProcedure
rez=Skin(skin.s)
;=============================================================================================
Enumeration
#Window_0
#Container
#List
#Web
#But:#But2:#Text
#Image:#fon
EndEnumeration
UsePNGImageDecoder()
Global Dim Name.s(100),Dim Adres.s(100)
Procedure.s Utf2Ansi(string.s) ; перевод с Unicode
len_s=Len(string)*2+2
*out = AllocateMemory(len_s)
*out1 = AllocateMemory(len_s)
MultiByteToWideChar_(65001, 0, string, -1, *out, len_s)
WideCharToMultiByte_(#CP_ACP,0,*out,-1,*out1,len_s,0,0)
Text$ = PeekS(*out1 , -1, #PB_Ascii)
FreeMemory(*out)
FreeMemory(*out1)
If Left(Text$, 1)="?" : Text$=LTrim(Text$, "?") : EndIf
ProcedureReturn Text$
EndProcedure
Procedure.s Between_2(string.s, L.s, R.s) ; вырезаем между L-R
Position = FindString(string, L.s, 1)
string2.s = Right(string, Len(string)+1-Position-Len(L.s))
Position2 = FindString(string2, R.s, 1)
string3.s = Left(string2, Position2-1)
If Position <> 0
ProcedureReturn string3.s
EndIf
EndProcedure
Procedure HTML2(HTM.s) ; создание htm файла
DeleteFile("HTML.htm")
If OpenFile(0, "HTML.htm")
FileSeek(0, Lof(0))
WriteString(0,HTM)
CloseFile(0)
EndIf
SetGadgetText(#Web,"file://localhost/"+GetPathPart(ProgramFilename())+"HTML.htm")
EndProcedure
Procedure Guzei(url.s) ; парсинг сервиса www.guzei.com
ClearGadgetItems(#List)
URLDownloadToFile_(0,url.s,"guzei.txt",0,0)
If ReadFile(0,"guzei.txt")
While Eof(0) = 0
string.s= ReadString(0)
;--------------Имя канала--------------------------------------------
CreateRegularExpression(0,"(?<=()name"+Chr(34)+">)\S(.*?)(?=()/span)",#PB_RegularExpression_DotAll)
Name.i = ExtractRegularExpression(0,String.s,Name())
For i = 0 To (Name - 1)
AddGadgetItem(#List,-1,Utf2Ansi(RemoveString(Name(i), "<")),0)
Next
FreeRegularExpression(0)
;--------------Адрес канала------------------------------------------
CreateRegularExpression(0,"(?<=()watch.php)\S(.*?)(?=()"+Chr(34)+")",#PB_RegularExpression_DotAll)
Adres.i = ExtractRegularExpression(0,String.s,Adres())
FreeRegularExpression(0)
Wend
CloseFile(0)
EndIf
EndProcedure
Procedure TV(url.s) ;парсинг странисы выбранного канала
URLDownloadToFile_(0,url.s,"TV.txt",0,0)
If ReadFile(0,"TV.txt")
While Eof(0) = 0
string.s= ReadString(0)
HTML.s= Between_2(string,"
Сайт посвящён языку программирования PureBasic
— коммерческий компилятор языка программирования, использующего синтаксис BASIC.
Предназначен для создания кроссплатформенных приложений для AmigaOS, Linux, Microsoft Windows, Windows NT и Mac OS X. Разработан компанией Fantaisie Software.