G
GenoTIP
Гость
В общем начал я разбирать библиотеку Yashied`а из вот этой темы http://autoit-script.ru/index.php/topic,2263.0.html
Решил написать простецкую програмку и вот с чем столкнулся. (выложил только саму функцию код программы в примере по ссылке выше)
Не могу понять, как вот в этом месте..
правильнее написать процесс занесения в $text информации типа 3/24 при том, что строка может быть не одна(!)
ну и заодно хочу узнать, можно как-то вот это сократить? трудоемкость снизить
Решил написать простецкую програмку и вот с чем столкнулся. (выложил только саму функцию код программы в примере по ссылке выше)
Код:
Func _Popup1()
Local $hGraphic, $hArea, $hBitmap, $hFamily, $hFont, $hFormat, $hBrush, $tLayout, $aData
Local $sHtml,$string,$repString,$iMass,$i
$sHtml = BinaryToString(InetRead('http://tf2.tomsk.ru/',1))
$online = StringRegExp($sHtml , 'nbsp;
<b>(\d+)',3)
$maxslot = StringRegExp($sHtml , 'nbsp;
<b>\d+</b>/(\d+)</td>',3)
$iMass = UBound($maxslot)
;_ArrayDisplay($maxslot)
For $i=0 To $iMass-1
$players[$i] = $online[$i] & "/" & $maxslot[$i]
$Text = $players[$i]
;MsgBox(0,"",$Text)
Next
$hArea = _GDIPlus_BitmapCloneArea($hImage1, 0, 0, 133, 133, $GDIP_PXF32ARGB)
$hGraphic = _GDIPlus_ImageGetGraphicsContext($hArea)
$hFamily = _GDIPlus_FontFamilyCreate('Tahoma')
$hFont = _GDIPlus_FontCreate($hFamily, 12, 0, 2)
$tLayout = _GDIPlus_RectFCreate(0, 0, 0, 0)
$hFormat = _GDIPlus_StringFormatCreate()
$hBrush = _GDIPlus_BrushCreateSolid(0xC0FFFFFF)
_GDIPlus_GraphicsSetTextRenderingHint($hGraphic, 3)
$aData = _GDIPlus_GraphicsMeasureString($hGraphic, $Text, $hFont, $tLayout, $hFormat)
$tLayout = $aData[0]
DllStructSetData($tLayout, 1, (133 - DllStructGetData($tLayout, 3)) /2 )
DllStructSetData($tLayout, 2, (133 - DllStructGetData($tLayout, 4)) /2)
_GDIPlus_GraphicsDrawStringEx($hGraphic, $Text, $hFont, $aData[0], $hFormat, $hBrush)
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hArea)
_GDIPlus_GraphicsDispose($hGraphic)
_GDIPlus_StringFormatDispose($hFormat)
_GDIPlus_FontFamilyDispose($hFamily)
_GDIPlus_FontDispose($hFont)
_GDIPlus_BrushDispose($hBrush)
_GDIPlus_ImageDispose($hArea)
If Not _Popup_IsActive($hPopup1) Then
_Popup_Show($hPopup1,$hBitmap, 1, @DesktopWidth - 90, @DesktopHeight - 110, -1)
Else
_Popup_Hide($hPopup1)
EndIf
EndFunc ;==>_Popup1
Не могу понять, как вот в этом месте..
Код:
For $i=0 To $iMass-1
$players[$i] = $online[$i] & "/" & $maxslot[$i]
$Text = $players[$i]
;MsgBox(0,"",$Text)
Next
правильнее написать процесс занесения в $text информации типа 3/24 при том, что строка может быть не одна(!)
ну и заодно хочу узнать, можно как-то вот это сократить? трудоемкость снизить
Код:
$online = StringRegExp($sHtml , 'nbsp;
<b>(\d+)',3)
$maxslot = StringRegExp($sHtml , 'nbsp;
<b>\d+</b>/(\d+)</td>',3)