Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.11.07;
Скачать: CL | DM;

Вниз

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

 
Sha ©   (2010-07-12 14:47) [80]

> Виталий ©   (12.07.10 14:26) [69]
> Я приду домой и внимательно изучу формат на примере существующего файла.
> И если останутся вопросы - не откажите все же.

Никто не откажет, если будет видно,
что вопрос у тебя появился не 5 секунд назад.


 
Виталий ©   (2010-07-12 14:48) [81]


> Это к тому, что в итоге я твою ветку практически покинул.

Я ответил тебе в лицо. Я спокойный человек, но открытые оскорбления тоже не люблю.


 
Виталий ©   (2010-07-12 14:49) [82]


>
> Никто не откажет, если будет видно,
> что вопрос у тебя появился не 5 секунд назад.

Спасибо.


 
boriskb ©   (2010-07-12 14:50) [83]

Всё таки форум, достаточно часто, это зло.

Мне почему-то кажется, что если б у автора топика не было возможности при малейшем затруднении спрашивать у инета, он бы сам давно разобрался. И при этом меньше времени потратил.


 
Sha ©   (2010-07-12 14:51) [84]

> Виталий ©   (12.07.10 14:36) [73]

Точно зря. Мне тоже расхотелось отвечать.

Анатолий имел в виду, что такое предложение может быть воспринято как нежелание отвечать


 
Виталий ©   (2010-07-12 14:54) [85]

Извините, пожалуйста, что я не так воспринял слова и кого-то оклеветал. Мне стало неприятно от того, что я посчитал для себя обидной фразой.

> Мне почему-то кажется, что если б у автора топика не было
> возможности при малейшем затруднении спрашивать у инета,
>  он бы сам давно разобрался. И при этом меньше времени потратил.

Для меня эти пункты не показались малейшим затруднением.


 
boriskb ©   (2010-07-12 15:06) [86]

> [85] Виталий ©

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

А если начать пораньше (с младенчества) и постоянно этим пользоваться, то так можно вовсе не научиться ходить и в конце концов вырасти полным дистрофиком.
Абсолютно так же и с мозгами.
Я не могу в полной мере применить эту аналогию к тебе - я тебя просто не знаю.
НО!
1) очень уж часто сюда заглядывают за проводами, рычагами и моторчиками
2) мне ты показался вполне способным разобраться самостоятельно. Просто "есть возможность - что не воспользоваться?"

Это можно - главное не увлекаться помощью, там где вполне можешь справиться сам.
Удачи   :))


 
Виталий ©   (2010-07-12 15:08) [87]

Я понял. Поэтому приду домой и проведу (возможно, не один день), пытаясь разобраться с помощью хекс-редактора и распечатки формата, что исходит откуда.


 
Anatoly Podgoretsky ©   (2010-07-12 15:38) [88]

> Виталий  (12.07.2010 14:54:25)  [85]

Ты думаешь мы зря тебя в MSDN посылаем, там все ответы на пвопросы по API
Кроме того надо еще пару бетселлеров прочитать, одного гуру я тебе назвал
это Рихтер.
А вопрос корнями уходит в железо, в знакогенераторы, в дальнейшем
программные, к которым относятся .FNT файлы и подсистема GDI, в глубину к
Win 1 и 2, частично 3
Времена до True Type


 
Виталий ©   (2010-07-12 15:45) [89]

Но я же не по API спрашиваю (а пока вообще не буду спрашивать, дабы действительно проверить все самостоятельно). Чтобы понять сущность этого вопроса, я никуда не денусь, не прочитав тысячестраничную книгу Рихтера (у него она вообще, вроде бы, не одна, какую конкретно нужно-то?)?


 
Anatoly Podgoretsky ©   (2010-07-12 15:56) [90]

> Виталий  (12.07.2010 15:45:29)  [89]

Вот эту http://www.podgoretsky.com/ftp/Docs/Classics/Richter/richter4ru.zip


 
Виталий ©   (2010-07-12 16:09) [91]

Не вполне понял, как "Создание эффективных WIN32-приложений
с учетом специфики 64-разрядной версии Windows" может мне помочь, но буду читать с самого начала.


 
Anatoly Podgoretsky ©   (2010-07-12 16:22) [92]

> Виталий  (12.07.2010 16:09:31)  [91]

Это поможет тебе понять Виндоус.
Кроме того эта библия не единственная.


 
Юрий Зотов ©   (2010-07-12 16:27) [93]

> Виталий ©   (12.07.10 15:45) [89]

> Чтобы понять сущность этого вопроса, я никуда не денусь, не прочитав
> тысячестраничную книгу Рихтера

Если под сущностью вопроса имеется в виду запись/чтение файлов ЛЮБОГО формата, то для этого нужен не Рихтер, а Паскаль. В частности, как уже говорилось, нужно твердое знание представления данных в памяти и операторов Read/Write. И еще (не всегда, но довольно часто) - работа с указателями и динамической памятью.

И только потом, после усвоения принципов - описание форматов, API, Рихтер и пр.

Вот Вам учебная задачка, если хотите. Есть такая структура данных:

type
 PFriend = ^TFriend;
 TFriend = record
   FirstName: AnsiString;
   LastName: AnsiString;
   BirthDate: TDate;
   Phone: AnsiString;
   NextRecord: PFriend
 end;

Задание: построить записную книжку, хранящую такие структуры данных.

Подсказка: сначала освойте запись/чтение ОДНОЙ такой структуры, игнорируя поле NextRecord. Потом, уже с использованием этого поля  строится список таких структур, его запись в файл и чтение из файла.

Темы для изучения: указатели и динамическая память; тип Record; операторы New и Dispose (или GetMem/FreeMem); типы с управляемым временем жизни; финализация данных; типы AnsiString, TDate и их хранение в памяти; чтение и запись бинарных файлов; связные списки (очереди, стеки...).

По сложности и объему эта задачка тянет примерно на небольшой курсовой проект для 1-2 курса. То есть, она достаточно проста и негромоздка - но уверяю Вас, что после ее решения запись и чтение ЛЮБЫХ структур данных Вы будете щелкать, как орехи. Да и многое другое - тоже.


 
Anatoly Podgoretsky ©   (2010-07-12 17:01) [94]


> Юрий Зотов ©   (12.07.10 16:27) [93]

Какой хитрый, подсунул структуру с длинными строка, наверно что бы помучился.


 
Anatoly Podgoretsky ©   (2010-07-12 17:03) [95]

Я имею ввиду запись в типизированый файл.


 
Sha ©   (2010-07-12 17:30) [96]

> Какой хитрый...

Неа, не хитрый.
Хитрый попросил бы реализовать переменное количество телефонных номеров.


 
Виталий ©   (2010-07-12 17:35) [97]

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


 
Юрий Зотов ©   (2010-07-12 17:42) [98]

> Anatoly Podgoretsky ©   (12.07.10 17:01) [94]

Естественно, подсунул специально, поэтому и AnsiString указал явно, чтобы никаких вариантов не оставить.

Во-первых, придется изучить и понять внутреннеее хранение длинных строк (после чего динамические массивы и работа с PChar осваиваются враз). Во-вторых, придется понять финализацию данных (что весьма полезно и в дальнейшем послужит мостиком к освоению интерфейсов). В-третьих (что главное), нужно будет придумать способ записи/чтения длинных строк (после чего запись/чтение любых буферов данных тоже осваивается враз).

> Sha ©   (12.07.10 17:30) [96]

Ну я же не полный изверг, все-таки...
:о)

Хотя запись/чтение СПИСКОВ AnsiString - тоже неплохая тренировка была бы...


 
Виталий ©   (2010-07-12 17:49) [99]


> типы с управляемым временем жизни

чувствую, с этим придется повозиться - поверхностное гугление практически ничего не дало.


 
Юрий Зотов ©   (2010-07-12 17:51) [100]

> Виталий ©   (12.07.10 17:35) [97]

Есть и переводные. Вот одни из лучших (если не самые лучшие):

http://www.google.ru/search?q=%D0%A2%D0%B5%D0%B9%D0%BA%D1%81%D0%B5%D0%B9%D1%80%D0%B0+%D0%9F%D0%B0%D1%87%D0%B5%D0%BA%D0%BE&rls=com.microsoft:ru:IE-SearchBox&ie=UTF-8&oe=UTF-8&sourceid=ie7&rlz=1I7GZHZ&redir_esc=&ei=uBw7TKWbFZahOPKx7YkK

http://www.google.ru/search?q=%D0%9A%D0%B0%D0%BB%D0%B2%D0%B5%D1%80%D1%82+Delphi&rls=com.microsoft:ru:IE-SearchBox&ie=UTF-8&oe=UTF-8&sourceid=ie7&rlz=1I7GZHZ&redir_esc=&ei=Yh07TJjYHZyUOLyr7IkK

На версию Delphi не обращайте внимания, для этой задачки годится любая начиная с Delphi 2.


 
Виталий ©   (2010-07-12 17:53) [101]


> нужно будет придумать способ записи/чтения длинных строк

А по этому поводу нашел способ с записью в файл дополнительно длины строки, чтобы потом знать, сколько байт считывать. Хотя, возможно, нужно придумать какой-то свой особенный способ?


 
Юрий Зотов ©   (2010-07-12 17:57) [102]


> Виталий ©   (12.07.10 17:53) [101]

Батенька, кто из нас разработчик - Вы или я?
:o)

Задача поставлена - вперед, смелее! Думайте, дерзайте! Потом обсудим.


 
Виталий ©   (2010-07-12 17:58) [103]

Хорошо. Наверное, на этой задаче я перейду пока что только к ней, но топик не удаляйте пока что - дома сохраню ссылки.


 
Виталий ©   (2010-07-12 20:38) [104]

По условию задачи файл должен быть типизированым?


 
Виталий ©   (2010-07-12 20:46) [105]

Просто что-то мне подсказывает, что записать структуру с AnsiString полями в типизированый файл невозможно (разве что не заводить дополнительные поля с длинами строк)


 
Sha ©   (2010-07-12 20:49) [106]

> Виталий ©   (12.07.10 20:38) [104]
> По условию задачи файл должен быть типизированым?

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


 
Leonid Troyanovsky ©   (2010-07-12 20:49) [107]


> Виталий ©   (12.07.10 20:46) [105]

> Просто что-то мне подсказывает

А что именно подсказывает?

--
Regards, LVT.


 
Виталий ©   (2010-07-12 20:50) [108]

С последними двумя даже еще не столкнулся, а вот по поводу сложности типизированого и не типизированого... Таки, выходит, способ есть...


 
Виталий ©   (2010-07-12 20:53) [109]


> А что именно подсказывает?

Книги и гугль: неизвестно, сколько байт занимает строка, которую я запишу (если конечно я не сохраню это значение где-то), а как я ее прочитаю, если не знаю, сколько памяти выделять?


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

Страничный файл - это, кстати, отображаемый в память?


 
Leonid Troyanovsky ©   (2010-07-12 21:04) [111]


> Виталий ©   (12.07.10 20:53) [109]

> где-то), а как я ее прочитаю, если не знаю, сколько памяти
> выделять?

Вот, хорошо.
Осталось только, IMHO, вдумчиво читать msdn.

--
Regards, LVT.


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


> Осталось только, IMHO, вдумчиво читать msdn.

Там сказано, что таки есть способ это сделать, то есть я неверно считаю?


 
Leonid Troyanovsky ©   (2010-07-12 21:18) [113]


> Виталий ©   (12.07.10 21:08) [112]

> Там сказано, что таки есть способ это сделать, то есть я
> неверно считаю?

В msdn?  Да, вроде, нет там ничего сверхестественного.
Допустим, Unicode vs ANSI - все ж там понятно.

--
Regards, LVT.


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

Не понял вас, поясните, если не сложно, вашу мысль.


 
Sha ©   (2010-07-12 21:22) [115]

> Виталий ©   (12.07.10 21:03) [110]
> Страничный файл - это, кстати, отображаемый в память?

Не всегда.
Никто не запрещает работать со страницами данных,
как с записями типизированного файла.


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


> Никто не запрещает работать со страницами данных,
> как с записями типизированного файла.

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


 
Юрий Зотов ©   (2010-07-12 21:28) [117]

Люди, ну че вы парня путаете? Какой, в баню, МСДН? Какие страничные файлы? Разве это ТА задача?

Ему надо просто научиться писать в бинарный файл данные произвольной структуры - так, чтобы, зная структуру, их можно было прочитать.

И все. Без всяких премудростей.

Виталий, мне кажется, Вам стоит на несколько часов покинуть форум и решить задачу САМОМУ. Иначе - что толку-то?

Как получится - так и получится. Это, по сути, неважно, потому что ЛЮБОЕ Ваше решение, хоть хорошее, хоть плохое - это всего лишь тема для дальнейшего обсуждения. Главное - сделать САМОМУ.

Смелее.


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

Хорошо, давайте я наконец напишу свой быдлокод для чтения и записи ОДНОЙ структуры и выложу на ваш суд. Можно?


 
Юрий Зотов ©   (2010-07-12 21:30) [119]

Блин. Он таки ударился в страничные файлы. И даже дальше - в MMF полез.

Саш, ну и на фига? Вот скажи - на фига? Разве ЭТО ему сейчас надо?


 
Юрий Зотов ©   (2010-07-12 21:31) [120]


> Виталий ©   (12.07.10 21:29) [118]

Да не можно, а НУЖНО. Еще час назад надо было это сделать.



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

Текущий архив: 2010.11.07;
Скачать: CL | DM;

Наверх




Память: 0.71 MB
Время: 0.037 c
2-1281770096
Artemka86
2010-08-14 11:14
2010.11.07
Вывод информации в StringGrid


2-1281735892
Германн
2010-08-14 01:44
2010.11.07
Named pipes


15-1279916973
Юрий
2010-07-24 00:29
2010.11.07
С днем рождения ! 24 июля 2010 суббота


2-1281621980
DROWSY
2010-08-12 18:06
2010.11.07
Рабочие наборы данных.


2-1281883089
DROWSY
2010-08-15 18:38
2010.11.07
Сортировка по псевдониму.