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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.69 MB
Время: 0.042 c
15-1280345181
turbouser
2010-07-28 23:26
2010.11.07
Еще раз о цензуре - 3


15-1280428521
Riply
2010-07-29 22:35
2010.11.07
Детектирование исполнителя путем поверхносного анализа :)


2-1281731884
Andrey K
2010-08-14 00:38
2010.11.07
Как через родителя обратится к компоненту.


15-1280332456
Baks
2010-07-28 19:54
2010.11.07
Как правильно разбить строку?


6-1229185383
ASMiD
2008-12-13 19:23
2010.11.07
компонент для чтения с FTP сервера для Delphi7





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский