![]() |
|
Модераторы: volvo877, Snowy, MetalFan |
![]()
|
|
| Luser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 7.2.2007 Репутация: нет Всего: нет |
Ув. программенры, подскажите мне код на Pascal'е для того, чтобы считать с файла (в моем случаи shp.) данные- последовотельность байт,
и сделать вывод на экран. за ранее Большое спасибо P.S. мне нужно буквально самое начало, суть, а дальше я сам, просто в нете искал как считывать, и ниче не нашел, (последовательный код..) |
|||
|
||||
| Zero |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Т.е. тебе как я понял дужно из файла считать двоичные данные... Так??? Тогда работа с нетепизироваными файлами, вот так:
|
||||
|
|||||
| Luser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 7.2.2007 Репутация: нет Всего: нет |
Большое спасибо,
Добавлено @ 14:01 а можешь еще подсказать пож, чтобы считывала просто данные, а не последовательность бит (так сказать внутренность) |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Дак эта так сказать внутренность имеет определённую структуру, и у каждого файла она разная. Если у тебя какой-то отдельный типизированый со спец структурой и при этом не текстовый, то стандартным способом считать не получиться.
Текстовый это необязательно с расширением *.txt, если ты его с помощью стандартного блокнота открыть сможешь, то способ есть. |
|||
|
||||
| Luser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 7.2.2007 Репутация: нет Всего: нет |
нее, если блакнотом, то караказябру выдает =(
может еще чего-нибудь посоветуешь? заранее большое пасибки |
|||
|
||||
| volvo877 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2073 Регистрация: 15.11.2004 Репутация: 2 Всего: 116 |
||||
|
||||
| Luser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 7.2.2007 Репутация: нет Всего: нет |
у меня дан файл shp это делфи, меня попросили считать его, у меня получиться массив, прои считывании, и далее пощитать площадь и периметр...
вот такое задание.... Может у вас какието мнения, советы есть? |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
||||
|
||||
| Luser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 7.2.2007 Репутация: нет Всего: нет |
CONST
f='c:\myfile.shp' var f:file; buf:integer; Begin assign(f,'file.shp'); reset(f,1); {открыть файл для побайтного считывания} while not eof(f) do begin blockread(f,buf,1); {считать один байт в буфер buf с текущего места маркера и переместить маркер на один байт} write(buf,' '); end; End. подскажите пож, а как мне мне сделать чтоб читал с диска, с любого др места.. я знаю что вроде так объявляют пути... но пишет ошибку.... |
|||
|
||||
| Zero |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Ты имеешь ввиду с указанного места??? Тогде правильнее оформить прогу так:
|
||||
|
|||||
| Luser |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 7.2.2007 Репутация: нет Всего: нет |
Спасибки огромное... буду дальше делать....
|
|||
|
||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: нет Всего: 5 |
для побайтного считывания использовать нетипизированные файлы - что стрелять из пушки по воробьям.
-------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
||||
|
||||
| remax |
|
|||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: нет Всего: 5 |
BlockRead требует буфер и при его частичном заполнении усложняет алгоритм чтения доп. проверками. Разницу в скорости работы между типизированными и нетипизированными файлами я ощущал в последний раз на Intel286 - 16Мгц. Сейчас, при современных скоростях работы процессоров и устройств ввода/вывода это просто смешно. Кроме того, так называемый, "прямой доступ к файлам" актуален только на "чистом DOS"!! А Ваши программы на Pascal, скорее всего, запускаются в DOS-сессии из под Windows. И ни о каком прямом доступе речи не идет...
Нет необходимости применять более сложные (пусть даже в чем-то потенциально более мощные) средства, если задача этого не требует, а программа существенно усложнится! Тем более, что речь идет об учебных программах, когда необходимо продемонстрировать понимание сути задачи и умение выбрать оптимальный способ решения! -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
|||
|
||||
| Zero |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
|
||||
|
|||||
| remax |
|
||||||
|
Доцент ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 686 Регистрация: 7.4.2002 Где: Украина, Харьков Репутация: нет Всего: 5 |
Ну что сказать - кому как повезло... Хотя, даже в нашем Харьковском политехе уже давно не наблюдается таких раритетных компов.
А насчет универсальности - я бы не согласился. Во многих случаях предпочтительнее типизированные файлы (особенно для текстурированных данных). А в последнее время, судя по всему, мировая тенденция к приоритетному использованию текстовых файлов. А для работы с ними одинаково неудобны все типы файлов кроме текстовых! Про универсальность можно только говорить с точки зрения обмена инфой. Но ведь ее еще надо как то обрабатывать, анализировать...
Если по условию задачи необходимо работать с данными переменной структуры, то, скорее всего, без нетипизированных файлов не обойтись. И не очень умно, героически преодолевать сложности применяя файлы другого типа. Но мне кажется, что именно об этом я и говорю - задача определяет метод решения. И уровень программиста определяется не только и не столько знанием разных методов, а, в первую очередь, умением их эффективно применять. И чем эффективнее - тем круче программер, как специалист! Это сообщение отредактировал(а) remax - 12.2.2007, 16:13 -------------------- Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку |
||||||
|
|||||||
| Luser |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 7.2.2007 Репутация: нет Всего: нет |
Привет, снова я =)
Вы бы не могли подсказать мне Команду, которачя переставляет местами последовотельность битов, код тот-же, надо только менять местами последовательность... Если есть вопросы я подробнее опишу что именно мне требуеться. За ранее Спасибо. Добавлено @ 17:10
если я не ошибаюсь то в Делфи вроде так... а мне не врубиться куда и как это надо в Паскале Добавлено @ 17:11
Добавлено @ 17:14 это просто примеры... мне надо именно в моем примере менять местами полученные посл. бит
П.С. и вообще какой командой меняют последовательность... переставляют? За ранее спасибо |
||||||
|
|||||||
| Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: нет Всего: 24 |
Ну как сказать, у нас не все такие компы, только там где лабы лишь для паскаля и всё, т.к. для него больего ненадо. Я под универсальностью понимал текущий пример, в том плане что если уж считываются данные и по байту, то чтобы была возможноть считывать их не по одному, а если вообще то текстовые да, они для обмена инфой вполне универсальны... А легко: стандартной команды нет, а сам можешь написать процедурку, где в качестве параметров будут нужные тебе в зависимости от критерия замены указатели на байты или на биты... А внутри процедуры с помощью буферов работай. |
|||
|
||||
![]()
|
| Правила форума "Delphi" | |
|
|
Запрещается! 1. Обсуждать и делится взломанными компонентами или программным обеспечением 2. Публиковать ссылки на варез 3. Оффтопить
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |