Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отправка и прием файлов через NMSTRM [D7, WinXP]


pest_tt ©   (2007-01-04 17:03:00) 

вопрос такой:
с клиента отправляю файл на сервер. возможно ли как-нибудь определить какого формата был отправлел файл? или вмемте с файлом отправить какую-нибудь метку или что-то вроде того, чтобы узнать в каком формате сохранять файл.
пробовал с клиента писать:
NMStrm1.FromName:='pic.jpg';
но как при получении файла прочитать это самое FromName?

курсовая повисла... Заранее благодарю за ответ


pest_tt   (2007-01-04 20:00:00) [1]

спасибо, MetalFan_pda, готовить не надо)


MetalFan_pda   (2007-01-04 19:44:00) [2]

TStream.ReadBuffer
TStream.WriteBuffer
TStream.CopyFrom
TStream.Position
TStream.Seek
+F1 ?
или тебе готовенькое надо?


pest_tt   (2007-01-04 19:38:00) [3]

я не пойму, Джо, ты предлагаешь использовать байты уже имеющиеся в отправляемом файле или дописывать в начало потока потока дополнительные байты? если первый вариант, то именно для этого я и хотел изучить структуру графических файлов. а усли второй вариант, то скажи, пожалуйста, как дописать при отправке и потом прочитать и удалить при приеме.


pest_tt   (2007-01-04 19:30:00) [4]

и как потом удалить эти три байта, чтобы файл не повредить?


Джо   (2007-01-04 19:29:00) [5]

> [6] MetalFan_pda   (04.01.07 19:15)
> а если расширение 4 байта? ))

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


pest_tt   (2007-01-04 19:29:00) [6]


> Какую структуру, зачем изучать? Ты, когда посылаешь файл,
>  знаешь какое у него расширение? Ну, вот его и посылай в
> первых трех байтах потока.


а как это реализовать?
при отправке в переменную  file_stream: TMemoryStream;как добавить в начало 3 байта? если можешь приведи пример кода.


Джо   (2007-01-04 19:29:00) [7]

> первыми идут два байта, в которых хранится длина расширения

Неплохой запас :-D


MetalFan_pda   (2007-01-04 19:15:00) [8]

а если расширение 4 байта? ))


Джо   (2007-01-04 18:40:00) [9]

> [4] pest_tt ©   (04.01.07 18:38)
> спасибо, Джо, была такая мысль, но не знаю структуру bmp
> и jpg файлов. у bmp по-моему в начале файла идут две буквы
> BM. теперь надо структуру изучать...

Какую структуру, зачем изучать? Ты, когда посылаешь файл, знаешь какое у него расширение? Ну, вот его и посылай в первых трех байтах потока.


pest_tt   (2007-01-04 18:38:00) [10]

спасибо, Джо, была такая мысль, но не знаю структуру bmp и jpg файлов. у bmp по-моему в начале файла идут две буквы BM. теперь надо структуру изучать...


Джо   (2007-01-04 17:26:00) [11]

> [2] pest_tt ©   (04.01.07 17:16)
>
> >> или вмемте с файлом отправить какую-нибудь метку
>
>
> как это сделать? не отправлять же два файла, один файл jpg
> а другой файл со словом 'jpg'?

Ты, собственно, не файл отправляешь, а поток данных. Вот пусть твой протокол предусматривает, что, например, первые 3 байта потока хранят «формат» файла.


pest_tt   (2007-01-04 17:16:00) [12]


>> или вмемте с файлом отправить какую-нибудь метку


как это сделать? не отправлять же два файла, один файл jpg а другой файл со словом 'jpg'?

и для чего вообще нужен FromName у клиента, если его никак не прочитать? если можно прочитать, то это решит все проблемы.


Джо   (2007-01-04 17:10:00) [13]

> или вмемте с файлом отправить какую-нибудь метку


Наверх

Титульная страница Поиск, карта сайта Написать письмо