Что нового

[Файловая система] Разделение и склеивание файлов

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
AutoIt: 3.3.8.0
Версия:

Категория: Файловая система
Описание: Программа может разделять любые файлы на любое количество частей.При этом создается программа склеиватель, которая может соединить части файла в целое с исходным именем.


Код/Пример:
Код:
#include <EditConstants.au3>
#include <StaticConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Opt("GUICloseOnESC", 0)
Opt("TrayMenuMode", 1)
FileInstall('Prosector.jpg', @TempDir & '\Prosector.jpg', 1)
Global $sFolderName, $sNewName, $iSize, $save, $razmer, $sFile
Global $ExitFunc = 0, $Pause = 0

$Form1 = GUICreate("Prosector", 437, 215, -1, -1)
GUICtrlCreatePic(@TempDir & '\Prosector.jpg', -1, -1, 437, 215)
GUICtrlSetState(-1, $GUI_DISABLE)
$Input1 = GUICtrlCreateLabel("", 16, 57, 406, 14)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetFont(-1, 10, 800, 2, "Arial")
GUICtrlSetColor(-1, 0x800080)
$Button1 = GUICtrlCreateButton("Файл", 16, 24, 75, 20, 0x8000)
$Label1 = GUICtrlCreateLabel("", 160, 24, 100, 17)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetData(-1, "Размер файла:")
GUICtrlSetColor(-1, 0x000080)
$Combo1 = GUICtrlCreateInput("", 16, 104, 73, 20, BitOR($ES_CENTER, $ES_NUMBER))
GUICtrlSetFont(-1, 10, 800, 2, "Arial")
GUICtrlSetColor(-1, 0x000080)
$iDummy = GUICtrlCreateDummy()
$size = GUICtrlCreateLabel("", 240, 24, 100, 17)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetFont(-1, 10, 800, 2, "Arial")
GUICtrlSetColor(-1, 0xff0000)
$Label4 = GUICtrlCreateLabel("", 16, 80, 104, 17)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetData(-1, "Кол-во частей")
GUICtrlSetColor(-1, 0x000080)
$Progress1 = GUICtrlCreateProgress(16, 142, 406, 17)
$Button2 = GUICtrlCreateButton("Старт", 16, 176, 75, 20)
$Button3 = GUICtrlCreateButton("Пауза", 184, 176, 75, 20)
$Button4 = GUICtrlCreateButton("Отмена", 348, 176, 75, 20)
$Label3 = GUICtrlCreateLabel("", 160, 104, 100, 17)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetData(-1, "Размер части:")
GUICtrlSetColor(-1, 0x000080)
$sizepart = GUICtrlCreateLabel("", 240, 104, 160, 17)
GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetFont(-1, 10, 800, 2, "Arial")
GUICtrlSetColor(-1, 0xff0000)
GUICtrlSetState($Button3, $GUI_DISABLE)
GUICtrlSetState($Button4, $GUI_DISABLE)

GUISetState(@SW_SHOW)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND_BUTTON")
GUIRegisterMsg($WM_SYSCOMMAND, "WM_SYSCOMMAND")

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case -3
			Exit
		Case $iDummy
			$part_s = GUICtrlRead($Combo1)
			If Not GUICtrlRead($Combo1) = '' And Not GUICtrlRead($Input1) = '' Then
				$iPartSize = Ceiling($razmer / GUICtrlRead($Combo1))
				GUICtrlSetData($sizepart, _ConvertFileSize($iPartSize))
			Else
				GUICtrlSetData($sizepart, '')
			EndIf
		Case $Button1
			 $sFile = FileOpenDialog('', '', '(*.*)')
			If Not $sFile = '' Then
				GUICtrlSetData($Input1, _ShortPath($sFile))
				$razmer = FileGetSize($sFile)
				GUICtrlSetData($size, _ConvertFileSize($razmer))
				GUICtrlSetData($sizepart, '')
				GUICtrlSetData($Combo1, '')
			Else
				GUICtrlSetData($sizepart, '')
				GUICtrlSetData($Combo1, '')
				GUICtrlSetData($Input1, '')
				GUICtrlSetData($size, '')
			EndIf
		Case $Button2
			$ret = _delim()
			GUICtrlSetState($Button1, $GUI_ENABLE)
			GUICtrlSetState($Button2, $GUI_ENABLE)
			GUICtrlSetState($Combo1, $GUI_ENABLE)
			GUICtrlSetState($Button3, $GUI_DISABLE)
			GUICtrlSetState($Button4, $GUI_DISABLE)
	EndSwitch
