Вверх ↑
Этот топик читают: Гость
Ответов: 3851
Рейтинг: 159
#1: 2006-10-04 11:08:35 ЛС | профиль | цитата
Задача: число 0...255 (DEC) заслать в поток одним байтом, для дальнейших операций.
Компонент "Convertor" умеет в поток преобразовывать только из String. Ессно, если я сначала Integer преобразую в String, то получю 3 байта. Может можно сделать небольшие изменения в самом компоненте, кто подскажет как ?
Обратное преобразование тоже интересует.
карма: 0
начавший
0
Ответов: 9906
Рейтинг: 351
#2: 2006-10-04 11:36:04 ЛС | профиль | цитата
Чего ты хочешь - не понятно совершенно.
Попробуй еще раз, пожалуйста
карма: 9

0
Ответов: 3851
Рейтинг: 159
#3: 2006-10-04 15:34:44 ЛС | профиль | цитата
Блин, ты прав - непонятно.

Итак:
есть Integer в диапазоне от нуля до двести пятьдесят пяти; нужно его вставить в поток (тип данных = Stream). Учитывая длину алфавита, одного байта достаточно. Внимание, вопрос: как это сделать? желательно без использования файловой системы.
Датчиком контроля правильности исполнения может служить, например компонент "MemoryStream" со значением свойства "size" = "1".

P.S. всё равно остаётся остаётся ощущение недосказанности. Незнаю пока как ещё уточнить, может позже придёт мысля получше.
карма: 0
начавший
0
Ответов: 3851
Рейтинг: 159
#4: 2006-10-04 16:16:54 ЛС | профиль | цитата
Неправ я - не Integer, а Byte (ну я могу, в принципе контролировать его, чтобы он не вышел за границы описанного выше диапазона, тогда можно и Integer, ещё проще...)
карма: 0
начавший
0
Ответов: 9906
Рейтинг: 351
#5: 2006-10-04 17:10:02 ЛС | профиль | цитата
Если в потоке один байт, то вопрос - нафига он тебе такой ?
Если много то дописывай через DataToFile (Type=dtByte) - в чем проблема-то ?
карма: 9

0
Администрация
Ответов: 15295
Рейтинг: 1519
#6: 2006-10-04 20:45:50 ЛС | профиль | цитата
Хоть один байт, хоть два и даже три:
Add(MainForm,8513425,238,175)
{
Left=20
Top=105
BorderStyle=1
}
Add(Button,10223613,91,224)
{
Left=90
Top=185
Data=Integer(23)
link(onClick,6461694:doPut,[])
}
Add(MemoryStream,3165394,161,112)
{
}
Add(DataToFile,6461694,161,224)
{
link(Stream,3165394:Stream,[])
}
Add(Timer,4966039,91,175)
{
link(onTimer,4339210:doData,[])
}
Add(DoData,4339210,168,175)
{
link(onEventData,8513425:doCaption,[])
link(Data,3165394:Size,[])
}
очевидно результат снимаем с точки Stream
карма: 27
0
Ответов: 3851
Рейтинг: 159
#7: 2006-10-05 08:56:50 ЛС | профиль | цитата
Galkov писал(а):
Если в потоке один байт, то вопрос - нафига он тебе такой ?
чтобы к нему дописать (StreamCopy) другой поток, а не наоборот
Galkov писал(а):
Если много то дописывай через DataToFile (Type=dtByte) - в чем проблема-то ?
Я просто не подозревал, что DataToFile можно использовать совместно с чем-то кроме FileStream.
Спасибо Dilma подсказал как. Да и передача данных "снизу вверх" для меня всегда была из разряда мистики (хорошо ещё справа налево ничего не передаётся )
карма: 0
начавший
0
Ответов: 9906
Рейтинг: 351
#8: 2006-10-05 09:10:38 ЛС | профиль | цитата
Можно
DataToFile по барабану, происхождение Stream-а
карма: 9

0
Ответов: 2125
Рейтинг: 159
#9: 2006-10-05 10:13:55 ЛС | профиль | цитата
Вот обозвали бы его DataToStream - вопросов бы не было, наверное.
карма: 1

0
Ответов: 3851
Рейтинг: 159
#10: 2006-10-05 11:51:15 ЛС | профиль | цитата
А как сделать обратное ?
У меня простая аналогия неполучилась:
code_376
карма: 0
начавший
0
файлы: 1code_376.txt [706B] [381]
Администрация
Ответов: 15295
Рейтинг: 1519
#11: 2006-10-05 15:14:56 ЛС | профиль | цитата
tsdima писал(а):
Вот обозвали бы его DataToStream - вопросов бы не было, наверное.

никто и не спорит. Когда компонент появился был только файловый поток и ни о каких MemoryStream и мысли не было...

[size=-2]------ Добавлено в 15:09
А как сделать обратное ?

doPisition в нуль выставить

[size=-2]------ Добавлено в 15:14
К слову говоря работа с потоками, как это не странно, совершенно подробно описана в справке "Что такое потоки(или массивы) данных и как с ними работать."

Там есть и:
Help писал(а):
Массив данных, как уже говорилось выше, это набор байт, т.е. число от 0 до 255...

и такое:
Help писал(а):
Для хранения массивов данных на жестком диске используется компонент Файловый поток(FileStream). Для хранения в памяти - Данные в памяти(MemoryStream).

затем это:
Help писал(а):
Для записи и чтения данных компонент Данные в файл(DataToFile)

и наконец причина неверно работающей схемы:
Help писал(а):
Так после записи комментариев позиция указателя автоматически сместилась на <Длинна строки>+1, +1 потому, что кроме самого текста мы еще записали на конце 0


вот и гадай после этого, а так ли нужна всем справка, как об этом говорят
карма: 27
0
Ответов: 3851
Рейтинг: 159
#12: 2006-10-05 15:35:04 ЛС | профиль | цитата
Dilma писал(а):
tsdima писал(а):
Вот обозвали бы его DataToStream - вопросов бы не было, наверное.

никто и не спорит. Когда компонент появился был только файловый поток и ни о каких MemoryStream и мысли не было....

Давайте продублируем компонент "DataToFile" под именем "DataToStream" (и иконкой другой конечно тоже), а хелп написать можно соответствующий текущему моменту.
Dilma писал(а):
А как сделать обратное ?

doPisition в нуль выставить
спасибо.
Dilma писал(а):
К слову говоря работа с потоками, как это ни странно, совершенно подробно описана в справке "Что такое потоки(или массивы) данных и как с ними работать."

вот и гадай после этого, а так ли нужна всем справка, как об этом говорят

Нужна, очень, особенно контекстная (F1) и, самое главное, - с примерами !
Всё это я читал (слова очень знакомые), но, смысл проявился во всей красе, только после приведённого примера (я по себе сужу конечно..)
карма: 0
начавший
0
Администрация
Ответов: 15295
Рейтинг: 1519
#13: 2006-10-05 15:36:56 ЛС | профиль | цитата
Нужна, очень, особенно контекстная (F1) и, самое главное, - с примерами !

Для того чтобы на форуме цитаты от туда приводить?
карма: 27
0
Ответов: 3851
Рейтинг: 159
#14: 2006-10-05 15:53:38 ЛС | профиль | цитата
Красноречивый пример бывает лучше, объясняет смысл присходящего. Может вставить примеры из этого топика в контекст ?
карма: 0
начавший
0
Администрация
Ответов: 15295
Рейтинг: 1519
#15: 2006-10-05 16:04:25 ЛС | профиль | цитата
Андрей., так примеры тоже есть и даже два....
карма: 27
0
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)