PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Программирование для ПК (https://www.pspx.ru/forum/forumdisplay.php?f=474)
-   -   HiAsm – среда визуального программирования (https://www.pspx.ru/forum/showthread.php?t=107986)

in1975 06.10.2018 15:22

ErikPshat, да если на консоль выводить, то проблем нет, только некрасиво. Нафига тогда все эти индикаторы рисовали...

ErikPshat 06.10.2018 18:06

in1975, ну и что, что на консоль. Ну если в окне лога проявляются такие косяки внезапно, тогда нужно всё-таки что-то с этим делать. И уж конечно обходить стороной возможные проблемы. Консоль - она и в африке консоль. Ничего такого, если будут скачиваться обновления через консоль.

А то время уже сколько прошло. А воз и ныне там. Старая утилита у многих даёт сбои, тоже то одно, то другое. Каждый день в теме жалобы.
Вон, например, моя старая PS3GameConvert_v091 не даёт же подобных сбоев. Не видел от неё таких жалоб ни у нас, ни за бугром, где поголовно ей многие пользуются. Даже стабильнее работает, чем CFW2OFW_Helper, с которой тоже у многих проблемы и куча жалоб.

У меня же нет никаких проблем с пробелами в путях, а у тебя они есть.
Потому что ты используешь извращённые методы, а не последовательность действий.
Не надо усердствовать с командой Call и Exit/b, эти команды часто дают сбои. А ты их кругом напихал, где это даже совсем не нужно, так же, как ты её пихнул даже в dirsplit_last... Вот выписка из твоего кода:
Код:

setlocal enabledelayedexpansion
for %%b in (chunk*.txt) do (
for /f "tokens=*" %%I in (%%b) do (
call :nm %%b
echo f|xcopy /T /E "%%I" "SPLITTED\!fn!\%%I" >nul
copy param.sfo "SPLITTED\!fn!\!fdir!" >>log.txt
move "%%I" "SPLITTED\!fn!\%%I" >>log.txt
)
)
echo done
exit

:nm
set fn=%~n1
exit /b

Зачем ты вытащил через call :nm %%b всего одно действие в конец файла отдельной секцией, причём с возвратом обратно.
Чтобы получить всего-лишь имя файла, ты произвёл целую махинацию.
Поэтому команда call :nm %%b вместе с переходом в другую область и возврат обратно обычно пишется простым кодом с последовательным выполнением: set fn=%%~nB
Ну и так далее... куча лишних телодвижений, причём ничем не оправданных, отсюда лишние косяки в работе программы.


Потом ты как-то спрашивал по поводу кавычек и заменил там на puch
Там кавычки вроде бы должны были передаваться из set path="c:\path"
А далее, в команде FOR они теряются, потому что выставлено на весь батник расширенное setlocal enabledelayedexpansion
Там что-то for %%I in (%path%) do ()
Так вот, в этом (%path%) должен приходить путь с кавычками, но кавычки обрезаются.
Тут нужно избавится от расширения команд setlocal enabledelayedexpansion, если в этом нет непосредственной необходимости, что в основном накладывает твоя любимая Call.
Затем нужно разрешить в скобках использование двойных кавычек вот этим - "usebackq".
В общем, пока занимаюсь своей PS3GameExtractor, просматривал твой код, увидел кучу необоснованных решений и кругом напиханное Call.
Я эту команду стараюсь обходить стороной, использую только там, где без неё по другому не обойтись, потому что ранее много раз сталкивался со сбоями из-за неё. Поэтому её выполнение приходится пихать в самый конец батника, иначе, в середине кода, команда иногда не даёт обратный возврат и почему-то читает Exit/b или EOF просто как Exit и вылетает.

Потом столкнулся с проблемой, при копировании xcopy dir%%I newdir%%I
Прога постоянно запрашивает Это файл или папка? )))
Ты же сделал хук через подтверждение, что это файл: echo F|
Дело в том, что мы даём команду на копирование файла из одной папки, как тот же файл в другую папку.
Хотя должны копировать файл из одной папки в другую папку. То есть, должны копировать файл в папку, а не файл в файл!
Посмотри мой код в ISS, как я это реализовал. Я просто у конечного файла обрезал имя файла:
Код:

set pn=%%~I
xcopy /y "!fnm!\%%~I" "!tmp!\SPLITTED\!fn!\!pn:%%~nxI=!"

И, кстати, батник у меня создаётся динамически.
Я создал листинг всех строк батника в ISS
А потом в батнике сделал переменные, которые берутся из основной программы и батник потом создаётся в папке %TEMP% с указанными пользователем переменными в программе, там путь к выбранной папке, размер папки для деления, вообщем динамические свойства. Ты можешь посмотреть как сохраняется батник в папке %TEMP% и как там разворачиваются пути из переменных.

ErikPshat 06.10.2018 18:45

in1975, сама консоль CMD знаешь какую имеет кодировку? Правильно: cp866
Если ты через батник собираешься передавать и отлавливать пути в русской раскладке, тогда и батник должен быть в кодировке cp866.
А зачем ты изменил мою кодировку cp866 на windows-1251 и вписал в начале chcp?
Конечно у тебя начнутся проблемы с несоответствием консоли CMD cp866 с windows-1251, даже с русскими путями.
Поэтому ты и занимаешься такими вот извращениями:
Код:

Set AlphabetL=abcdefghijklmnopqrstuvwxyz !"#$%&()*+,-/;<>?[\]^_„†‡‰•–™Ўў¤¦§Ё©Є¬Ї°µ¶·ё№є~+-`'©®
Где символ доллара $, одинарные кавычки ', косые ` и т.п. нужно ещё экранировать.
И потом, неизвесто какая у юзера на компе стоит кодировка, даже если винда русская, может быть чел использует LangPack.

BaseD 07.10.2018 13:16

В HiAsm есть "кубик" работающий с кодировками.
Может сначала через него прогонять, а потом выводить в консоль?

in1975 07.10.2018 13:37

BaseD, давно уже сделано. Просто некоторые не следят за последними схемами и батниками.

ErikPshat 08.10.2018 01:08

in1975, ну я смотрел твою 3.0 Альфа. Почему тогда каждый день один за другим в теме появляются сообщения, что прога вылетает или стоит на месте или ещё чего там.
От тебя же летят советы, типа вон там пробел в пути. Это же бред, указывать на пробелы. Я понимаю там спецсимволы, которые прога может интерпретировать как служебный программный код. Но ты вроде бы с этим боролся, выставил подмену, иероглифов начеркал. Тогда почему и на них спотыкается программа?

in1975 08.10.2018 08:19

ErikPshat, дело не в батнике совершенно. Про спецсимволы я уже давно защиту сделал. И экранировать в том цикле нельзя, там каждый символ подставляется, если ты не заметил

in1975 19.10.2018 02:41

Похоже выловил ошибку которая крашила ехе. Тестите.

ErikPshat 19.10.2018 14:08

in1975, и вот это уже убери из консоли, а то напрягает уже на экране мелькать:

Код:

          Make pkg han tool v.3.0
             
 Created mod by In1975 for site pspx.ru 
 Modded by & rupor & ErikPshat & BaseD 
 _______________________________________

Код:

                -= DONE =-

-------------------BIG thanks for PS3XPLOIT TEAM----------------------------
For HAN tools by W, escortd3w, bguerville, habib and Specialy Joonie
For RESIGNER ACT.DAT/RIF/ENC/EDAT/CONFIG PS2/PSX/PSP content for PS3
For PSPx Team for this utility: in1975, hexcsl, Alex_1985, ErikPshat, BaseD
----------------------------------------------------------------------------

Оставь в конце только -= DONE =-
Просто есть же меню "О программе", поэтому в этих кредитах необходимость отпала.

Ang3l42 19.10.2018 14:44

Цитата:

Сообщение от ErikPshat (Сообщение 1155150)
и вот это уже убери из консоли, а то напрягает уже на экране мелькать:

Поддерживаю.

BaseD 20.10.2018 10:30

Цитата:

Сообщение от in1975 (Сообщение 1155133)
Похоже выловил ошибку которая крашила ехе. Тестите.

Э нет, так дело не пойдет :acute:
Давай рассказывай, что было, а то опять по тем же граблям в следующий раз.

Кстати вот:
https://preview.ibb.co/fhhrAf/1.jpg

Галочки ставятся, так и задумано?


Еще момент:
https://preview.ibb.co/htzhGL/2.jpg

Вроде раньше в HFS порт автоматом передавался?

ErikPshat 20.10.2018 15:00

Цитата:

Сообщение от in1975 (Сообщение 1155133)
Похоже выловил ошибку которая крашила ехе. Тестите.

А я что-то не понял юмора. Закинул тестовую папкку NPUB30826 (Assassin's Creed® III [NPUB30826] ver1.07)), пытался сконвертировать, он и патч не начал скачивать и при конверте какую-то белиберду начал выдавать.

Потом нажимаю кнопку "Проверить наличие патча". Он мне пишет:
Код:

Check path for ПРОВЕРИТЬ
==============================================
Not find game update. Sorry...
==============================================

Через PS3 Game Updates показывает один патч.
Или в проге заблокировано скачивание патчей для NP игр и их конвертирования?

in1975 20.10.2018 20:51

BaseD, ошибка в MathParser - это где я игрался цветами в "о программе".

Цитата:

Сообщение от BaseD (Сообщение 1155231)
Вроде раньше в HFS порт автоматом передавался?

буду копать.

Цитата:

Сообщение от ErikPshat (Сообщение 1155237)
NPUB30826

А зачем Вы конвертируете PSN игру? :acute:

Код:

Check path for NPUB30826
==============================================
Find path for NPUB30826:
http://b0.ww.np.dl.playstation.net/tppkg/np/NPUB30826/NPUB30826_T33/e6453f2404d7ad0b/UP0001-NPUB30826_00-AC3DIGITALPSN001-A0107-V0100-PE.pkg       
---                                                                                                                   
http://b0.ww.np.dl.playstation.net/tppkg/np/NPUB30826/NPUB30826_T33/e6453f2404d7ad0b/2/UP0001-NPUB30826_00-AC3DIGITA...
==============================================
                -= DONE =-


ErikPshat 20.10.2018 20:59

Цитата:

Сообщение от in1975 (Сообщение 1155255)
А зачем Вы конвертируете PSN игру? :acute:

Ну так нужно проверять ситуации, как бы мог поступить просто-юзер.
По идее прога должна была хотя бы скачать обновление или сообщить, что обновление имеется, но вы конвертировать PSN-игру не можете.

BaseD 21.10.2018 09:39

Цитата:

Сообщение от in1975 (Сообщение 1155255)
BaseD, ошибка в MathParser - это где я игрался цветами в "о программе".

Я так и подумал, были скрины в теме с HAN-ом, там было видно.
Вот только не ясно было в каком MathParser, он же не один там.

Цитата:

буду копать.
В package_link.xml адрес прописывается как надо, с портом.
Код:

<Table key="pkg_000">
                <Pair key="icon"><String>http://192.168.1.5:8000/icons/Package_List.PNG</String></Pair>

Такая беда и в версии 2.9 и в альфе тоже.
Интересно как у людей при этом работает соединение с PS3?

Вот кусок от 2.9.2 (тут работает)
2.9.2
Код:

:63
echo Create Pkg List... |%col% 0A
set curd=%cd%
%pklm%
cd %tls%
call :makepkg
call :5
move /Y %tls%\*.pkg %curd%\Package_List.pkg >>log.txt
cd %curd%
if exist port.ini (set /p port=<port.ini) else (set port=80)
if exist ip.ini (set /p ips=<ip.ini) else (set ips=)
set hs=.\\tools\hfs.exe -c ip=%ips%\nport=%port% .\\tools\PS3Xploit_files\ .\\tools\icons .\\tools\flags
for %%j in (*.pkg) do set hs=!hs! .\\%%j
echo Run Server... |%col% 05
start /B %hs%
goto :end



Это от альфы (тут не работает)
Альфа
Код:

:63
echo Create Pkg List...
echo run %pklm%
%pklm%
cd "%tls%"
set ts=.\
set conf=!ts!package.conf
call :makepkg
call :5
move /Y *.pkg "%curd%\Package_List.pkg" >>!logs!
cd %curd%

set name=Host
set prt=port
for /f "tokens=1,2 delims==" %%a in (config.ini) do (
set nm=%%a
if !nm!==!name! set ips=%%b
if !nm!==!prt! set port=%%b
)
set hs=.\\tools\hfs.exe -c ip=%ips%\nport=%port% .\\tools\PS3Xploit_files\ .\\tools\icons .\\tools\flags
for %%j in (*.pkg) do set hs=!hs! .\\%%j
echo Run Server...
start /B %hs%
goto :end




P.S Кстати нашел пару вариантов с мигающем текстом у товарищей на форуме.
Код
Код:

Add(MainForm,8351296,322,42)
{
 Width=336
 Height=220
 Point(doColor)
}
Add(Label,4824551,476,35)
{
 Left=35
 Top=15
 Width=126
 Height=32
 Align=2
 Color=65280
 Font=[MS Sans Serif,16,0,0,1]
 Caption="Привет"
 Alignment=2
 Point(doColor)
}
Add(Timer,1948251,378,42)
{
 Interval=600
 link(onTimer,7625762:doSwitch,[])
}
Add(Switch,7625762,427,42)
{
 DataOn=Integer(65280)
 DataOff=Integer(15790320)
 link(onSwitch,4824551:doColor,[])
}
Add(Timer,12842578,322,154)
{
 Interval=100
 link(onTimer,6516970:doNext,[])
}
Add(Label,6741468,476,112)
{
 Top=32
 Width=320
 Height=32
 Align=2
 Color=65280
 Font=[MS Sans Serif,16,0,0,1]
 Caption="Привет"
 Alignment=2
 Point(doColor)
}
Add(StrList,5420308,427,112)
{
 Strings=#8:16448255|8:16775416|8:16119285|8:14474460|8:15792895|8:15136253|8:15134970|8:14150650|8:14020607|8:13495295|8:12903679|8:12180223|8:11394815|8:11920639|8:14481663|8:15794175|8:13499135|8:15660543|8:15794160|8:16449525|8:16777200|8:16775408|8:16443110|8:16118015|8:14804223|8:16777215|1:0|7:5197615|7:6908265|7:9470064|8:10061943|8:12500670|8:13882323|7:7346457|7:8388608|8:15570276|7:9125192|8:13458026|8:15624315|8:16740484|8:13434880|8:14772545|8:16711680|8:16748574|8:16760576|8:15453831|8:16436871|8:11829830|8:14599344|8:15128749|8:15130800|8:15658671|8:13749760|8:13422920|8:13688896|8:16776960|8:16777184|8:10526303|8:11193702|8:13959039|5:25600|7:3107669|7:9419919|7:5737262|7:7451452|8:11186720|8:10025880|7:8388352|5:64636|5:65280|5:65407|8:10156544|7:3145645|7:3329330|7:3329434|7:2263842|7:2330219|7:7059389|8:11200750|8:13826810|8:14745599|5:65535|5:55295|7:8576494|7:2139610|6:755384|7:9408444|7:6053069|7:1262987|7:2970272|7:4163021|7:8894686|8:14480885|8:11788021|7:6333684|7:9221330|7:1993170|7:2237106|7:2763429|7:8034025|7:7504122|7:8036607|5:42495|5:36095|7:5275647|7:8421616|7:4678655|5:17919|3:255|8:11823615|7:9639167|8:13353215|8:12695295|7:9662683|7:6303920|7:8721863|7:9445584|8:16711935|8:15631086|8:14524637|8:14053594|8:13850042|8:13382297|8:13828244|8:14822282|8:15736992|8:14381203|8:14204888|8:16448255|8:15329774|8:13224397|7:9013643|8:15660543|8:14607854|8:12568013|7:8554123|8:14413823|8:13426670|8:11583693|7:7897995|8:12903679|8:12047854|8:10401741|7:7044491|8:12180223|8:11389934|7:9809869|7:6649739|8:11394815|8:10604526|7:9155533|7:6191499|8:13499135|8:12577262|8:10865101|7:7375243|8:14481663|8:13494510|8:11651277|7:7899275|8:15794175|8:14741230|8:12701133|7:8620939|8:15794160|8:14741216|8:12701121|7:8620931|8:16118015|8:15065326|8:12960205|7:8815499|8:14804223|8:13817326|8:11909069|7:8093067|8:16777200|8:15658720|8:13487553|7:9145219|8:16740227|8:15624058|8:13457769|7:9124935|8:16741960|8:15625795|8:13459258|7:9125927|8:16711680|8:15597568|8:13434880|7:9109504|8:16748574|8:15631900|8:13464600|7:9129488|8:16758883|8:15641692|8:13472847|7:9135158|8:16760576|8:15643136|8:13474304|7:9136128|8:16764551|8:15646846|8:13477484|7:9138250|8:16769712|8:15651748|8:13481613|7:9141088|8:16769734|8:15651769|8:13481631|7:9141100|8:16769482|8:15651516|8:13481378|7:9141102|8:16773055|8:15654834|8:13484186|7:9143144|8:16777184|8:15658705|8:13487540|7:9145210|8:16777147|8:15658670|8:13487510|7:9145190|8:16774552|8:15656334|8:13485434|7:9143891|8:16774400|8:15656192|8:13485312|7:9143808|8:16776960|8:15658496|8:13487360|7:9145088|8:16777111|8:15658637|8:13487481|7:9145170|8:13959039|8:13037174|8:11193702|7:7637829|8:12713921|8:11857588|8:10210715|7:6916969|8:10485588|7:9760334|7:8441155|7:5737262|8:10157978|7:9498256|7:8179068|7:5540692|7:8388352|7:7794176|7:6737152|7:4557568|5:65280|5:60928|5:52480|5:35584|5:65407|5:61046|5:52582|5:35653|7:4128704|7:3862195|7:3329434|7:2263913|7:7405514|7:6876860|7:5950882|7:4033390|7:9434879|7:8775406|7:7587533|7:5146251|7:9170175|7:8576238|7:7388877|7:5013899|8:14745599|8:13758190|8:11849165|7:8031115|5:65535|5:61166|5:52685|5:35723|5:55295|5:51694|5:44493|5:30091|7:2474495|7:2274542|7:1940429|7:1337739|7:1030655|6:962030|6:824781|6:550283|8:12698111|8:11842798|8:10197965|7:6908299|7:6974207|7:6513646|7:5592525|7:3816075|7:4686591|7:4356590|7:3762381|7:2508683|8:10212351|7:9553390|7:8235725|7:5600139|8:12249087|8:11458798|7:9878221|7:6717067|7:5219839|7:4823790|7:4163021|7:2841227|7:2392063|7:2193134|7:1926861|7:1262987|7:3158271|7:2895086|7:2500301|7:1710731|7:4210943|7:3881966|7:3355597|7:2302859|7:6917375|7:6456046|7:5533901|7:3755147|7:8036607|7:7509486|7:6455757|7:4347787|5:42495|5:39662|5:34253|5:23179|5:32767|5:30446|5:26317|5:17803|7:5665535|7:5270254|7:4545485|7:3096203|7:4678655|7:4349166|7:3755981|7:2504331|5:17919|5:16622|5:14285|4:9611|3:255|3:238|3:205|3:139|7:9639167|7:8983278|7:7737549|7:5245579|8:11824895|8:10971886|7:9461965|7:6437515|8:12957183|8:12102126|8:10392013|7:7103371|8:12168959|8:11379438|7:9800909|7:6643595|8:11240191|8:10451438|7:9005261|7:6113163|8:11744511|8:10957038|7:9447885|7:6429835|7:9846527|7:9190126|7:7877325|7:5382795|8:16711935|8:15597806|8:13435085|7:9109643|8:16417791|8:15301358|8:13199821|7:8996747|8:16759807|8:15642350|8:13473485|7:9135755|8:16738016|8:15622097|8:13456052|7:9123706|8:16727743|8:15612594|8:13447834|7:9118312|8:16724123|8:15608977|8:13444733|7:9116245|8:16745131|8:15628703|8:13461641|7:9127773|8:16769535|8:15651566|8:13481421|7:9141131|7:1842204|7:3552822|7:5197647|7:6908265|7:8553090|8:10263708|8:11908533|8:13619151|8:15263976|8:11119017|7:9109504|7:9145088|7:9109643|3:139|7:9498256|
 Point(doGetString)
 Point(onGetString)
 link(onGetString,6741468:doColor,[])
}
Add(CounterEx,6516970,378,154)
{
 Max=455
 Default=-1
 link(onNext,5420308:doGetString,[])
}
Add(Label,3178541,469,217)
{
 Top=64
 Width=320
 Height=28
 Align=2
 Font=[MS Sans Serif,14,1,0,1]
 Caption="И утром три привета"
 Alignment=2
 Point(doColor)
}
Add(Timer,4661005,329,224)
{
 Interval=100
 link(onTimer,706467:doCalc,[])
}
Add(MathParse,706467,378,224)
{
 DataCount=0
 MathStr="(%0<256)*(%0+8) + (%0>=256)*(%0<65280)*(((%0 div 256)+8)*256 + 255) + (%0>=65280)*(%0<16777215)*(((%0 div 65536)+8)*65536 + 65280) +  (%0>=16777215)"
 Default=1
 link(onResult,3178541:doColor,[])
}



Попробовал самый первый, все тоже самое что и было, только без "Парсера"
Там и таймер, по идее можно запускать только тогда, когда открывается окно "О Программе", а так он работает постоянно при старте.

in1975 21.10.2018 11:47

BaseD, config.ini поправь так:

Код:

port=80
Пробел который там был все ломает. Бетку пофиксил.

BaseD 21.10.2018 14:38

Цитата:

Сообщение от in1975 (Сообщение 1155278)
Пробел который там был все ломает. Бетку пофиксил.

Ну вот, другое дело :)

ErikPshat 21.10.2018 19:01

Я не понимаю смысла в этом украшательстве с левым слешем:
Код:

set hs=.\\tools\hfs.exe -c ip=%ips%\nport=%port% .\\tools\PS3Xploit_files\ .\\tools\icons .\\tools\flags
Если его нужно экранировать, тогда надо это делать везде, а не выборочно через раз.
А если везде нет необходимости, тогда значит нигде нет такой необходимости.

in1975 21.10.2018 23:14

ErikPshat, особенности HFS, забей.

BaseD 24.10.2018 12:59

Нашел примерчик, по организации обновления
Код
Код:

Add(MainForm,2953706,14,168)
{
 link(onCreate,11981941:doStrCat,[])
}
Add(ZLIB,9579638,329,182)
{
 @Hint=#21:Так как файл сжатый, |20:то разархивируем его|
 link(onStream,7093061:doConvert,[])
 AddHint(-47,-42,132,26,@Hint)
}
Add(Convertor,7093061,511,182)
{
 @Hint=#26:Преобразуем поток в строку|
 Mode=11
 link(onResult,377252:doText,[])
 AddHint(-75,-56,162,13,@Hint)
}
Add(ListBox,377252,637,161)
{
 @Hint=#6:Список|30:Хеш-сумма - пробел - имя файла|
 Top=45
 Width=380
 Height=195
 AddHint(-13,-45,166,26,@Hint)
}
Add(ArrayEnum,11715902,266,357)
{
 @Hint=#7:Читаем |9:построчно|
 link(onItem,1531506:doSplit,[])
 link(Array,377252:Array,[(272,243)(657,243)])
 AddHint(15,-59,57,26,@Hint)
}
Add(StrPart,1531506,378,357)
{
 @Hint=#17:Разбиваем строку |14:на хеш-сумму и|9:имя файла|
 Char=" "
 Point(Left)
 Point(Right)
 link(onSplit,13501557:doFileHashsum,[])
 AddHint(-12,-72,112,39,@Hint)
}
Add(Hashsum,13501557,504,350)
{
 @Hint=#18:Получаем хеш-сумму|12:своего файла|
 link(onResult,10188270:doCompare,[])
 AddHint(-8,-53,122,26,@Hint)
}
Add(If_else,10188270,637,350)
{
 @Hint=#21:Сравниваем хеш-суммы.|27:Если не равны, то скачиваем|17:измененный файл  |
 link(onFalse,141556:doWork,[])
 link(Op2,1531506:Left,[(650,338)(425,338)(425,400)(384,400)])
 AddHint(0,-65,150,39,@Hint)
}
Add(Edit,10727001,77,119)
{
 Left=10
 Top=10
 Width=150
 Text="http://hiasm.com/hi_zvcs"
}
Add(Edit,3624618,133,119)
{
 Left=210
 Top=10
 Width=170
 Text="/hashed.txt"
}
Add(StrCat,11981941,91,182)
{
 link(onStrCat,14660423:doDownload,[])
 link(Str1,6687087:Var3,[(97,166)])
 link(Str2,3624618:Text,[(104,166)(139,166)])
}
Add(HTTP_Get,14660423,175,182)
{
 @Hint=#24:Получаем информационный |15:файл hashed.txt|26:с сервера http://hiasm.com|18:с каталога hi_zvcs|
 link(onDownload,9579638:doDeCompress,[])
 link(onStop,11715902:doEnum,[(234,209)(234,363)])
 AddHint(-75,-136,161,52,@Hint)
}
Add(StrCat,9582193,119,525)
{
 @Hint=#27:Формируем URL для получения|18:обновленного файла|
 link(onStrCat,13142930:doDownload,[])
 link(Str1,6687087:Var2,[(125,337)(83,337)])
 link(Str2,918986:Var1,[(132,439)])
 AddHint(-99,52,178,26,@Hint)
}
Add(GetDataEx,6687087,77,161)
{
 link(Data,10727001:Text,[])
}
Add(HTTP_Get,13142930,189,525)
{
 @Hint=#21:Скачиваем нужный файл|
 Wait=0
 link(onDownload,13547628:doDeCompress,[])
 AddHint(-30,-34,142,13,@Hint)
}
Add(ZLIB,13547628,294,525)
{
 @Hint=#21:Так как файл сжатый, |20:то разархивируем его|
 link(onStream,6242335:doCopyFromStream,[])
 AddHint(-56,48,132,26,@Hint)
}
Add(FileStream,6242335,385,511)
{
 @Hint=#22:Сохраняем файл на диск|
 Mode=1
 AutoCopy=0
 Point(doCopyFromStream)
 link(FileName,918986:Var2,[])
 AddHint(30,60,142,13,@Hint)
}
Add(GetDataEx,918986,385,434)
{
 link(Data,1531506:Right,[])
}
Add(InfoTip,3528326,441,448)
{
 Info=#53:Если файлы большие, то применение ZLIB ускорит обмен.|45:Если файлы не большие, то ZLIB можно удалить.|
 Font=[MS Sans Serif,8,1,255,1]
 HAlign=0
 Width=379
 Height=46
 Margin=10
}
Add(Check,141556,686,357)
{
 Check=1
 link(onEvent,9582193:doStrCat,[(759,363)(759,410)(107,410)(107,531)])
}



P.S немного помудрил
Код
Код:

Make(delphi)
ver(4.05 build 186)
Add(MainForm,2953706,21,105)
{
 Width=828
 Height=290
}
Add(Button,11516016,224,280)
{
 Left=15
 Top=200
 Width=755
 Caption="Проверить"
 link(onClick,3913141:doEvent1,[])
}
Add(Edit,1898492,539,294)
{
 Left=15
 Top=135
 Width=345
 Text=""
 link(onChange,8754977:doEvent1,[])
}
Add(HTTP_Get,14660423,392,280)
{
 @Hint=#24:Получаем информационный |15:файл hashed.txt|26:с сервера http://hiasm.com|18:с каталога hi_zvcs|
 link(onURLSize,13501557:doHashsum,[])
 AddHint(-68,-136,161,52,@Hint)
}
Add(Edit,13497709,322,217)
{
 Left=20
 Top=80
 Width=755
 Text="https://raw.githubusercontent.com/nikolaevich23/make-pkg-bat/master/30/beta-30.7z"
}
Add(DoData,6961454,322,280)
{
 link(onEventData,14660423:GetURLSize,[(373,286)(373,300)])
 link(Data,13497709:Text,[])
}
Add(Hashsum,13501557,469,294)
{
 @Hint=#18:Получаем хеш-сумму|12:своего файла|
 link(onResult,1898492:doText,[])
 AddHint(-45,-58,122,26,@Hint)
}
Add(If_else,7773263,679,301)
{
 link(onTrue,10077803:doMessage,[(741,307)(741,279)])
 link(onFalse,14362227:doMessage,[(741,314)(741,335)])
 link(Op2,15380576:Result,[])
}
Add(Dir,11863543,686,161)
{
}
Add(StrCat,15380576,686,217)
{
 Str2="beta-30.7z"
 link(onStrCat,11049083:doHashsum,[])
 link(Str1,11863543:CurrentDir,[])
}
Add(Hub,8754977,588,294)
{
 link(onEvent1,15380576:doStrCat,[(640,300)(640,223)])
 link(onEvent2,7773263:doCompare,[])
}
Add(Message,10077803,770,273)
{
 Message="Хеш сумму равны!"
}
Add(Message,14362227,770,329)
{
 Message="Хеш суммы не равны"
}
Add(Hashsum,11049083,749,217)
{
 @Hint=#18:Получаем хеш-сумму|12:своего файла|
 link(onResult,10894363:doText,[])
 AddHint(-52,-107,122,26,@Hint)
}
Add(Edit,10894363,812,217)
{
 Left=15
 Top=160
 Width=345
 Text=""
}
Add(Label,8277374,924,126)
{
 Left=375
 Top=140
 Width=93
 Height=17
 Caption="Файл на сервере"
}
Add(Label,6885566,924,168)
{
 Left=380
 Top=165
 Width=66
 Height=17
 Caption="Файл на ПК"
}
Add(Edit,16141987,588,609)
{
 Left=490
 Top=135
 Width=285
 Text=""
}
Add(Edit,3553362,739,607)
{
 Left=490
 Top=160
 Width=285
 Text=""
 link(Str,5395122:FileSize,[(745,596)(741,596)])
}
Add(HTTP_Get,7675330,455,595)
{
 @Hint=#24:Получаем информационный |15:файл hashed.txt|26:с сервера http://hiasm.com|18:с каталога hi_zvcs|
 link(onURLSize,16141987:doText,[])
 AddHint(-69,-120,161,52,@Hint)
}
Add(Edit,10637828,364,546)
{
 Left=20
 Top=80
 Width=750
 Text="https://raw.githubusercontent.com/nikolaevich23/make-pkg-bat/master/30/beta-30.7z"
}
Add(DoData,5260467,364,609)
{
 link(onEventData,7675330:GetURLSize,[])
 link(Data,10637828:Text,[])
}
Add(Hub,3913141,280,280)
{
 link(onEvent1,6961454:doData,[])
 link(onEvent2,11837970:doEvent1,[(312,293)(312,615)])
}
Add(FileAttributes,5395122,714,553)
{
 Point(FileSize)
 link(onRead,3553362:doText,[(758,559)(758,586)(727,586)(727,613)])
}
Add(Dir,15152328,651,497)
{
}
Add(StrCat,7947497,651,553)
{
 Str2="beta-30.7z"
 link(onStrCat,5395122:doRead,[])
 link(Str1,15152328:CurrentDir,[])
}
Add(Hub,11837970,329,609)
{
 OutCount=3
 link(onEvent1,5260467:doData,[])
 link(onEvent2,7947497:doStrCat,[(519,622)(519,559)])
 link(onEvent3,5685875:doCompare,[(507,629)(507,685)])
}
Add(If_else,5685875,672,679)
{
 link(onTrue,277820:doMessage,[(744,685)(744,671)])
 link(onFalse,15429536:doMessage,[(744,692)(744,727)])
 link(Op1,16141987:Text,[(678,660)(594,660)])
 link(Op2,3553362:Text,[(685,659)(745,659)])
}
Add(Message,277820,784,665)
{
 Message="Размер одинаковый!"
}
Add(Message,15429536,784,721)
{
 Message="Размер разный!"
}



Можно производить сравнение по хеш-сумме, или размеру файла.
Правда с хеш-суммой, что то не то :scratch_one-s_head:
Пример на 3.0 запакованной (beta-30.7z), один файл на сервере, другой (уже скачанный) рядом с программой.


Текущее время: 09:27. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.