Вверх ↑
Этот топик читают: Гость
Ответов: 5227
Рейтинг: 587
#1: 2008-03-19 20:27:32 ЛС | профиль | цитата
Вечер добрый!

Вот возникло некоторое непонимание вывода сообщений с консоли, а именно:
Почему длинные сообщения обрываются, и получается частичный вывод этих данных на точку ConsoleResult. Не могу понять с чем связанно. Первоночально столкнулся c этим недорозумением при запуске UnRar.exe через компонент WinExec с ключом L (листинг) архив примерно около 1000 файлов результат литинга 300 с небольшим файлов. Тот же самый эфект проявился при сборке консольной программы.

вот что у меня получилось Project_win.exe при получении данных с Project_ cons затыкается на 2393 строке

Add(MainForm,6477352,77,84)
{
Left=20
Top=105
Width=335
Height=261
}
Add(Charset,7663368,266,98)
{
link(onCharset,5568976:doSetSelect,[])
}
Add(WinExec,7769535,210,84)
{
FileName="Project54.exe"
Point(doConsoleExec)
Point(onConsoleError)
Point(onConsoleResult)
Point(onConsoleTerminate)
Point(doConsoleInput)
link(onConsoleResult,7663368:doCharset,[])
}
Add(Button,11443435,140,98)
{
Left=260
Top=10
Caption="List"
link(onClick,7769535:doConsoleExec,[])
}
Add(Memo,5568976,343,56)
{
Left=10
Top=10
Width=240
Height=205
ScrollBars=3
Point(doSetSelect)
}
Add(ViewSHA,3143891,154,231)
{
Width=128
Height=58
}
BEGIN_SDK
Add(Console,12601342,133,154)
{
Title="Proba"
link(onStart,4548579:doFor,[])
}
Add(DoData,3634155,133,217)
{
link(Data,12601342:Read,[])
}
Add(For,4548579,196,154)
{
End=5000
link(onEvent,14170345:doStrCat,[])
link(onStop,3634155:doData,[(248,167)(248,200)(121,200)(121,223)])
}
Add(StrCat,14170345,259,154)
{
Str2=" строка
"
link(onStrCat,10673076:doCharset,[])
}
Add(Charset,10673076,322,154)
{
Type=1
link(onCharset,12601342:doWrite,[(365,160)(365,139)(121,139)(121,160)])
}
END_SDK
Add(InfoTip,1801952,133,175)
{
Info=#33:В контейнере консольная программа|24:скомпелировать отдельно.|
Width=260
Height=130
}

карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Разработчик
Ответов: 26305
Рейтинг: 2146
#2: 2008-03-19 20:57:00 ЛС | профиль | цитата
andrestudio, ты коды поправь, или выложи файлом

Во, уже поправил
карма: 22

0
Ответов: 5227
Рейтинг: 587
#3: 2008-03-19 21:09:04 ЛС | профиль | цитата
простите за косячок, старым форумом пользуюсь.
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 2125
Рейтинг: 159
#4: 2008-03-19 22:02:56 ЛС | профиль | цитата
Вывод сообщений с консоли ни при чём. Я специально скопировал текст из Memo в файл, длинна - ровно 30000 байт. Помнится, было у Memo ограничение...
карма: 1

0
Ответов: 5227
Рейтинг: 587
#5: 2008-03-19 22:29:04 ЛС | профиль | цитата
Да на самом деле видать у Memo есть ограничение, заменил Memo на RichEdit вывод заканчивается 4998 стр а в консольной программе последнее значение 5000 строка

Далее проверяю туже схему в Hiasm v3.62 что в Memo что в RichEdit выводит все 5000 строк но последняя строка вероятно ошибка (Runtime error 6 at 000059D2)...
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 1891
Рейтинг: 110
#6: 2008-03-19 22:30:42 ЛС | профиль | цитата
andrestudio, писал(а):
при получении данных с Project_ cons затыкается на 2393 строке


andrestudio, попробуй так:

code_8661.txt
карма: 0
%time%
0
файлы: 1code_8661.txt [1.6KB] [263]
Ответов: 5227
Рейтинг: 587
#7: 2008-03-19 22:39:41 ЛС | профиль | цитата
Alexbootch - спасибо!, ограничения с Memo сняты, но всё равно у меня последняя строка 4998 стр и даже не 4998 строк, а должно быть 5000 строк, не ужели косячок в WinExec ?
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 9906
Рейтинг: 351
#8: 2008-03-19 22:48:31 ЛС | профиль | цитата
tsdima, с концовкой, действительно, что-то не то...
------------ Дoбавленo:

Если в консоли отключить "последний ввод", то последняя будет не 4998, а 4811
Фигня ведь...
карма: 9

0
Ответов: 2125
Рейтинг: 159
#9: 2008-03-19 22:49:14 ЛС | профиль | цитата
Если послать Enter через doConsoleInput, то последние строки тоже выводятся. Если однако убрать ожидание в консольной проге, то обрывается на "4811 ст". Сие есть пока загадка.

Galkov, опередил.
карма: 1

0
Ответов: 1891
Рейтинг: 110
#10: 2008-03-19 22:53:12 ЛС | профиль | цитата
andrestudio, писал(а):
Аlexbootch - спасибо!, ограничения с Memo сняты, но всё равно у меня последняя строка 4998 стр и даже не 4998 строк, а должно быть 5000 строк, не ужели косячок в WinExec ?


У меня 5000 строк
andrestudio, попробуй обе сxемы откомпилировать FPC
карма: 0
%time%
0
Ответов: 5227
Рейтинг: 587
#11: 2008-03-19 23:11:26 ЛС | профиль | цитата
Alexbootch - опять в точку . Итак если консольную программу скомпелировать в FPC то все 5000 строк выводятся без проблем, стоит только скомпелировать под Delphi то 4998 стр и баста
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 2125
Рейтинг: 159
#12: 2008-03-19 23:21:30 ЛС | профиль | цитата
Обновление на SVN http://hiasm.googlecode.com/svn/elements/delphi/code/hiWinExec.pas
карма: 1

0
Ответов: 5227
Рейтинг: 587
#13: 2008-03-19 23:51:20 ЛС | профиль | цитата
tsdima - спасибо большое, очень оперативно.

[size=-2]------ Добавлено в 23:51
сожелею но на моём компе при компиляции в Delphi результат не изменился...
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Ответов: 9906
Рейтинг: 351
#14: 2008-03-19 23:58:44 ЛС | профиль | цитата
А на моем - изменился
Думаю, у tsdima - тоже

Переходим в классике: что мы делаем не так
------------ Дoбавленo:

btw: правильно писать скомпилировать
карма: 9

0
Ответов: 5227
Рейтинг: 587
#15: 2008-03-20 00:16:16 ЛС | профиль | цитата
Проделал следующее:

Перешёл по сылке, скачал код в буфер обмена.
Не закрывая HiAsm заменил код в через Ctrl+F в редакторе и сохранил.
Скомпелировал в Delphi (результат не изменился 4998 стр)
Создал новый hiWinExec.pas с новым кодом и попробовал ещё раз заменить в пакете (результат не изменился 4998 стр)

Проделывал в HiAsm v3.65 build167
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)