WEnd

Func _ShortPath($sPath)
	If StringLen($sPath) > 40 Then
		Return StringRegExpReplace($sPath, '(^.{3,11}\\|.{11})(.*)(\\.{6,27}|.{27})$', '\1...\3')
	Else
		Return $sPath
	EndIf
EndFunc   ;==>_ShortPath

Func _delim()
	Local $b = 0, $a = 0
	$Win_name = StringRegExpReplace($sFile, '^.*\\', '')
	If FileExists($sFile) Then
		$iPart = GUICtrlRead($Combo1)
		If Not $iPart = "" Then
			$save = FileSelectFolder('Выберите папку', '', 3, '', $Form1)
			If Not FileExists($save) = 0 Then
				GUICtrlSetState($Button2, $GUI_DISABLE)
				GUICtrlSetState($Button1, $GUI_DISABLE)
				GUICtrlSetState($Combo1, $GUI_DISABLE)
				GUICtrlSetState($Button3, $GUI_ENABLE)
				GUICtrlSetState($Button4, $GUI_ENABLE)
				Global $DataButton3 = GUICtrlRead($Button3)
				_fileinstall()
				Sleep(1000)
				$iMaxRead = 1024 * 100
				$sFolderName = StringRegExpReplace($sFile, '.*\\|\.[^.]*$', '')
				$sNewName = StringRegExpReplace($sFile, '.*\\|\.[^.]*$', '')
				$iSize = FileGetSize($sFile)
				$round = Ceiling($iSize / $iMaxRead)
				$step = Ceiling($round / 100)
				$iPartSize = Ceiling($iSize / $iPart)
				If $iMaxRead > $iPartSize Then $iMaxRead = $iPartSize
				$hFile = FileOpen($sFile, 16)
				If $hFile = -1 Then
					$ExitFunc = 0
					$Pause = 0
					GUICtrlSetData($Progress1, '')
					Return MsgBox(16, 'Ошибка!', 'Ошибка открытия исходного файла')
				EndIf
				For $i = 1 To $iPart
					$hTempFile = FileOpen($save & '\' & $sFolderName & '\' & $i & '_' & $sNewName & '.xyz', 26)
					If $hTempFile = -1 Then
						$ExitFunc = 0
						$Pause = 0
						GUICtrlSetData($Progress1, '')
						FileClose($hFile)
						FileClose($hTempFile)
						DirRemove($save & '\' & $sFolderName, 1)
						Return MsgBox(16, 'Ошибка!', 'Ошибка создания файла' & @CRLF & 'Измените имя файла или конечный путь')
					EndIf
					$iSizeRead = 0
					$iRead = $iMaxRead
					Dim $part_next = $i
					While $iSizeRead < $iPartSize
						If $Pause = 1 Then
							GUICtrlSetData($Button3, 'Далее')
							While 1
								If $Pause = 0 Then
									GUICtrlSetData($Button3, $DataButton3)
									ExitLoop
								EndIf
								If $ExitFunc = 1 Then
									GUICtrlSetData($Button3, $DataButton3)
									ExitLoop
								EndIf
								Sleep(100)
							WEnd
						EndIf
						If $ExitFunc = 1 Then
							$ExitFunc = 0
							$Pause = 0
							GUICtrlSetData($Progress1, '')
							FileClose($hFile)
							FileClose($hTempFile)
							DirRemove($save & '\' & $sFolderName, 1)
							Return
						EndIf
						$sTempText = FileRead($hFile, $iRead)
						If @error Then
							$ExitFunc = 0
							$Pause = 0
							GUICtrlSetData($Progress1, '')
							FileClose($hFile)
							FileClose($hTempFile)
							DirRemove($save & '\' & $sFolderName, 1)
							Return MsgBox(16, 'Ошибка!', 'Ошибка чтения из файла')
						EndIf
						$file_w = FileWrite($hTempFile, $sTempText)
						If $file_w = 0 Then
							$ExitFunc = 0
							$Pause = 0
							GUICtrlSetData($Progress1, '')
							FileClose($hFile)
							FileClose($hTempFile)
							DirRemove($save & '\' & $sFolderName, 1)
							Return MsgBox(16, 'Ошибка!', 'Ошибка записи в файл')
						EndIf
						$iSizeRead += $iRead
						If $iRead > $iPartSize - $iSizeRead Then $iRead = $iPartSize - $iSizeRead
						If $b = $step * $a Then
							GUICtrlSetData($Progress1, $a)
							$a += 1
						EndIf
						$b += 1
					WEnd
					FileClose($hTempFile)
				Next
				FileClose($hFile)
				$ExitFunc = 0
				$Pause = 0
				_script_compile()
				ProcessWaitClose("Aut2exe.exe")
				FileDelete($save & "\" & $sFolderName & "\join.dat")
				GUICtrlSetData($Progress1, 100)
				Sleep(1000)
				GUICtrlSetData($Progress1, '')
				GUICtrlSetData($sizepart, '')
				GUICtrlSetData($Combo1, '')
			ElseIf $save = '' Then
				Return
			ElseIf FileExists($save) = 0 Then
				Return MsgBox(16, 'Ошибка!', 'Путь не существует')
			EndIf
		Else
			Return MsgBox(16, 'ошибка', 'не указано на сколько частей')
		EndIf
	Else
		Return MsgBox(16, 'ошибка', 'нечего делить')
	EndIf
EndFunc   ;==>_delim


Func WM_COMMAND_BUTTON($hWnd, $Msg, $wParam, $lParam)
	Local $nNotifyCode = BitShift($wParam, 16)
	Local $nID = BitAND($wParam, 0xFFFF)
	Switch $nNotifyCode
		Case 0
			Switch $nID
				Case $Button4
					GUICtrlSetState($Button1, $GUI_ENABLE)
					GUICtrlSetState($Button2, $GUI_ENABLE)
					GUICtrlSetState($Combo1, $GUI_ENABLE)
					GUICtrlSetState($Button3, $GUI_DISABLE)
					GUICtrlSetState($Button4, $GUI_DISABLE)
					$ExitFunc = 1
				Case $Button3
					If $Pause = 0 Then
						$Pause = 1
					Else
						$Pause = 0
					EndIf
			EndSwitch
		Case $EN_UPDATE
			GUICtrlSendToDummy($iDummy, 1)
	EndSwitch
	Return 'GUI_RUNDEFMSG'
EndFunc   ;==>WM_COMMAND_BUTTON

Func _script_compile()
	GUICtrlSetData($sizepart, 'Компилирую сборщика')
	$sFile1 = $sFile
	$iPart1 = GUICtrlRead($Combo1)
	Local $s_Script = "Opt('TrayMenuMode', 1 + 2)" & @CRLF & _
			"TraySetClick(16)" & @CRLF & _
			"AdlibRegister('_tray', 50)" & @CRLF & _
			"$nExit = TrayCreateItem('Выход')" & @CRLF & _
			"Global $sFile,$part_next,$iPart,$size_part,$all_size,$hTempFile,$sFile,$hFile" & @CRLF & _
			"For $i = 1 To " & $iPart1 & @CRLF & _
			"If FileExists($i & '_' &'" & $sNewName & ".xyz')=0 Then" & @CRLF & _
			"MsgBox(16,'ошибка','не хватает файлов')" & @CRLF & _
			"Exit" & @CRLF & _
			"EndIf" & @CRLF & _
			"Next" & @CRLF & _
			"$save = FileSelectFolder('Выберите папку', '', 3, @DesktopDir)" & @CRLF & _
			"If $save = '' Or FileExists($save) = 0 Then" & @CRLF & _
			"MsgBox(16,'Ошибка!','Неверен путь сохранения файла')" & @CRLF & _
			"Exit" & @CRLF & _
			"EndIf" & @CRLF & _
			"If $save = '' Then Exit" & @CRLF & _
			"AdlibRegister('_info')" & @CRLF & _
			"$iMaxRead = 1024 * 100" & @CRLF & _
			"$sFile =" & """" & StringRegExpReplace($sFile1, '^.*\\', '') & """" & @CRLF & _
			"$iPart =" & GUICtrlRead($Combo1) & @CRLF & _
			"$sName = StringRegExpReplace($sFile, '.*\\|\.[^.]*$', '')" & @CRLF & _
			"$hFile = FileOpen($save & '\' & $sFile, 26)" & @CRLF & _
			"If $hFile = -1 Then" & @CRLF & _
			"MsgBox(16, 'Ошибка!', 'Ошибка открытия исходного файла' & @CRLF & 'Запустите с правами администратора')" & @CRLF & _
			" Exit" & @CRLF & _
			"EndIf" & @CRLF & _
			"For $i = 1 To $iPart" & @CRLF & _
			"Dim $part_next = $i" & @CRLF & _
			"If FileExists($i & '_' &'" & $sNewName & ".xyz')=0 Then" & @CRLF & _
			"MsgBox(16,'ошибка','не хватает файлов')" & @CRLF & _
			"Exit" & @CRLF & _
			"EndIf" & @CRLF & _
			"$iError = 0" & @CRLF & _
			"$hTempFile = FileOpen(@ScriptDir & '\' & $i & '_' & $sName & '.xyz', 16)" & @CRLF & _
			"While $iError <> -1" & @CRLF & _
			"$sTempText = FileRead($hTempFile, $iMaxRead)" & @CRLF & _
			"$all_size += $iMaxRead" & @CRLF & _
			"$iError = @error" & @CRLF & _
			"FileWrite($hFile, $sTempText)" & @CRLF & _
			"WEnd" & @CRLF & _
			"FileClose($hTempFile)" & @CRLF & _
			"Next" & @CRLF & _
			"FileClose($hFile)" & @CRLF & _
			"AdlibUnRegister('_info')" & @CRLF & _
			"Func _info()" & @CRLF & _
			"TrayTip('Соединяю',  $sFile & @CRLF & 'Размер файла  " & Floor($iSize / 1000000) & " MB'" & "& @CRLF & 'Частей ' & $iPart & @CRLF & 'Текущая часть ' & $part_next & @CRLF & 'Собрано ' & Floor($all_size / 1000000) & ' MB', 5, 1)" & @CRLF & _
			"EndFunc" & @CRLF & _
			"Func _tray()" & @CRLF & _
			"Switch TrayGetMsg()" & @CRLF & _
			"Case $nExit" & @CRLF & _
			"FileClose($hFile)" & @CRLF & _
			"FileClose($hTempFile)" & @CRLF & _
			"FileDelete($save & '\' & $sFile)" & @CRLF & _
			"AdlibUnRegister('_info')" & @CRLF & _
			"Exit " & @CRLF & _
			"EndSwitch" & @CRLF & _
			"EndFunc"
	$h_File = FileOpen($save & "\" & $sFolderName & "\join.dat", 1)
	FileWrite($h_File, $s_Script)
	FileClose($h_File)
	RunWait(@ComSpec & " /C start" & " " & @TempDir & "\Aut2exe.exe /in " & " " & FileGetShortName($save & "\" & $sFolderName & "\join.dat") & " " & "/icon" & " " & @TempDir & "\join.ico", '', @SW_HIDE)
EndFunc   ;==>_script_compile

Func _fileinstall()
	FileInstall("Aut2exe.exe", @TempDir & "\" & "Aut2exe.exe", 1)
	FileInstall("AutoItSC.bin", @TempDir & "\" & "AutoItSC.bin", 1)
	FileInstall("upx.exe", @TempDir & "\" & "upx.exe", 1)
	FileInstall("join.ico", @TempDir & "\" & "join.ico", 1)
EndFunc   ;==>_fileinstall

Func _ConvertFileSize($iBytes)
	Local Const $iConst = 0.0000234375 ; (1024 / 1000 - 1) / 1024
	Switch $iBytes
		Case 110154232090684 To 1125323453007766
			$iBytes = Round($iBytes / (1099511627776 + $iBytes * $iConst)) & ' TB'
		Case 1098948684577 To 110154232090683
			$iBytes = Round($iBytes / (1099511627776 + $iBytes * $iConst), 1) & ' TB'
		Case 107572492277 To 1098948684576
			$iBytes = Round($iBytes / (1073741824 + $iBytes * $iConst)) & ' GB'
		Case 1073192075 To 107572492276
			$iBytes = Round($iBytes / (1073741824 + $iBytes * $iConst), 1) & ' GB'
		Case 105156613 To 1073192074
			$iBytes = Round($iBytes / (1048576 + $iBytes * $iConst)) & ' MB'
		Case 1048040 To 105156612
			$iBytes = Round($iBytes / (1048576 + $iBytes * $iConst), 1) & ' MB'
		Case 102693 To 1048039
			$iBytes = Round($iBytes / (1024 + $iBytes * $iConst)) & ' KB'
		Case 1024 To 102692
			$iBytes = Round($iBytes / (1024 + $iBytes * $iConst), 1) & ' KB'
		Case 0 To 1023
			$iBytes = Int($iBytes / 1.024) & ' B'
	EndSwitch
	Return $iBytes
EndFunc   ;==>_ConvertFileSize

Func WM_SYSCOMMAND($hWmd, $Msg, $wParam, $lParam)
	If $wParam = 0xF060 Then Exit
	Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_SYSCOMMAND


Файл: AU3,EXE



История версий:
первая и последняя

Источник: autoit-script.ru
Авторы: joiner

OffTopic:
фоновое изображение это своеобразной формы нож :smile:
 

Вложения

  • prosector.jpg
    prosector.jpg
    31 КБ · Просмотры: 38

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
А прикол в чём? :scratch:
Любой архиватор умеет разбивать архив на части, а потом эти части склеивать.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
прикол во власти, что знаешь, что твоя программа/скрипт делает :smile:
наверное
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
C2H5OH
в принципе ты прав, никакого прикола. все взаправду :smile:
а если по сути, то может и не стоит ничего сочинять. программ полно с нужным функционалом..зачем тужиться?
так что сочти эту тему просто как пример того, что можно сделать на AutoIT..
можно установить любое расширение конечным частям. при этом для сбора в единое целое не нужно устанавливать программу. просто запустить созданный в результате раздела сборщик.

Kaster [?]
конечно "наверное" :smile:
в итоге то писал не я. так..просто дописал простенькое окошко, постарался учесть ошибки при выполнении. ну и дописал создание файла-сборщика. точнее - доклеил.
я не писатель программ, я склеиватель...может быть ник сменить на joiner ? ;)
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Александр
с новым годом и с новым скриптом ;)
 

_Lexa98_

Осваивающий
Сообщения
551
Репутация
25
Я на днях выложил скрипт типо этого, только он соединяет два exe: http://autoit-script.ru/index.php/topic,8153 :smile:
И кстати, с новым годом :smile:
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
C2H5OH [?]
Под эту точку зрения, можно подвести любую работу в данном разделе. Но ведь "прикол" именно в том и заключается, что это творение ваших рук, ваше детище, пусть даже и не столь гениальное как OS UNIX ;D
 

StarEdik

Новичок
Сообщения
365
Репутация
4
Привет .Хорошая и нужная программа .Хотелось бы узнать, могли бы вы дописать программу так ,чтоб( после уточнения разделяемого файла ) по размеру разделяемого файла предлагать размер для деления файла по кускам , ну допустим с выбором из Combobox-a. Удачи вам и с новым годом !
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
StarEdik
имеется ввиду деление по мегабайтам - килобайтам? немного не понял вопроса :smile:
 

StarEdik

Новичок
Сообщения
365
Репутация
4
Александр
имеется ввиду деление по мегабайтам - килобайтам?
Да.В программе предлагается деление на частей. Можно при выборе количества частей показать размер кусков .
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
добавил второй вариант скрипта. значительно отличается от первого.
можно наблюдать за реальным процессом работы (наверное :smile: ) и остановить горячими клавишами
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
сделал изменения в программе.
1.изменения в коде (остановка, пауза и тп)
2.изменения в графическом интерфейсе
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
140006553 по моему это лучше записать как "140 006 553 байт" или округлять до значимых чисел 140 Мб
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
AZJIO
спасибо еще раз. нашел как раз твой вариант http://autoit-script.ru/index.php/topic,9504.msg63287.html#msg63287


Добавлено:
Сообщение автоматически объединено:

поправил код. теперь все читабельно :smile:


Добавлено:
Сообщение автоматически объединено:

обнаружил небольшой косяк - на другом разрешении экрана не отображается полностью текст в label. изменил размеры и жирность шрифтов
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
joiner
Путь не входит, луше использовать типа
Код:
$sPath = 'C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe'
MsgBox(0, 'Сообщение', _ShortPath($sPath))

Func _ShortPath($sPath)
	If StringLen($sPath)>40 Then
		Return StringRegExpReplace($sPath, '(^.{3,11}\\|.{11})(.*)(\\.{6,27}|.{27})$', '\1...\3')
	Else
		Return $sPath
	EndIf
EndFunc


Лейблы можно применить выравнивание по правому краю, так они будут стройно.
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
спасибо за код
что ж все таки с разрешением делать? или делать проверку на разрешение экрана и подставлять свой размер?
но это глюк..хотя...
 

erlik

Продвинутый
Сообщения
317
Репутация
84
Для урезания пути хорошо подходит _WinAPI_PathCompactPath()
Код:
SetPathCompactPath()
Func SetPathCompactPath()
Local $Label, $hLabel
GUICreate('MyGUI', 260, 60)
$Label = GUICtrlCreateLabel('', 10, 22, 240, 16)
$hLabel = GUICtrlGetHandle($Label)
GUICtrlSetData(-1, _WinAPI_PathCompactPath($hLabel,"C:\windows\11111111\22222222\3333333\44444\55555\666666.txt",-100)); урезает путь до ширины контрола либо заданной ширины в третьем параметре
;Из справки: Если этот параметр равен 0, ширина будет равна ширине клиентской области окна. Если этот параметр имеет отрицательное значение, если ширина будет уменьшается до абсолютного значения.
GUISetState()
Do
Until GUIGetMsg() = -3
EndFunc
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
изменил кое что по мелочи в размере шрифтов. смотри скрин в первом сообщении. изменил код-пример
если кому не трудно посмотреть как будут смотреться шрифты на других разрешениях.
косяк с отображениями шрифтов, о котором я писал выше, был на разрешении экрана 1366x768
на ноуте дописывал код и заметил глюк
 

erlik

Продвинутый
Сообщения
317
Репутация
84
Ноутбучные разрешения для моего моника недоступны, но вот что заметил на своем с 1280x1024:

Проявляется примерно под конец прогресса обработки файла. Вначале размер части отображается нормально.
 
Автор
joiner

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
не было указано имя шрифта. исправил
Код:
GUICtrlSetFont(-1, 10, 800, 2, "Arial")
 
Верх