Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.11.07;
Скачать: [xml.tar.bz2];

Вниз

Неясности в формате файла   Найти похожие ветки 

 
Sha ©   (2010-07-13 00:06) [200]

Или


 
Anatoly Podgoretsky ©   (2010-07-13 00:07) [201]

> Виталий  (12.07.2010 23:46:07)  [187]

А на AnsiString свет клином не сошелся, например есть управляемый по длине
ShortString, есть массивы символов
Возьми на моем сайте статью "Работа с файлами Паскаля", не обращай внимание
на ошибки со свойствами и попыткой использования их как var параметрам,
полезно для начинающего, там и про типизированые и про текстовые файлы
Паскаля есть


 
Anatoly Podgoretsky ©   (2010-07-13 00:08) [202]

> Виталий  (12.07.2010 23:46:07)  [187]

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


 
Виталий ©   (2010-07-13 00:09) [203]


> Или

Тогда объясните.


 
Юрий Зотов ©   (2010-07-13 00:09) [204]

> Виталий ©   (13.07.10 00:06) [199]

Сектора фиксированного размера, но в каждом сектора есть служебное поле, указывающее на следующий сектор (если он есть), либо содержащее NULL (если сектор - последний).


 
Sha ©   (2010-07-13 00:10) [205]

> Виталий ©   (13.07.10 00:09) [203]
> Тогда объясните.

Можно, конечно. А разве самому неинтересно?


 
Виталий ©   (2010-07-13 00:11) [206]

Ну вот пусть оно фиксированого размера с указанием на след. сектор или отсутствием такового. Как, используя это, сделать запись типизированого файла с AnsiString, чтобы позже ее можно было считать?


 
Виталий ©   (2010-07-13 00:12) [207]


> Можно, конечно. А разве самому неинтересно?

Интересно. Куда копать - может, не ту литературу читаю!


 
Sha ©   (2010-07-13 00:18) [208]

> сделать запись типизированого файла с AnsiString,
> чтобы позже ее можно было считать?

Вот базы данных, например, умеют работать с длинными строками.
Более того, умеют в одном файле хранить несколько таблиц.
Значит у них тип файла от типа записей в таблицах ваще не зависит.
Просто мысль.


 
Виталий ©   (2010-07-13 00:20) [209]

Они крутые, разработчики СУБД. Но как они это делают - не могу представить.


 
Anatoly Podgoretsky ©   (2010-07-13 00:22) [210]

> Виталий  (13.07.2010 00:11:26)  [206]

Типизированых файлов с AnsiString в природе не бывает.


 
Anatoly Podgoretsky ©   (2010-07-13 00:27) [211]

> Sha  (13.07.2010 00:18:28)  [208]

При этом у них полный аналог длинных строк.


 
Anatoly Podgoretsky ©   (2010-07-13 00:27) [212]

> Виталий  (13.07.2010 00:20:29)  [209]

Про все не буду говорить, а для MS SQL это не секрет, документировано.


 
Sha ©   (2010-07-13 00:28) [213]

> Anatoly Podgoretsky ©   (13.07.10 00:22) [210]
> Типизированых файлов с AnsiString в природе не бывает.

Масса тела не зависит от скорости.
Параллельные не пересекаются.


 
Виталий ©   (2010-07-13 00:29) [214]

Единственное - могу представить, что данные в файле БД хранятся как, вначале, набор полей, а затем - набор записей, соответствующих этим полям. И неким байтом (группой байт) обрывается одна таблица и начинается другая. А вот махинации с секторами и прочим - не представляю.


 
0x00FF00   (2010-07-13 00:34) [215]

Ого!

С какого уж года не видел, как Мастера вдруг (даже почти без стёба!) вместе взялись помогать новичку!
Где-то сдохли штабеля волков! =)

Так держать =)


 
Виталий ©   (2010-07-13 00:42) [216]


> для MS SQL это не секрет, документировано.

Нашел книгу Inside SQL Server, вроде бы в ней описан формат файла... Но сейчас уже слишком хочу спать, посему прошу Мастеров перенести обсуждение до утра :) Спасибо всем огромное!


 
Виталий ©   (2010-07-13 00:46) [217]

Кому, кстати, интересно, если найти сложно ее: http://www.hot.ee/gloryee/


 
Германн ©   (2010-07-13 00:58) [218]


>
> С какого уж года не видел, как Мастера вдруг (даже почти
> без стёба!) вместе взялись помогать новичку!

Редко попадаются такие новички, которые не крутят пальцы, пытаются разобраться сами, не требуют готового кода и готовые читать книги (только не знают какие). Вот Мастера и соскучились по такой возможности.


 
Юрий Зотов ©   (2010-07-13 01:16) [219]

Да и не такой уж он новичок. Код посмотрите - не без погрешностей, но в целом грамотный, работа с динамической памятью и с длинными строками раскручена четко. А главное вот что: на одном языке разговариваем и чувствуется, что терминологией человек вполне владеет, от слов "указатель", "ссылка", "адрес", "смещение"  в обморок вовсе не падает.

Какой же это новичок? Скорее, это на развод похоже, кто-то из профи поразвлекаться решил - вот и косит под новичка...
:o)


 
Виталий ©   (2010-07-13 01:26) [220]


> Какой же это новичок? Скорее, это на развод похоже, кто-
> то из профи поразвлекаться решил - вот и косит под новичка.

Сами прикалываетесь :) - тонко)


 
Германн ©   (2010-07-13 03:10) [221]


> Скорее, это на развод похоже, кто-то из профи поразвлекаться
> решил

Не. У наших профи не хватит энергии на столько постов. Да что б при этом ни разу не проколоться.

Во. Уже даже ЮЗ сомневается.

"Редко попадаются такие новички, которые не крутят пальцы, пытаются разобраться сами, не требуют готового кода и готовые читать книги (только не знают какие)."

Редко, но они есть!


 
Sha ©   (2010-07-13 09:20) [222]

> Нашел книгу Inside SQL Server

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


 
Anatoly Podgoretsky ©   (2010-07-13 10:14) [223]

> Sha  (13.07.2010 09:20:42)  [222]

Оригинальное было решение, потеряли только расширения, да они и не нужны
были.


 
Виталий ©   (2010-07-13 11:25) [224]

Здравствуйте вновь, не было света :)
Сейчас попробую поискать.


 
Виталий ©   (2010-07-13 11:53) [225]

Нашел вот это: http://www.codenet.ru/progr/other/doslfn.php, но там весьма сложные ассемблерные вставки (для меня), да и общий принцип неясен. Попробую разобрать, а пока, может, кто подскажет объяснение, если оно, как говорите, документировано?


 
Sha ©   (2010-07-13 11:59) [226]

Обед. Пойду поговорю сам с собой


 
Виталий ©   (2010-07-13 14:01) [227]

Пожалуйста, помогите в этом.


 
Sha ©   (2010-07-13 14:07) [228]

Вставки там можно опустить - они для чтения нужного сектора файла оглавления.
См. функцию GetUniLFN


 
Виталий ©   (2010-07-13 15:17) [229]

Пока непонятно. Буду думать.


 
Sha ©   (2010-07-13 15:27) [230]

тут понятно http://www.ipm.kstu.ru/os/lec/13.php
тут познавательно ttp://www.ipm.kstu.ru/os/lec/12.php


 
Виталий ©   (2010-07-13 16:02) [231]

Спасибо. Это уже довольно сложный уровень. Мда :)


 
Sha ©   (2010-07-13 16:18) [232]

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


 
Виталий ©   (2010-07-20 20:10) [233]

Здравствуйте вновь - пропадал некоторое время. Можете хотя бы намекнуть на смысл операций сдвига в процедуре?
То есть я прочел описание каталоговой записи, но манипуляции с извлечением из нее данных мне неясны. Как разобраться с этими сдвигами?


 
Sha ©   (2010-07-20 21:56) [234]

> Виталий ©   (20.07.10 20:10) [233]
> Как разобраться с этими сдвигами?

В данном случае операции сдвига - замечательный пример того,
что не надо экономить на "лишних" объвлениях типов и переменных.
В результате вместо сцепления строк у автора получился
трудно понимаемый код.

Первая ссылка из [230] поможет понять, что он имел в виду,
и переписать код в удобочитаемом виде :)


 
Sha ©   (2010-07-20 22:01) [235]

Где-то там выше не зря говорилось о необходимости знать представление
данных в памяти. Без этого нельзя считать себя программистом.


 
Виталий ©   (2010-07-21 09:09) [236]

Я именно в материале по первой ссылке и прочел описание каталоговой записи, но то, что имел ввиду автор, не понял. Дайте хотя бы намек, куда копать. И поясните, что подразумевается под словами "знать представление данных в памяти"?


 
Anatoly Podgoretsky ©   (2010-07-21 09:48) [237]

> Виталий  (21.07.2010 09:09:56)  [236]

Что за каталоговая запись, как она выглядит, что за манипуляции надо с ней
делать?
Представление данных в памяти - это знать как побитно данные представлены в
памяти.


 
Alien1769 ©   (2010-07-21 10:41) [238]

> Виталий  (21.07.2010 09:09:56)  [236]

В помощь :

DosConstant   Value
ReadOnly        $01
Hidden           $02
SysFile          $04
VolumeID       $08
Directory       $10
Archive         $20
AnyFile         $3F

плюс
> Anatoly Podgoretsky ©   (21.07.10 09:48) [237]
> Представление данных в памяти - это знать как побитно данные
> представлены в
> памяти.


 
Виталий ©   (2010-07-21 11:12) [239]

Анатолий, как я понял, эта запись описывает "метаданные" для одного файла, как то: его расширение, имя, атрибуты, размер и проч., но не само его содержимое.
Когда файл хотят открыть, то система идет в нужный каталог и узнает, что за файл ей предстоит читать, каковы его характеристик, а потом уже только начинает читать. Верно?
Ну вот я прочел в коде описание полей. Да, там есть Word (16 бит, 2 байт), LongInt (4 байта). Но как из описания полей можно понять, что за хитрые вещи проводятся с их содержимым и для чего?
Alien1769, вы привели то, какие значения может принимать поле атрибута. Но в коде оно вообще не используется.


 
Sha ©   (2010-07-21 11:33) [240]

> Виталий ©   (21.07.10 09:09) [236]
> Я именно в материале по первой ссылке и прочел описание каталоговой записи

Там же описан способ хранения длинных имен.
Т.е. сектор каталога может содержать записи двух типов.
Чтобы выполнить задание [234] надо просто добавить к коду
недостающее описание и переписать GetUniLFN.

> Виталий ©   (21.07.10 11:12) [239]
> Но как из описания полей можно понять,
> что за хитрые вещи проводятся с их содержимым и для чего?

Никак.
Потому что у автора нет описания этих полей для случая
хранения на тех же местах частей длинного имени.



Страницы: 1 2 3 4 5 6 7 8 9 
10 11 12 вся ветка

Форум: "Прочее";
Текущий архив: 2010.11.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 1.06 MB
Время: 0.067 c
2-1281896457
XillVikler
2010-08-15 22:20
2010.11.07
слежение за объектом


2-1281596062
kukuikar
2010-08-12 10:54
2010.11.07
Drag&Drop


2-1281504230
Irisss
2010-08-11 09:23
2010.11.07
Открыт ли файл Excel


2-1281389736
Rembo2010
2010-08-10 01:35
2010.11.07
Как считать звук с микрофона?


2-1281722016
Дмитрий Стариков
2010-08-13 21:53
2010.11.07
Снова за помощью





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский