Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26163
Рейтинг: 2127
#151: 2008-08-15 12:11:37 ЛС | профиль | цитата
bestsponsor писал(а):
Так как же дописывать текст в суточный файл?

Я добавил в StrList на SVN новый метод doAppend, он и используется для дозаписи текста в файл

[svn]StrList.pas[/svn]

------------ Дoбавленo:


А новое имя суточного файла как раз и создается при помощи модуля, который я выложил -- с помощью импулься Strob во все нужные элементы заносится новое имя.
карма: 22

0
Ответов: 3851
Рейтинг: 159
#152: 2008-08-15 12:33:27 ЛС | профиль | цитата
nesco, а чем это лучше обычного code_9718.txt способа?


bestsponsor, добавлять текст в файл можно и так code_9719.txt, только нужно выбрать тип данных в элементе DataToFile..
------------ Дoбавленo:

как-то странно (не пропорционально) отобразился размер файлов..
карма: 0
начавший
2
файлы: 2code_9718.txt [190B] [262], code_9719.txt [836B] [249]
Голосовали:nesco, bestsponsor
Разработчик
Ответов: 26163
Рейтинг: 2127
#153: 2008-08-15 12:42:06 ЛС | профиль | цитата
Андрей. писал(а):
добавлять текст в файл можно и так

Можно, но в StrList'e работает KOL-метод, тоже, кстати, построенный на стрим-потоке

Андрей. писал(а):
а чем это лучше обычного

А идея с переходом даты интересная, мне такое решение раньше не встречалось (да и на ум че-то не пришло). Есть у меня такие приколы, я ингда простую задачу сильно усложняю.
карма: 22

1
Голосовали:bestsponsor
Ответов: 3851
Рейтинг: 159
#154: 2008-08-15 12:51:08 ЛС | профиль | цитата
nesco писал(а):
простую задачу сильно усложняю
э, я тоже

nesco писал(а):
в StrList'e работает KOL-метод
э, что это значит и чем это грозит?
карма: 0
начавший
1
Голосовали:bestsponsor
Разработчик
Ответов: 26163
Рейтинг: 2127
#155: 2008-08-15 12:53:29 ЛС | профиль | цитата
Хотя, у меня в схеме стоит коммутатор, который событиие по изменению даты дает только тогда, когда поступит внешнее событие Synch, и Strob выдается только при переходе даты, а при запуске его нет. Ну может челу нужно проще

------------ Дoбавленo:


Андрей. писал(а):
э, что это значит и чем это грозит?

Да ничем, кода меньше, чем на рассыпухе делать. Да и зачем изобретать велосипед, когда его уже изобрели
карма: 22

1
Голосовали:bestsponsor
Ответов: 16884
Рейтинг: 1239
#156: 2008-08-15 14:32:15 ЛС | профиль | цитата
bestsponsor писал(а):
Я считаю один файл для суток - вполне удобно.

Удобно кому?
Представь, что этот комп (который телетайп) еще и в локальной сети и принятые ...граммы может просмотреть напрямую кто-то еще (директор, главный инж., главбух) кто имеет доступ к этой суточной папке. Вопрос: Как удобней искать, перечитывая весь общий файл или имея перед глазами только список файлов-сообщений. ?
Если создавать суточную папку, то файлы можно записывать в неё под именами "имя_абонента_hms.txt" или "hms_имя_абонента.txt" (как нравится) и получить список на экране или в алфавитном порядке по именам абонентов или по hms - времени приема. Это удобно для всех.
Насчет создания новой суточной папки:
Если дата приема телеграммы больше даты папки, то создать новую папку и ни каких проблем ни тебе Strob-ов.
А имя папки формировать именно в формате YYYYMMDD тогда никаких проблемм - сравниваются как целые числа.

Зачем все усложнять даже велосипедами ? С комнаты на кухню можно пройти и пешком.
------------ Дoбавленo:

Хотя, если для диплома нужна программа длинной в километр, тогда я пас.
------------ Дoбавленo:

nesco, блин, не могу успокоится. Вы что рассчитываете, что за сутки прийдет не больше десятка телеграмм ?
А если программа получится супер и ее захотят применить в администрации президента ?
Представь себе суточный файл и поиск в нем !
Глупость это (с дописыванием)
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#157: 2008-08-15 14:48:17 ЛС | профиль | цитата
Tad писал(а):
Вы что рассчитываете, что за сутки прийдет не больше десятка телеграмм ?

Я ничего не расчитываю, бо большому счету, оно мне нафиг ничего не нужно, так, для интереса. Чел должен сам решить, что ему надо
карма: 22

1
Голосовали:bestsponsor
Ответов: 125
Рейтинг: 0
#158: 2008-08-15 14:53:13 ЛС | профиль | цитата
Tad писал(а):
блин, не могу успокоится. Вы что рассчитываете, что за сутки прийдет не больше десятка телеграмм ?
А если программа получится супер и ее захотят применить в администрации президента ?
Представь себе суточный файл и поиск в нем !
Глупость это (с дописыванием)

Да не берите Вы близко к сердцу. А за президента переживать есть кому. Я работаю на железной дороге в ШЧ (дистанция сигнализации и связи). Я на втором этаже, телеграф на первом. Механик телеграфа вообще вместе со мной в комнате. Потому я рассуждаю, исходя из практического опыта - на телеграфе работаю такие АРМы. Насчет имени абонента в имени файла - не пройдет. Специфика такова : в управлении бюрократы насочиняли телеграмм, доставщик их пачкой принес на телеграф, оператор набрала телеграммы одного направления одним куском и бросила на передачу. Так, что на приемной стороне сообщения содержат по несколько телеграмм и от одного адресата. А еще есть прикол, называемый циркуляром - там аппараты постоянно законектены и спрашивается, как тогда различать телеграммы для записи в разные файлы?
------------ Дoбавленo:

nesco писал(а):
Чел должен сам решить, что ему надо

Золотые слова!
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#159: 2008-08-15 16:50:51 ЛС | профиль | цитата
bestsponsor писал(а):
исходя из практического опыта - на телеграфе работаю такие АРМы
АРМы тоже люди создавали, но на это хорошо ответил Galkov в теме "Как было бы здорово, если бы существовала среда HiAsm-AVR"
bestsponsor писал(а):
оператор набрала телеграммы одного направления одним куском и бросила на передачу. Так, что на приемной стороне сообщения содержат по несколько телеграмм и от одного адресата.
вот и будет "один адресат_140512.txt" одним файлом и дописывать ничего не надо.
bestsponsor писал(а):
А еще есть прикол
никакого прикола. Передается, непомню в начале или в конце, идентификатор - что-то наподобие "АВТОЭЛАП 3456789" (позывной и номер телефона абонента), или расспроси оператора, как она узнает откуда передана телеграмма, а хочешь, то перед передачей сигнала готовности к приему, передай "Кто там?" и получишь ... почти готовое имя файла (останется только добавить время. Хочеши или не хочешь но время добавлять в имя прийдется т.к. один и тот-же абонент может за сутки накидать столько телеграмм, что и не определишь какая пришла раньше, а какая потом.
------------ Дoбавленo:

И вообще, что бы создать Хороший АРМ, нужно побыть месяцев шесть в шкуре оператора.
Вот только тогда "человек сможет решить, что ему надо"
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 125
Рейтинг: 0
#160: 2008-08-15 17:16:42 ЛС | профиль | цитата
Tad писал(а):
И вообще, что бы создать Хороший АРМ, нужно побыть месяцев шесть в шкуре оператора.
Вот только тогда "человек сможет решить, что ему надо"

Тут я с Вами согласен на все 100%.
Давайте не будем спорить, расскажите лучше как сделать печать выделенного в RichEdit текста? Думал реализовать это на уровне драйвера принтера, но почемуто именно диапазон печати и кол-во копий недоступны.
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#161: 2008-08-15 18:08:48 ЛС | профиль | цитата
bestsponsor, самый простой
Add(Memo,10262024,133,28)
{
Left=25
Top=155
Width=345
Height=115
Strings=#10:1-я строка|10:2-я строка|10:3-я строка|10:4-я строка|10:5-я строка|10:6-я строка|10:7-я строка|10:8-я строка|10:9-я строка|11:10-я строка|
ScrollBars=2
Point(onMouseDown)
Point(onMouseUp)
Point(SelText)
}
Add(Memo,2340677,294,105)
{
Left=25
Top=5
Width=345
Height=115
ScrollBars=2
}
Add(Button,9853881,21,105)
{
Left=285
Top=130
Width=85
ParentFont=1
Caption="На принтер"
link(onClick,14745124:doFor,[])
}
Add(DoData,2504689,154,105)
{
link(onEventData,796434:doEvent1,[])
link(Data,10262024:SelText,[])
}
Add(Edit,11473699,84,28)
{
Left=130
Top=130
Text="1"
}
Add(Label,7171063,231,28)
{
Left=25
Top=130
Width=94
Height=17
Caption="Кол.экземпляров"
}
Add(UpDown,12091822,21,28)
{
Left=185
Top=130
Max=100
Min=1
link(onPosition,11473699:doText,[])
}
Add(For,14745124,77,105)
{
link(onEvent,2504689:doData,[])
link(End,11473699:Text,[])
}
Add(DoData,13318217,245,175)
{
Data=String(========================)
link(onEventData,14790676:doWork3,[])
}
Add(Hub,796434,203,105)
{
link(onEvent1,14790676:doWork2,[])
link(onEvent2,13318217:doData,[(240,118)(240,181)])
}
Add(HubEx,14790676,273,98)
{
link(onEvent,2340677:doAdd,[])
}
иммитация: нижнее окно - окно приема, верхнее принтер.

но только с Memo. Для телетайпа - вполне достаточно.
У RichEdit есть почему-то неработающая точка Position и нету точки SelText. Если бы было или то или то , то можно было бы организовать.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
1
Голосовали:bestsponsor
Ответов: 125
Рейтинг: 0
#162: 2008-08-15 19:40:55 ЛС | профиль | цитата
Tad писал(а):
иммитация: нижнее окно - окно приема, верхнее принтер.
Большое Вам спасибо! Правда, с RichEdit не хорошо получилось, я то его использовал
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#163: 2008-08-15 20:07:36 ЛС | профиль | цитата
bestsponsor писал(а):
Правда, с RichEdit не хорошо получилось

с Memo не лучше

nesco, а с Memo этот номер не проходит - не хочет печатать в одну строку.

Опять химии хочет.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1notnum.png [1.5KB] [468]
Ответов: 125
Рейтинг: 0
#164: 2008-08-15 20:18:38 ЛС | профиль | цитата
Что неправильно? Хотел сохранять позицию последнего символа файла в другом файле (temp.txt), для того, чтобы при перезапуске программы запись в файл продолжилась от последнего знака.
Add(Button,2148556,210,322)
{
Left=90
Top=220
link(onClick,5949401:doData,[(261,328)(261,328)])
}
Add(FileStream,10164075,441,273)
{
FileName="test.txt"
Mode=1
Point(doPosition)
}
Add(DataToFile,1105960,441,406)
{
Type=6
Point(doPosition)
link(Stream,10164075:Stream,[])
}
Add(Hub,14265020,343,329)
{
OutCount=7
link(onEvent1,10164075:doOpen,[(384,335)(384,279)])
link(onEvent2,6918955:doOpen,[(475,342)(475,314)])
link(onEvent3,12586907:doGet,[(498,349)(498,419)])
link(onEvent4,1105960:doPut,[(401,356)(401,412)])
link(onEvent5,3990035:doData,[])
link(onEvent6,10164075:doClose,[(391,370)(391,286)])
link(onEvent7,6918955:doClose,[(486,377)(486,321)])
}
Add(RichEdit,4195449,287,252)
{
Left=5
Top=5
Width=220
Height=195
}
Add(DoData,5949401,287,322)
{
link(onEventData,14265020:doEvent1,[(335,328)(335,335)])
link(Data,4195449:Text,[(293,288)(293,295)])
}
Add(DataToFile,12586907,560,406)
{
Type=3
link(onGet,10164075:doPosition,[(603,412)(603,399)(429,399)(429,293)])
link(Stream,6918955:Stream,[])
}
Add(FileStream,6918955,560,308)
{
FileName="temp.txt"
Mode=2
}
Add(DoData,3990035,511,357)
{
link(onEventData,12586907:doPut,[(553,363)(553,412)])
link(Data,10164075:Position,[(517,331)(461,331)])
}

#sha

карма: 1

0
Ответов: 16884
Рейтинг: 1239
#165: 2008-08-15 20:45:07 ЛС | профиль | цитата
bestsponsor писал(а):
Присоединенный файл не мой
Твой.Вызови на ПРАВКА и удали.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)