1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
| kosya4ok |
14.12.2007 11:32
Сообщение
#1
|
|
Новичок ![]() Группа: Пользователи Сообщений: 16 Пол: Мужской Репутация: 0 |
Всем привет! Почитал про типизированные файлы на форуме но так и не наашёл решение своей проблемы.
Хочу создать типизированный файл в который будут писать числа типа real.
Пишет инвалидный тип файла. Помогите разобраться... |
![]() ![]() |
| andriano |
15.12.2007 11:31
Сообщение
#2
|
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
kosya4ok,
просмотрел тему и у меня сложилось впечатление, что некоторое недопонимание между тобой и теми, кто тебе отвечал связано тем, что тебе нужно разобрать ДВА вопроса, а не ОДИН: 1. Чем отличается бинарное (внутреннее, машинное) редставление чисел от текстового (форматного). 2. Для чего нужен типизированный файл. 1. Внутри компьютера числа находятся в бинарном виде. Так же они могут быть и сохранены на диске. Т.е. область диска (файл) может быть просто копией фрагмента оперативной памяти. Но разобрать что-либо в таком файле глазами совершенно невозможно. Поэтому прибегают к текстовому представлению информации. При этом дробное число, занимающее в памяти (или бинарном файле), скажем, 4 байта, в виде текста займет уже 12 байт - да и то с потерей точности. Опять же, Паскаль скрывает этот факт, но операторы read и write с текстовыми и бинарными файлами работают совершенно по-разному: при работе с текстом каждый символ подвергается достаточно сложным преобразованиям. Таким образом, разработчику всеегда риходится решать, какому формату файла отдать предпочтение в конкретной программе. Если нам надо хранить, скажем, 8 Мбайт данных, то - бинарное представление: длина файла - 8 Мбайт, время чтения - 0.1 с, глазами ничего не увидишь, - текстовое представление: длна файла - 96 Мбайт, время чтения - 50 с, можно посмотреть глазами. Что ты в данном случае предпочтешь? А если надо записать всего десяток чисел, которые и в том, и в другом случае будут занимать один сектор на диске и читаться практически мгновенно? 2. Вообще-то он не нужен. Т.е. без него легко можно обойтись, заменив файлом нетипизированным. Но в некоторых случаях удобнее работать с типизированным. Твой пример к таковым не относится: если ты работаешь с вещественными числами, то разницы между типизированным и нетипизированным практически нет. А когда же появляется разница? Тогда, когда тебе нужно работать не с простым, а со сложным типом данных. Ну например: type Длина такого типа данных составляет 14 байт и, чтобы не запутаться, лучше объявить фвйл как file of t3DPoint. Одновременно, если ты запросишь длину файла, то тебе будет возвращено именно количество точек, а не количество байтов. Сообщение отредактировано: andriano - 15.12.2007 11:32 |
kosya4ok Как создать типизированный файл 14.12.2007 11:32
volvo Данные в типизированный файл не пишутся через Writ... 14.12.2007 11:44
kosya4ok Ага. volvo заменил writeln на write, но только теп... 14.12.2007 12:43
volvo А вот смотреть блокнотом не надо типизированные фа... 14.12.2007 12:53
kosya4ok Так я так и не понял что надо сделать то? :unsure... 14.12.2007 12:59
volvo Значит, надо создавать НЕ типизированный, а тексто... 14.12.2007 14:03
kosya4ok Окей. А чем посмотреть тогда типизированный файл и... 14.12.2007 14:33
andriano Типизированный файл при желании можно посмотреть h... 14.12.2007 20:29
kosya4ok Ясно. Спасибо за понятный ответ. А то народ никак ... 14.12.2007 20:33
volvo :dry: Сколько же можно тебе объяснять? Тебе поста ... 14.12.2007 20:37
kosya4ok Так а сколько ты нормально раз объснял?Покажи. Заш... 14.12.2007 20:49
andriano Вдогонку: чем смотреть типизированный файл?
Специа... 14.12.2007 20:57
kosya4ok Я не понимаю как мона сгруппировать и извлечь инфо... 14.12.2007 21:04
andriano
Я не понимаю как мона сгруппировать и извлечь инф... 14.12.2007 21:27
volvo :mega_chok:
32-битные компиляторы не доведут до... 14.12.2007 21:16
kosya4ok Цитата(kosya4ok @ 14.12.2007 21:04)
Я не понимаю... 14.12.2007 21:43
andriano Группировать по 6 байтов (48 битов).
А что конкрет... 14.12.2007 21:56
Гость СПС всем !!ТЕМА закрыта! 14.12.2007 23:30
kosya4ok А вы не объясните почему вот так вот можно писать ... 14.12.2007 23:43
Lapp
А вы не объясните почему ... вот так вот нельзя.
... 15.12.2007 1:09
kosya4ok Опочки прикольно! То есть вы хотите сказать чт... 15.12.2007 12:49
andriano Минуточку.
Та ЗНАЧЕНИЕ или ОБЛАСТЬ ПАМЯТИ?
write р... 15.12.2007 13:02
kosya4ok Привет! Вот же ж люди какие бывают какие прони... 15.12.2007 13:18
andriano Длина файла возвращается в количестве тех переменн... 15.12.2007 13:33
kosya4ok За
По поводу пергрузки: во-первых, write - не фу... 15.12.2007 13:37
andriano Нет, в том то и дело, что в proc1 произошла переда... 15.12.2007 13:50
kosya4ok Ну и ну. Вообщем пошёл учить Паскаль. 15.12.2007 14:00![]() ![]() |
|
Текстовая версия | 8.12.2025 18:27 |