Форум: "Прочее";
Текущий архив: 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