|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
17.12.2013, 20:45 | #1 |
Пользователь
Регистрация: 05.10.2013
Сообщений: 13
|
Как работать с большими файлами через потоки в Delphi ?
Собственно как работать с потоками худо-бедно в Delphi Я разобрался, но проблема в том что на зачет преподаватель дал задачи с ОПРЕДЕЛЕННЫМ условием решения и поэтому решение этих задач, для меня проблематично. Вот собственно условия к задачам и сами задачи:
http://www.image123.net/9f2xkgb60mnppic.html P.S. И ещё, если Я правильно понял преподавателя эти задачи нужно решить через класс TFileStream. Хотя Я могу и ошибаться... Последний раз редактировалось 0parol0lorap0; 17.12.2013 в 20:49. |
17.12.2013, 23:08 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А что там в задаче такого невыполнимого?
Что именно тебя смутило из всего того текста.
I'm learning to live...
|
17.12.2013, 23:27 | #3 |
Пользователь
Регистрация: 05.10.2013
Сообщений: 13
|
1) Создать класс, Эмулирующий собой массив символов (посредством свойства-массива).
2) Памятью для хранения массива является поток данных. 3) Считается, что в задаче один символ занимает 2 байта. По пункту "3)", Я немного понял откуда ветер дует. Если Я не ошибаюсь то нужно размер считываемых блоков установить равным SizeOf(WideChar) = 2 байта, ну т.е. кажется так: Reset(f, SizeOf(WideChar)); В остальном все более мене понятно, хотя и туманно... )) |
18.12.2013, 11:03 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
18.12.2013, 11:22 | #5 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,551
|
Извиняюсь, что не по теме, но почему вы пишете "Я" с большой буквы?
E-Mail: arigato.freelance@gmail.com
|
18.12.2013, 13:39 | #6 |
Пользователь
Регистрация: 05.10.2013
Сообщений: 13
|
|
18.12.2013, 13:45 | #7 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Делаешь свойство массивного типа. Индекс - порядковый номер символа.
В ридере проверка на допустимость индекса с учетом того, что символ 2 байта, и считывание из FileStream по заданному смещению двух байт. Во врайтере аналогично, только запись в FileStream двух байт ОФФТОП Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 18.12.2013 в 13:48. |
|
18.12.2013, 14:51 | #8 |
Пользователь
Регистрация: 05.10.2013
Сообщений: 13
|
Так... ?
Код:
Не совсем понял... Считывать из файла вот так "f1.ReadBuffer(simvol,SizeOf(WideCh ar));", если да, то как проверять ? |
18.12.2013, 14:58 | #9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Ну тип ArrayProp явно не Integer. Возвращается два байта, лучше Word. Проверять - есть размер файла и индекс, вот и проверяй что бы по этом индексу не выскочить за пределы файла
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с большими файлами. | ShamanK | C# (си шарп) | 12 | 05.04.2012 19:41 |
VC++ EE 2005 Как работать с реестром/ini файлами? | Alexei91 | Visual C++ | 1 | 15.01.2011 11:02 |
Как работать с *.xls файлами без Excel'я? | Нур | Общие вопросы Delphi | 8 | 15.12.2010 07:16 |
Как с tFileStream работать с уже открытыми файлами? | Altera | Общие вопросы Delphi | 5 | 12.05.2009 20:02 |
Как работать с dll файлами | Artem | Общие вопросы Delphi | 7 | 21.09.2007 13:45 |