Главная страница


ru.algorithms

 
 - RU.ALGORITHMS ----------------------------------------------------------------
 From : Sergey Andrianov                     2:5020/1507.400 05 Apr 2002  21:40:36
 To : Valentin Davydov
 Subject : Re: структура данных в файле
 -------------------------------------------------------------------------------- 
 
 
 Однажды 05-Apr-02  в 20:20   Valentin Davydov (via gate)
 написал       Sergey Andrianov    по поводу
 -=-   Re: структура данных в файле  -=-
 
 >VD>> >Kак идеологически правильно сохранять данные в файле?
 >> 
 >VD>> Идеологически правильно хранить данные (если их не очень много) в виде
 >VD>> последовательности ASCII строк переменной длины, заканчивающихся символами
 ><LF>>> или <CR><LF>. Пустые строки игнорируются, если в строке встретился
 >> 
 >VD>> Все другие форматы идеологически неправильны, в том смысле, что либо
 >VD>> требуют чрезвычайно детального (многостраничного, как png) описания
 >VD>> формата, либо приводят к непропорциональным проблемам портирования, и
 >VD>> без весьма серьёзных на то оснований (грошовая экономия места и времени
 >VD>> к таковым обычно не относятся) пользоваться ими не стоит.
 >> 
 >>  Да...
 >>  У меня товарищ поначалу тоже пытался хранить данные в виде ASCII строк.
 VD> >Kаждый раз при запуске программа работала 3 минуты (а ему надо было 
 VD> отсчитать >несколько сотен вариантов).
 
 VD> Kто ж виноват, что твой товарищ программировать не умеет? 
 
    А я этот пример и привел именно в таком качестве. 
    Более того, я то же самое могу сказать о человеке, который не умеет работать 
 ни с какими данными кроме текстовых.
 
 VD> Если критична
 VD> скорость, то надо считывать файл только один раз, а не несколько сот.
 
    K сожалению, это далеко не всегда возможно. В данном конкретном случае
 файлов, которые нужно читать, было более 700, и в каждом варианте требовался
 определенный их набор, кстати, также формировавшийся программно и описываемый в 
 конфигурационном файле. 
    Я надеюсь, излишне говорить о том, что все файлы во много раз превосходили
 доступный объем ОЗУ, так что считыванию данных для каждого варианта отдельно
 трудно было придумать альтернативу.
 
 >>  Посуди сам, как бы выглядел, скажем bmp-файл, если бы данные в нем 
 VD> хранились
 VD> >по предложенному тобой способу:
 
 VD> Hаверное, как png. Поскольку этот формат не надо изобретать, он полностью
 VD> документирван и есть библиотеки. Да к тому же он ещё и компактнее, чем bmp.
 
    Хорошо, GIF, JPG...
 
 >>  Kроме некоторых частных случаев данные должны храниться в бинарном виде,
 VD> >так, как они хранятся в памяти, чтобы не было необходимости в 
 VD> преобразовании >при считывании.
 
 VD> Это хорошо, когда данные - последовательность независимых байт, или когда ты
 VD> читаешь той же программой (ну, или, по крайней мере, собранной тем же
 VD> компилятором с теми же хедерами и библиотеками под той же ОС на том же 
 VD> компьютере), которой писал. А когда данные имеют более сложную структуру 
 VD> (слова или, не дай Бог, плавающая точка), тут-то и начнаются всякие 
 VD> заморочки про big/little endian, детали реализации malloc() в разных 
 VD> системах и откуда начинаются массивы в разных языках.
 
    Представь, работал с смешанными данными (double(8),single(4), text,
 integer(4), и, кроме того, с нестандартным форматом real(2)) при этом и считывал
 и записывал их как на IBM PC, так и на Alpha, естественно, в разных ОС. И -
 никаких проблем. Естественно, ?endian надо учитывать, ну так это входит в
 описание формата. Kстати, даже с применением уже упомянутого нестандартного
 двухбайтового с плавающей точкой объем данных для одного варианта составлял
 более 1Гбайта. Представь, сколько бы это занимало места и сколько времени
 уходило бы на чтение/запись при текстовом представлении информации. 
    Так что уникальные форматы файлов вполе имеют право на существование,
 естественно, они должны быть хорошо документированы, включая порядок байтов в
 многобайтовых величинах.
                   До свидания,  в  21:21 MSK
                                  Sergey
 
 ---
  * Origin: Sergiev Posad (2:5020/1507.400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 структура данных в файле   Mikhail Kalenkov   29 Mar 2002 13:33:12 
 Re: структура данных в файле   Џ®ав­®ў Њ‚   31 Mar 2002 06:30:40 
 Re: структура данных в файле   Mikhail Kalenkov   31 Mar 2002 22:53:18 
 Re: структура данных в файле   Џ®ав­®ў Њ‚   02 Apr 2002 07:17:38 
 структура данных в файле   Nickita A Startcev   03 Apr 2002 14:18:14 
 структура данных в файле   Sergey Kabikov   04 Apr 2002 13:59:50 
 Re: структура данных в файле   Mikhail Kalenkov   04 Apr 2002 18:20:40 
 стpуктуpа данных в файле   Alexander V. Lushnikov   05 Apr 2002 21:00:04 
 Re: стpуктуpа данных в файле   Mikhail Kalenkov   06 Apr 2002 10:16:30 
 стpуктуpа данных в файле   Nickita A Startcev   06 Apr 2002 14:50:26 
 стpуктуpа данных в файле   Alexander V. Lushnikov   08 Apr 2002 23:06:05 
 Re: структура данных в файле   Sergey Andrianov   01 Apr 2002 09:04:28 
 Re: структура данных в файле   Andrew V. Fionik   29 Mar 2002 18:44:36 
 Re: структура данных в файле   Mikhail Kalenkov   29 Mar 2002 19:43:28 
 Re: структура данных в файле   Stas Zoubarev   29 Mar 2002 19:12:39 
 Re: структура данных в файле   Sergiy Kanilo   29 Mar 2002 19:57:55 
 стpуктуpа данных в файле   Alexander V. Lushnikov   30 Mar 2002 02:37:47 
 Re: структура данных в файле   Valentin Davydov   30 Mar 2002 23:44:26 
 Re^2: структура данных в файле   Andrew Kolchoogin   31 Mar 2002 14:09:08 
 Re: Re^2: структура данных в файле   Andrew V. Fionik   01 Apr 2002 11:13:50 
 Re: структура данных в файле   Mikhail Kalenkov   01 Apr 2002 13:29:42 
 Re: структура данных в файле   Andrew V. Fionik   01 Apr 2002 15:59:54 
 Re: структура данных в файле   Mikhail Kalenkov   31 Mar 2002 22:53:18 
 Re: структура данных в файле   Valentin Davydov   01 Apr 2002 17:57:15 
 Re: структура данных в файле   Џ®ав­®ў Њ‚   02 Apr 2002 09:06:11 
 структура данных в файле   Alexey Skazik   01 Apr 2002 23:52:54 
 Re: структура данных в файле   Mikhail Kalenkov   02 Apr 2002 09:22:40 
 Re: структура данных в файле   Andrew V. Fionik   01 Apr 2002 11:11:44 
 Re: структура данных в файле   Valentin Davydov   03 Apr 2002 10:49:31 
 Re: структура данных в файле   Sergey Andrianov   01 Apr 2002 22:01:38 
 Re: структура данных в файле   Valentin Davydov   05 Apr 2002 20:20:27 
 Re: структура данных в файле   Sergey Andrianov   05 Apr 2002 21:40:36 
 Re: структура данных в файле   Valentin Davydov   08 Apr 2002 15:34:13 
Архивное /ru.algorithms/52053CAE19D5.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional