Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26066
Рейтинг: 2120
#31: 2016-04-10 23:20:36 ЛС | профиль | цитата
Добавил переменную CountStr, которая не влияет вообще на общий код
карма: 22

0
Ответов: 9906
Рейтинг: 351
#32: 2016-04-10 23:53:38 ЛС | профиль | цитата
Для ProgressBar можно было бы подсчитывать длину в байтах для обработанных строк.
И сравнивать с бесплатным размером файла.
карма: 9

0
Ответов: 16884
Рейтинг: 1239
#33: 2016-04-11 07:30:24 ЛС | профиль | цитата
nesco писал(а):
Добавил переменную CountStr
Схемку использования можно ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#34: 2016-04-11 10:55:26 ЛС | профиль | цитата
Tad писал(а):
Схемку использования можно ?

А че там ее использовать? Обращаешься к точке, к примеру по DoData, и читаешь, обращение само запустит подсчет строк. Если к точке не подключаться, то весь этот метод в коде не появится.
------------ Дoбавленo в 10.55:
Вот так, к примеру

Add(MainForm,2953706,231,133)
{
link(onCreate,678383:doPart,[])
}
Add(SearchInFile,8757361,490,203)
{
Sensitive=1
Point(NumStr)
Point(CountStr)
link(FileName,7039722:Text,[])
}
Add(Application,2586907,301,70)
{
}
Add(FilePartElm,678383,301,147)
{
Mode=0
link(onPart,2020879:doStrCat,[])
link(FileName,2586907:AppFileName,[])
}
Add(StrCat,2020879,364,147)
{
Str2="License.txt"
link(onStrCat,698867:doWork2,[])
}
Add(Edit,9547549,497,259)
{
Left=80
Top=40
Width=110
Text=""
link(Str,8757361:CountStr,[])
}
Add(Button,586833,336,266)
{
Left=15
Top=40
TabOrder=-1
Caption="Count"
link(onClick,9547549:doText2,[])
}
Add(Edit,7039722,490,140)
{
Left=10
Top=10
Width=340
Text=""
}
Add(Button,1954846,336,210)
{
Left=355
Top=10
Width=25
TabOrder=-1
Caption="..."
link(onClick,14754006:doExecute,[])
}
Add(ODialog,14754006,399,210)
{
link(onExecute,698867:doWork3,[(445,216)])
}
Add(HubEx,698867,441,147)
{
link(onEvent,7039722:doText2,[])
}

карма: 22

0
Ответов: 16884
Рейтинг: 1239
#35: 2016-04-11 15:59:38 ЛС | профиль | цитата
А может сделать отдельный компонент по образу и подобию IC ?
code_37186.txt

nesco писал(а):
Вот так, к примеру
К примеру - нужно переводить в % прогресс обработки файла.
Если я к точке CountStr подключу MathParse, то при каждом его вызове он будет запускать этот, "ни на что не влияющий" блок.
Т.е. нужно ставить "буфер".
Ещё та лестница в четыре ступеньки получается. Сверху FileName, снизу Memory + MathParse.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1code_37186.txt [2.3KB] [492]
Разработчик
Ответов: 26066
Рейтинг: 2120
#36: 2016-04-11 16:39:20 ЛС | профиль | цитата
Tad писал(а):
К примеру - нужно переводить в % прогресс обработки файла.
Если я к точке CountStr подключу MathParse, то при каждом его вызове он будет запускать этот, "ни на что не влияющий" блок.
Т.е. нужно ставить "буфер".
Ещё та лестница в четыре ступеньки получается. Сверху FileName, снизу Memory + MathParse.

Какая-то надуманная проблема, которая даже выеденного яйца не стоит. Ну и что, что это добавит пару элементов, из-за этого надо лепить лишний компонент?

Add(MainForm,3400360,217,189)
{
Width=420
Height=96
Position=1
}
Add(SearchInFile,8757361,392,175)
{
Text="@"
Sensitive=1
Point(NumStr)
Point(onEnd)
Point(CountStr)
link(onNotSearch,246408:doWork1,[(480,181)])
link(onSearch,3121382:doEvent1,[])
link(FileName,15088486:Text,[(398,166)(370,166)(370,285)(321,285)])
}
Add(Button,1954846,217,238)
{
Left=355
Top=10
Width=25
TabOrder=-1
Caption="..."
link(onClick,14754006:doExecute,[])
}
Add(ODialog,14754006,266,238)
{
link(onExecute,15088486:doText,[])
}
Add(ProgressBar,8986941,546,294)
{
Left=20
Top=35
Width=355
Height=5
Color=65535
ProgressColor=16711680
}
Add(Hub,3121382,441,182)
{
link(onEvent1,217271:doAdd,[])
link(onEvent2,246408:doWork2,[])
}
Add(StrList,217271,497,182)
{
}
Add(HubEx,246408,476,189)
{
Angle=1
link(onEvent,925374:doCalc,[(480,300)])
}
Add(Edit,15088486,315,238)
{
Left=20
Top=10
Width=330
link(onChange,8978148:doValue,[])
}
Add(MathParse,925374,497,294)
{
MathStr="((%1 + 1) / %2) * 100"
ResultType=0
link(onResult,8986941:doPosition,[])
link(X1,8757361:NumStr,[(503,285)(391,285)(391,229)(398,229)])
link(X2,8978148:Value,[(510,278)(405,278)])
}
Add(Memory,8978148,399,238)
{
Point(Data)
link(onData,8757361:doSearch,[(438,244)(438,223)(382,223)(382,181)])
link(Data,8757361:CountStr,[])
}

------------ Дoбавленo в 16.39:
Единственное, что еще можно разумное предложить, так это добавить отдельный метод doCountStr
карма: 22

0
Ответов: 9906
Рейтинг: 351
#37: 2016-04-12 06:10:10 ЛС | профиль | цитата
nesco писал(а):
Какая-то надуманная проблема

Ну а я вам про что говорил
Не вижу проблемы и без CountStr:

Add(MainForm,3400360,602,140)
{
Width=420
Height=96
Position=1
}
Add(SearchInFile,8757361,441,133)
{
Text="asm"
Point(onEnd)
Point(NumStr)
link(onNotSearch,246408:doWork1,[(522,139)])
link(onSearch,3121382:doEvent1,[])
link(FileName,15088486:Text,[(447,124)(356,124)(356,173)(321,173)])
}
Add(Button,1954846,154,126)
{
Left=355
Top=10
Width=25
TabOrder=-1
Caption="..."
link(onClick,14754006:doExecute,[])
}
Add(ODialog,14754006,217,126)
{
link(onExecute,10451628:doEvent1,[])
}
Add(ProgressBar,8986941,441,196)
{
Left=20
Top=35
Width=355
Height=12
Color=65535
ProgressColor=16711680
}
Add(Hub,3121382,490,140)
{
OutCount=3
link(onEvent1,421971:doData,[])
link(onEvent2,246408:doWork2,[])
}
Add(HubEx,246408,518,147)
{
Angle=1
link(onEvent,15856940:doLength,[(522,181)(305,181)(305,202)])
}
Add(Edit,15088486,315,133)
{
Left=20
Top=10
Width=330
link(onChange,13942964:doRead,[])
}
Add(MathParse,925374,392,196)
{
MathStr="%0 + (%1+2)/%2*100"
Point(doClear)
link(onResult,8986941:doPosition,[])
link(X2,13942964:FileSize,[])
AddHint(-46,49,114,13,MathStr)
}
Add(FileAttributes,13942964,378,133)
{
Point(FileSize)
link(onRead,8757361:doSearch,[])
}
Add(Length,15856940,315,196)
{
link(onLength,925374:doCalc,[])
}
Add(Hub,10451628,266,126)
{
link(onEvent1,925374:doClear,[(291,132)(291,209)])
link(onEvent2,15088486:doText,[])
}
Add(DoData,421971,546,140)
{
link(onEventData,3400360:doCaption,[])
link(Data,8757361:NumStr,[(552,131)(531,131)(531,173)(447,173)])
}
Чего вы два дня воду в ступе толчете -- не пойму

карма: 9

0
Ответов: 16884
Рейтинг: 1239
#38: 2016-04-12 09:36:10 ЛС | профиль | цитата
Galkov писал(а):
Для ProgressBar можно было бы подсчитывать длину в байтах для обработанных строк.
И сравнивать с бесплатным размером файла.
Для ProgressBar-а да (зря я при постановке задачи упомянул его).

Мне нужно было именно число строк.
nesco, спасибо за напоминание о SetTextBuf(F, BufIn);. Увеличило скорость на порядок.
И за идею
nesco писал(а):
добавить отдельный метод doCountStr

У себя добавил.
Всё - вопрос закрыт.

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26066
Рейтинг: 2120
#39: 2016-04-12 10:56:01 ЛС | профиль | цитата
Tad писал(а):
У себя добавил

Добавил на SVN
карма: 22

1
Голосовали:Tad
Ответов: 9906
Рейтинг: 351
#40: 2016-04-12 15:04:41 ЛС | профиль | цитата
Tad писал(а):
Для ProgressBar-а да (зря я при постановке задачи упомянул его).

Вот теперь понятно.
Два дня парил мозги, по неназванной причине.
Не удивлен - процесс важнее результата

nesco писал(а):
Добавил на SVN

Ну хоть так
Без провокаций чтения всего файла по любому чиху.
Нормально. Хотя и не ясно зачем.

карма: 9

0
Разработчик
Ответов: 26066
Рейтинг: 2120
#41: 2016-04-12 15:12:12 ЛС | профиль | цитата
Galkov писал(а):
Хотя и не ясно зачем.

Пусть будет, каши не просит.
карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#42: 2016-08-22 10:37:43 правка | ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2021-06-24 08:51:02
карма: 0

0
Ответов: 8888
Рейтинг: 823
#43: 2016-08-22 10:58:53 ЛС | профиль | цитата
Гость, переустановить HiAsm в отдельную папку НЕ в Program Files или дать права HiAsm
карма: 19

0
43
Сообщение
...
Прикрепленные файлы
(файлы не залиты)