Вверх ↑
Этот топик читают: Гость
Ответов: 138
Рейтинг: 2
#1: 2018-03-29 15:54:03 ЛС | профиль | цитата
Есть программа, суть которой передовать файлы на другой комп
Алгоритм

Add(Hub,10688405,238,77)
{
link(onEvent1,687206:doOpen,[])
link(onEvent2,687206:doClose,[])
}
Add(FileStream,687206,280,77)
{
link(onLoad,6566227:doConvert,[])
}
Add(FileStream,10602501,455,63)
{
Mode=2
AutoCopy=0
Point(doCopyFromStream)
}
Add(StreamConvertor,6566227,336,77)
{
link(onResult,11951422:doConvert,[])
}
Add(StreamConvertor,11951422,392,77)
{
Mode=1
link(onResult,10602501:doCopyFromStream,[])
}

Пытаюсь сделать что то вроде (есть HEX › разделять каждые 1000 символов › таким образом передать весь файл на другой комп › там всё "собрать".
Однако если файл большой, то его уже не записать в Memorу!
Пытался записывать HEX в Файлы (Файловые потоки), но не получалось.

Редактировалось 2 раз(а), последний 2018-03-29 15:54:50
карма: 0
私はアニメが大好き
0
vip
#1.1контекстная реклама от партнеров
Ответов: 8888
Рейтинг: 823
#2: 2018-03-29 17:06:30 ЛС | профиль | цитата
dimosikILA, "большой" это сколько байт?
карма: 19

0
Ответов: 4621
Рейтинг: 746
#3: 2018-03-29 17:40:25 ЛС | профиль | цитата
А если бы с помощью DataToFile можно было бы читать/записывать строки указанной длины - этой проблемы бы не было...
карма: 26

0
Ответов: 138
Рейтинг: 2
#4: 2018-03-29 18:05:48 ЛС | профиль | цитата
Вот так
Add(MainForm,2953706,84,161)
{
Width=132
Height=86
Point(onClose)
link(onCreate,1942764:doEvent1,[(128,181)(128,167)])
link(onClose,7423768:doEvent1,[(124,188)(124,195)])
}
Add(FileStream,4835175,91,448)
{
link(onLoad,12846252:doConvert,[])
link(FileName,5661491:GetData,[])
}
Add(EventFromData,5661491,91,385)
{
link(onEvent,13909876:doExecute,[])
}
Add(StreamConvertor,12846252,147,448)
{
link(onResult,4875522:doEvent1,[])
}
Add(TempFileStream,894122,238,175)
{
Prefix="txt"
Extention="temp"
}
Add(FileStream,12380596,245,231)
{
Mode=2
AutoCopy=0
link(FileName,894122:TempFolder,[])
}
Add(Hub,1942764,140,161)
{
OutCount=3
link(onEvent1,894122:doCreate,[(198,167)(198,181)])
link(onEvent2,12380596:doOpen,[(179,174)(179,237)])
link(onEvent3,4835175:doOpen,[(166,181)(166,316)(46,316)(46,454)])
}
Add(Hub,7423768,140,189)
{
link(onEvent1,894122:doDelete,[(193,195)(193,188)])
link(onEvent2,12380596:doClose,[(200,202)(200,244)])
}
Add(DataToFile,14001237,245,280)
{
Type=7
link(onGet,11666044:doLength,[])
link(Stream,12380596:Stream,[])
}
Add(ODialog,13909876,140,385)
{
FileName="Файл весит 11МБ"
link(onExecute,5661491:doData,[(184,391)(184,379)(79,379)(79,391)])
AddHint(-40,-46,107,13,FileName)
}
Add(Length,11666044,308,280)
{
link(onLength,15342709:doText,[])
link(Str,14001237:Data,[(314,268)(291,268)(291,323)(251,323)])
}
Add(Hub,4875522,189,448)
{
link(onEvent1,14001237:doPut,[(212,454)(212,286)])
link(onEvent2,14001237:doGet,[(224,461)(224,293)])
}
Add(Label,15342709,364,280)
{
Left=5
Top=10
Width=110
Height=25
link(Text,11666044:Result,[(370,268)(349,268)(349,322)(314,322)])
}


--- Добавлено в 2018-03-29 18:07:46

Леонид писал(а):
dimosikILA, "большой" это сколько байт?

Файлы больше 10 мегабайт и не больше 2 гигов

Редактировалось 2 раз(а), последний 2018-03-29 18:07:46
карма: 0
私はアニメが大好き
0
Ответов: 16884
Рейтинг: 1239
#5: 2018-03-29 18:14:10 ЛС | профиль | цитата
dimosikILA писал(а):
"Разбивка" строк.

Может "Разбивка" файлов ?
WinRar

Редактировалось 2 раз(а), последний 2018-03-29 18:19:05
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 138
Рейтинг: 2
#6: 2018-03-29 18:30:19 ЛС | профиль | цитата
Tad писал(а):
dimosikILA писал(а):
"Разбивка" строк.

Может "Разбивка" файлов ?
WinRar

Именно файла! (имеется ввиду в двоичный код потом в HEX дальше отправить на другой комп из HEX в двоичный код)

--- Добавлено в 2018-03-29 18:47:32

Tad писал(а):
dimosikILA писал(а):
"Разбивка" строк.

Может "Разбивка" файлов ?
WinRar

Вот тут я имею ввиду: HEX "код" 11МБ файла большой и за раз не сможет передаться на другой комп (будут потери) поэтому я решил передовать по 1000 символов и так весь HЕХ.

Редактировалось 1 раз(а), последний 2018-03-29 18:47:32
карма: 0
私はアニメが大好き
0
Ответов: 8888
Рейтинг: 823
#7: 2018-03-29 19:15:44 ЛС | профиль | цитата
dimosikILA, в FileStream помещается почти сколь угодно байт, из него и берите хоть по одном, хоть по 1000 байт.
31_Мб.jpg
карма: 19

0
Ответов: 138
Рейтинг: 2
#8: 2018-03-29 19:40:56 ЛС | профиль | цитата
ООО, спасибо
карма: 0
私はアニメが大好き
0
Ответов: 4621
Рейтинг: 746
#9: 2018-03-30 10:46:18 ЛС | профиль | цитата
dimosikILA писал(а):
за раз не сможет передаться на другой комп (будут потери)
Если компонент-"передавальщик" написан правильно - никаких потерь не будет. Но на другой стороне всё равно придёт порциями и нужно собирать.
Чтение файла по частям - модифицированный DataToFile: /topic/57987/3#p256098
Другие варианты передачи больших данных - /topic/65137
карма: 26

0
Ответов: 138
Рейтинг: 2
#10: 2018-03-30 16:54:19 ЛС | профиль | цитата
Спасибо большое
Это мне сильно облегчит работу
карма: 0
私はアニメが大好き
0
10
Сообщение
...
Прикрепленные файлы
(файлы не залиты)