Как создать свой формат файла или как сохранить 300 вопросов с вариантами в одном файле?
Нужно сохранить 300-500 вопросов с 5 вариантами в одном файле так, чтобы легко достать случайные 25 вопросов с (перемешанными)вариантами. В текстовом файле не получится — в тесте может быть картины, формулы. Как быть? Для открытия теста будет написано специальная программа. Моя задача: генерировать из ms word тест-файл, если понадобится в новом формате. Я в этом абсолютно ничего не знаю. В каком направлений двигаться? О чем надо читать?
P.S. «Генератор-сайт» будет написано на php
- Вопрос задан более трёх лет назад
- 5225 просмотров
1 комментарий
Оценить 1 комментарий
Непрограммистсоченьдлиннымимен @c_pro_lang Автор вопроса
Не знаю сколько лет уже прошло, явно больше 6 лет, но я все еще работаю над этим проектом. Я все еще не забыл как начал с нуля, и спрашивал здесь советы)
Решения вопроса 5
Не вижу проблем с хранением всего в JSON-файле с кодированием бинарных данных в Base64 (так изображения хранить проще простого; про формулы в конце). JSON парсить в php (да и вообще) – проще некуда. Сохранение в JSON-файл из *.doc/docx можно реализовать макросом-скриптом на Visual Basic за половину рабочего дня.
Если не планируется какое либо распространение этого софта и заранее известно окружение (например система тестирования в университете с определенной версией MS Office =) ), то можно использовать автоматизацию приложений MS Office. Насколько помню, на том же Delphi довольно просто прикручивался кастомный GUI к документу MS Office при наличии хоть какого опыта работы с технологией COM. В таком случае достаточно будет лишь правильно разметить документ. С веб-версией, в случае ее необходимости, придется обращаться к .NET-платформе (хотя наверняка в MSDN уже есть мануал с сорцами на эту тему).
И стоит напомнить: *.docx – это не более чем переименованный *.zip с файлами в xml-формате. Не знаю как там хранятся изображения, но парсить распакованную структуру не должно составить большого труда средствами любого языка программирования.
Что является формулами я не смог понять из вопроса. Если объекты *math* или как там в MS Office они зовуться, то тут нужно искать решение. Например отрендерить предварительно =)). Вроде когда из .docx импортировали в *.doc для Office 2003 так и было.
Ответ написан более трёх лет назад
Комментировать
Нравится 5 Комментировать
Full-stack developer (Symfony, Angular)
Сделайте все в разных файлах и соберите в zip, как это делается в docx/xlsx. Это из простых вариантов.
Собственный формат файла
Интересует не столько вопрос о том, как создать файл собственного формата, а то, как этот формат спроектировать. Существуют ли какие-нибудь методики проектирования? Что на эту тему почитать?
Ну и вообще, хотелось бы узнать ваши советы и рекомендации по сабжу.
Заранее спасибо.
19 ответов
02 декабря 2007 года
476 / / 01.02.2007
Сначала лучше посмотреть существующие форматы, не подойдёт ли какой.
Собственные форматы создаются при недостаточности или избыточности существующих, при лени 🙂 и при желании затруднить расковыривание данных.
Как составлять ТЗ можно найти в гугле.
02 декабря 2007 года
1.7K / / 31.07.2007
XSL вам в помощь.
Или БД. Уже все придумано.
03 декабря 2007 года
562 / / 03.02.2005
А при чем тут XSL?
Создать файл собственного формата очень просто: открываешь файл и пишешь в него свои данные. Как этот формат спроектировать зависит от природы данных. Можно, например, сериализовать объект в файл да и все.
03 декабря 2007 года
1.7K / / 31.07.2007
А при чем тут XSL?
При том, что этот формат достаточно универсален, в нем можно запихнуть все что угодно. А придумывать велосипед не нужно. Сеарилизируйте туда хоть весь дамп данных программы.
03 декабря 2007 года
151 / / 21.10.2005
Ведь все уже разработано, под это все написана куча драйверов. К тому же свой формат никому не отдашь для импорта, при большом количестве данных «это» будет работать в лучшем случае небыстро, в худшем ненадежно.
Этот геморрой оправдать может лишь : задача спроектирована с шифрованием, или в учебных целях. Иначе это теряет смысл.
03 декабря 2007 года
4.8K / / 20.01.2000
При том, что этот формат достаточно универсален, в нем можно запихнуть все что угодно.
Например, видео. или исполняемый код. 🙂
Запихнуть то можно, но вот всегда ли оно того требует?
Автору топика:
слишком пространственный вопрос, все зависит от того, что ты собираешься хранить в файлах, как много, как часто, как универсально.
03 декабря 2007 года
1.7K / / 31.07.2007
Например, видео. или исполняемый код. 🙂
Запихнуть то можно, но вот всегда ли оно того требует?
Автору топика:
слишком пространственный вопрос, все зависит от того, что ты собираешься хранить в файлах, как много, как часто, как универсально.
Дык зачем видео? Для видео есть свои форматы. Каждому — свое место. 🙂
Тут автор имеет ввиду скорее что лучше юзать для хранения специфических данных. В любом случае все уже приготовлено для нас — бери юзай.:)
03 декабря 2007 года
4.8K / / 20.01.2000
Дык зачем видео? Для видео есть свои форматы. Каждому — свое место. 🙂
Форматы видео придуманы богами? 🙂
Тут автор имеет ввиду скорее что лучше юзать для хранения специфических данных.
Что есть «специфичные данные»? Видео и исполняемый код является не специфичным?
В любом случае все уже приготовлено для нас — бери юзай.:)
Уверен, что все?
Мне нужно просериализовать игровой уровень (графика, звук, анимация, игровая логика, исполняемый код). Причем упаковывать буду на PC, а читать на PS2. Причем, грузиться должно не дольше 20 сек. Причем, никаких аллокаций памяти после загрузки файла. Чем не «специфичные» данные? Какой существующий формат предложишь?
Или другой пример: хочу сохранять резервную копию раздела диска.
Примеров море.
Повторюсь: все зависит от того, что именно хочешь сохранять и для чего. Если сохраняешь бинарные данные, чтоб далее использовать, как бинарные, то есть ли смысл переводить их в текстовый формат?
У XSL тоже весьма специфичная область — все что можно и целесообразно представить в текстовой табличной форме.
03 декабря 2007 года
1.7K / / 31.07.2007
Форматы видео придуманы богами? 🙂
Нет, но они уже придуманы. Не нужно опять придумывать AVI (к примеру) формат.
Что есть «специфичные данные»? Видео и исполняемый код является не специфичным?
Я имел ввиду данные, которые пока не стандартизированы.
Уверен, что все?
Мне нужно просериализовать игровой уровень (графика, звук, анимация, игровая логика, исполняемый код). Причем упаковывать буду на PC, а читать на PS2. Причем, грузиться должно не дольше 20 сек.
Причем, никаких аллокаций памяти после загрузки файла.
Или другой пример: хочу сохранять резервную копию раздела диска.
Ну, захотел :).. десериализовать за 20 сек точно не выыйдет..
На счет сохранения разделов — так образы разве проблема сделать?
Повторюсь: все зависит от того, что именно хочешь сохранять и для чего. Если сохраняешь бинарные данные, чтоб далее использовать, как бинарные, то есть ли смысл переводить их в текстовый формат?
Конечно не имееет, а зачем? А бинарных форматов тож много. Взять тот же всем известный РЕ.
У XSL тоже весьма специфичная область — все что можно и целесообразно представить в текстовой табличной форме.
Согласен, все зависит от области применения. Можно делать и через 2 полушария (далеко не моск), например сохранять текст нот в графическом формате, чтобы потом его распознавать и проигрывать 😀
03 декабря 2007 года
374 / / 15.02.2003
Мне кажется человеку надо было бы рассказать про разделимые способы кодирования и иже с ними. Дать человеку представление, что инфа хранится более или менее самостоятельными блоками. Дать человеку мат. базу для оптимального разделения на эти самые блоки.
Задача ведь стояла «КАК СПРОЕКТИРОВАТЬ», а не как натянуть старый сапог на ногу на два размера бОльшую.
Я , к сожалению, врядле смогу эти темы осветить не то чтобы исчерпывающе, а хотя бы внятно. (
03 декабря 2007 года
4.8K / / 20.01.2000
Нет, но они уже придуманы. Не нужно опять придумывать AVI (к примеру) формат.
Ну мы же не знаем, может, автор топика придумал новый способ кодирования видео. Почему бы нет?
Я имел ввиду данные, которые пока не стандартизированы.
Нестандартизированных данных было, есть и будет всегда больше чем стандартизированных.
Ну, захотел :).. десериализовать за 20 сек точно не выыйдет..
Ну так делаем же 😉
На счет сохранения разделов — так образы разве проблема сделать?
Нет, не проблема, однако с помощью XSL не имеет смысла, здесь свой формат нужен, в зависимости от того, как хотим хранить и как в последствии использовать.
Конечно не имееет, а зачем? А бинарных форматов тож много. Взять тот же всем известный РЕ.
Ну, тогда уж не PE, а COFF, т.к. PE — его частный случай.
Согласен, все зависит от области применения. Можно делать и через 2 полушария (далеко не моск), например сохранять текст нот в графическом формате, чтобы потом его распознавать и проигрывать 😀
Вот поэтому и сложно дать совет, пока автор топика не раскроет свой тайный замысел.
03 декабря 2007 года
589 / / 01.06.2006
На счет сохранения разделов — так образы разве проблема сделать?
Конечно не имееет, а зачем? А бинарных форматов тож много. Взять тот же всем известный РЕ.
Согласен, все зависит от области применения.
Тогда зачем даешь однозначную ссылку на XSL со словами «все уже придумано»?
03 декабря 2007 года
4.8K / / 20.01.2000
Автор задал очень общий вопрос, вот, возможно, SkyM@n и дал общий ответ.
Давайте все же дождемся пояснений автора топика.
03 декабря 2007 года
562 / / 03.02.2005
Погодите, XSL это по-прежнему eXtensible Stylesheet Language, или я что-то пропустил? Может вы про XML.
04 декабря 2007 года
102 / / 29.01.2007
Применение собственного формата оправдано, если РАБОТА программы с ним обеспечивает значительное преимущество по сравнению с существующими стандартными.
Проблемы ХРАНЕНИЯ и ИМПОРТА не столь критичны, т.к. написать еще и собственный конвертор будет уже не такой сложной задачей, а самому процессу конвертации допустимо быть не столь быстрым.
05 декабря 2007 года
6 / / 12.11.2006
Порывшись в гугле, оказалось, что данная тема не то чтобы плохо освещена, а совсем никак. Готовых форматов множество и они исчерпывающе описаны. Применение уже существующего формата абсолютно оправденно в большинстве прикладных задач. Но, как заметил Alex_soldier,
Применение собственного формата оправдано, если РАБОТА программы с ним обеспечивает значительное преимущество по сравнению с существующими стандартными.
.
Задача проектирования собственного формата не является невыполнимой, но хотелось подойти к ней системно, используя, так сказать, «мат. часть» по данному вопросу.
Я не собирался морочить голову присутствующим. У меня нет никаких тайных замыслов :). Просто интересуюсь.
05 декабря 2007 года
102 / / 29.01.2007
Ну тогда логичнее всего хранить данные в их естественном порядке следования: чтобы кроме операций чтения-записи при обработке было минимум дополнительных преобразований (в идеале — вообще без).
05 декабря 2007 года
4.5K / / 09.08.2005
Задача проектирования собственного формата не является невыполнимой, но хотелось подойти к ней системно, используя, так сказать, «мат. часть» по данному вопросу.
Такие среды программирования как .NET или Java поддреживают двоичную сериализацию объектов (графа объектов). Общий алгоритм сериализации достаточно прост.
На вход сериализатору подается единственный объект, далее он сам проходит по всем дочеррним объектам (т.е. обходит направленный граф, где ребро — это ссылка уществующая в объекте А на объект Б).
Объект в поток пишется поле за полем, кроме этого в заголовок объекта помещается маркер типа объекта. Все сохраняемые объекты индексируются во внутренней таблице сериализатора, и если мы наткнулись в процессе сериализации на уже записанный объект, то ставим ссылку на него (внутренний номер), и переходим к следующему.
Десериализация (восстановление графа) происходит аналогичным образом.
Необходимым условием полностью автоматической сериализации является наличие в рантайме ПОЛНОЙ метаинформации о типах объектов.
05 декабря 2007 года
840 / / 04.01.2007
Порывшись в гугле, оказалось, что данная тема не то чтобы плохо освещена, а совсем никак. Готовых форматов множество и они исчерпывающе описаны. Применение уже существующего формата абсолютно оправденно в большинстве прикладных задач. Но, как заметил Alex_soldier,
Задача проектирования собственного формата не является невыполнимой, но хотелось подойти к ней системно, используя, так сказать, «мат. часть» по данному вопросу.
Я не собирался морочить голову присутствующим. У меня нет никаких тайных замыслов :). Просто интересуюсь.
Тебя интерисует двоичный или текстовый формат хоть? Если двоичный, то какие требования? Быстрота загрузки? Кроссплатформенность? Какого типа данные хранить собираешся?
Создание файлов собственного типа
Скиньте, пожалуйста, литературу по созданию файлов со своим расширением, как создать своё расширение (например: file.abcdefg) или др.
Лучшие ответы ( 3 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Передача параметра собственного типа потоку
Потоку можно передавать один параметр типа Object. Это работает если тебе нужно передать переменную.

Как создать массив объектов собственного типа
Как создать массив, в котором в одном элементу arr будут хранится данные собственного типа .

Как посчитать Мах и Avg для собственного типа?
var composlugy = new < new
Описать класс – наследник коллекции элементов собственного типа
Описать класс – наследник коллекции элементов собственного типа. Заполнить коллекцию пятью.
136 / 104 / 9
Регистрация: 30.01.2011
Сообщений: 699
Расширение?!
Своим расширением будет любой файл, который запишешь по собственному алгоритму(к примеру сохранение в батник, сначала свой заголовок, потом контент и та далее)
Ну и сохраняй его с другим расширением в имени.
Регистрация: 10.03.2011
Сообщений: 354
просто сохранить его с расширение абракадабра. Это если вам нужно что потом именно это расширение открывалось вашей программой. то тут нужно немного дописать кода
719 / 710 / 168
Регистрация: 15.06.2011
Сообщений: 1,704
Создай файл file.blablabla и попробуй в него записывать и читать, впринципе вообще ничего не измениться! а если ты хочешь что-бы никто другой читать их не мог — тут ттебе правильно ответили — файл должен быть записан по твоему алгоритму.
1 2 3 4 5 6 7 8
using (StreamReader str = new StreamReader(@"c:\file.blablabla", Encoding.Default)) //Прочитали файл с расширением blablabla { MessageBox.Show(str.ReadLine()); } File.Create(@"c:\myFile.blablabla"); //Создали файл с расширением blablabla
151 / 53 / 11
Регистрация: 18.09.2011
Сообщений: 730

Сообщение было отмечено как решение
Решение
То что выше, хоть даже будет file.blablabla, любой пользователь откроет данный файл через текстовый редактор, к примеру блокнот и вычитает все, что там внутри. Я думаю — это не то, что нужно по данной теме.
Добавлено через 2 минуты
Самым простым способом, я думаю — это саморучное кодирование и считывание строк, чтобы когда сохраняла данные — была кодировка, а когда читала — декодировка и все. Вот вам и ваш файл собственного типа, так -как открыв данный файл через блокнот — он ведь закодирован. Значит будет типа того: afW232KjsdkZ2900sdDSxc***|||**ds343wwWoOOPZ_^%#OSA
![]()
4431 / 2091 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1

Сообщение было отмечено как решение
Решение
Попробуй так создать свой формат, блокнотом точно не прочесть будет:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
using System; using System.Collections.Generic; using System.IO; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string file = Path.Combine(Environment.GetFolderPath( Environment.SpecialFolder.DesktopDirectory), "testFile.rgzs"); ListPerson> persons = new ListPerson>() { new Person(23u, "Андрей"), new Person(24u, "Сергей"), new Person(56u, "Алексей"), new Person(19u, "Дмитрий"), }; Person.Save(file, persons); ListPerson> loadedPersons = Person.Load(file); Console.WriteLine("Выводим загруженные из файла данные:"); foreach (Person person in loadedPersons) { Console.WriteLine(person); } Console.ReadKey(); } } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
public class Person { uint Age { get; set; } string Name { get; set; } public Person(uint age, string name) { this.Age = age; this.Name = name; } public Person() : this(0u, string.Empty) { } public override string ToString() { return string.Format("Имя: \tВозраст: ", Name, Age); } public static void Save(string path, IListPerson> persons) { using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None)) using (BinaryWriter binWriter = new BinaryWriter(fs)) { binWriter.Write(persons.Count); //(Int32) записываем кол-во элементов for (int i = 0; i persons.Count; i++) { binWriter.Write(persons[i].Age); //(UInt32) binWriter.Write(persons[i].Name); //(string) } } } public static ListPerson> Load(string path) { ListPerson> persons = null; using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read)) using (BinaryReader binReader = new BinaryReader(fs)) { int quantity = binReader.ReadInt32(); persons = new ListPerson>(quantity); for (int i = 0; i quantity; i++) { uint age = binReader.ReadUInt32(); string name = binReader.ReadString(); persons.Add(new Person(age, name)); } } return persons; } }
Как сделать свой формат файла
Я тут увидел ветку про открытие картинок с помощью блокнота 🙂 Когда-то я делал что-то вроде этого: пытался написать инсталятор, суть которого была в том, что в мемо загоняется файл, а потом производится команда Memo.Lines.SaveToFile. Долго думал, почему эта программа не работает? :-))))))))
Всё закончилось благополучно: на глаза попалась статеёка про кодировки и всё встало на свои места. Теперь сетапы стараюсь делать по-нормальному (как я считаю)
Так, вот, сам вопрос
Как создать свой формат файла? Суть в том, что в одном файле хранится, к примеру текст (досье человека) и другой файл (фото этого человека) + ещё и ещё файлы (если понадобится, например засунуть вордовский дкумент. ). ООООчень большой + будет в том, что многие такой файл взломать просто не смогут (не считая меня 🙂 ), все данные будут сгруппированны, храниться вместе. Но программа, естественно, должна читать всё по-отдельности.
Что мне нужно на данный момент по-минимуму: в один файл «засунуть» и текст, и картинку.
А! Чуть не забыл: зарнее спасибо 🙂
← →
Плохиш © ( 2007-01-23 18:54 ) [1]
> Как создать свой формат файла?
Файл — это последовательный набор «кирпичиков» называемых байтами. Интерпретация этого набора является плодом больного воображения каждого сумасшедшего, решившего заняться программированием.
← →
tif © ( 2007-01-23 18:55 ) [2]
> Файл — это последовательный набор «кирпичиков» называемых
> байтами. Интерпретация этого набора является плодом больного
> воображения каждого сумасшедшего, решившего заняться программированием.
>
Как создать последовательнеость байтов?
И как из этих байто-кирпичиков построить файл?
← →
Плохиш © ( 2007-01-23 18:59 ) [3]
Из справки
var
FromF, ToF: file;
NumRead, NumWritten: Integer;
Buf: array[1..2048] of Char;
begin
if OpenDialog1.Execute then < Öffnen-Dialogfeld anzeigen >
begin
AssignFile(FromF, OpenDialog1.FileName);
Reset(FromF, 1); < Datensatzgröße = 1 >
if SaveDialog1.Execute then < Speichern-Dialogfeld anzeigen >
begin
AssignFile(ToF, SaveDialog1.FileName);
Rewrite(ToF, 1); < Datensatzgröße = 1 >
Canvas.TextOut(10, 10, «Copying » + IntToStr(FileSize(FromF))
+ » bytes. «);
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
end;
end;
end;
← →
tif © ( 2007-01-23 19:00 ) [4]
наверное туплю, но как потом обратно?
← →
Ega23 © ( 2007-01-23 19:00 ) [5]
Добавь к своему нику ещё одну f и поищи в яндексе разбор этого формата.
Как раз то, что тебе нужно.
← →
tif © ( 2007-01-23 19:02 ) [6]
Удалено модератором
Примечание: Флудить завязываем
← →
Ega23 © ( 2007-01-23 19:07 ) [7]
TIFF = Tag Image File Format.
Туда, при желании, хоть музыку можно запуздырить. Причём все граф.вьюеры будут показывать одну и ту же картинку. А твой специальный — эту же картинку с непотребными комментариями под матерные частушки.
И всё в одном файле.
← →
Amoeba © ( 2007-01-24 11:57 ) [8]
Single File System:
http://www.aidaim.com/single_file_system.htm
Без исходников бесплатно.
← →
TIF © ( 2007-01-26 14:40 ) [9]
Удалено модератором
Примечание: Флудить завязываем
← →
Сергей М. © ( 2007-01-26 14:45 ) [10]
> в мемо загоняется файл, а потом производится команда Memo.
> Lines.SaveToFile. Долго думал, почему эта программа не работает?
>
Прелюбопытно, что надумал-то ? В результате ?)
← →
TIF © ( 2007-01-26 14:47 ) [11]
Удалено модератором
Примечание: Флудить завязываем
← →
Сергей М. © ( 2007-01-26 14:51 ) [12]
> вопроса не понял. надо читать до конца
>
А, ну да .. «Чукча не читатель ..» (С)
Чукча — он писа»тель (знаком » отмечено ударение, а то понапишут тут)
Ветка стала напоминать чат.
← →
Сергей М. © ( 2007-01-26 15:00 ) [16]
> Ветка стала напоминать чат.
Проблемы-то — у тебя, чудо)
← →
JFK&MM_extramarital_son ( 2007-01-26 15:01 ) [17]
Предварительно надо подать заявку в международный комитет по форматам файлов при ООН, ООП или при местном отделении Единой России и получить разрешение на разработку своего формата файла. Заплатив пошлину и приобретя shell иконку для нового типа.
Иначе ничего не выйдет.
← →
Сергей М. © ( 2007-01-26 15:02 ) [18]
> JFK&MM_extramarital_son (26.01.07 15:01) [17]
Не-а. Тут ышшо взятку надо дать. Без взятки — никак)
← →
TIF © ( 2007-01-26 15:06 ) [19]
> Предварительно надо подать заявку в международный комитет
> по форматам файлов при ООН, ООП или при местном отделении
> Единой России и получить разрешение на разработку своего
> формата файла. Заплатив пошлину и приобретя shell иконку
> для нового типа.
> Иначе ничего не выйдет.
между прочим я уже создал несколько СВОИХ форматов файла (без возможности хранить в них картинки, что очень плохо и что я хотел бы узнать) — особая структура файла, которую знает исполяемый ехе-файл.
> Не-а. Тут ышшо взятку надо дать. Без взятки — никак)
и взятки не понадобилось
← →
Ega23 © ( 2007-01-26 15:07 ) [20]
> какое извращённое восприятие окружающего мира
>
Я не понял, ты ветку ради флуда завёл.
Тебе был даден КОНКРЕТНЫЙ ответ на КОНКРЕТНЫЙ вопрос:
> Как создать свой формат файла? Суть в том, что в одном файле
> хранится, к примеру текст (досье человека) и другой файл
> (фото этого человека) + ещё и ещё файлы (если понадобится,
> например засунуть вордовский дкумент. ). ООООчень большой
> + будет в том, что многие такой файл взломать просто не
> смогут (не считая меня 🙂 ), все данные будут сгруппированны,
> храниться вместе. Но программа, естественно, должна читать
> всё по-отдельности.
>
Так вот, всё это решает TIFF.
← →
Сергей М. © ( 2007-01-26 15:09 ) [21]
> TIF © (26.01.07 15:06) [19]
>
>
> между прочим я уже создал несколько СВОИХ форматов файла
Ну ты и крут, братец кролик)
И что, все эти «форматы» ты засандалил «с помощью блокнота» ?
Да что уж там мелочиться ?)
Контейнерные форматы тех же документов MSOffice способны хранить все что угодно — хоть текст, хоть картинки, хоть песняк блатной, хоть черта лысого)
← →
TIF © ( 2007-01-26 15:12 ) [23]
> И что, все эти «форматы» ты засандалил «с помощью блокнота»
> ?
нет, с помщью компонента FileTextFormat
← →
TIF © ( 2007-01-26 15:13 ) [24]
> Так вот, всё это решает TIFF.
мне нужен СВОЙ формат
> Контейнерные форматы тех же документов MSOffice способны
> хранить все что угодно — хоть текст, хоть картинки, хоть
> песняк блатной, хоть черта лысого)
а как потом из них извлекать например картинки? и загружать в TImage? а?
← →
Сергей М. © ( 2007-01-26 15:13 ) [25]
> TIF © (26.01.07 15:12) [23]
Ай малацца !
Продолжай в том же духе)
← →
TIF © ( 2007-01-26 15:14 ) [26]
> Продолжай в том же духе)
а втом же мне и ненадо, а надо в духе «запихни в файл картинку и достань её потом»
← →
Ega23 © ( 2007-01-26 15:15 ) [27]
> мне нужен СВОЙ формат
>
Ты, похоже идиот. Ты вообще про этот формат почитал?
← →
Сергей М. © ( 2007-01-26 15:15 ) [28]
> TIF © (26.01.07 15:13) [24]
> а как потом из них извлекать например картинки? и загружать
> в TImage? а?
Оно тебя заботить не должно — тебя ведь заклинило на «своем» формате и «с помощью блокнота», вот и скатертью тебе дорога))
← →
TIF © ( 2007-01-26 15:20 ) [29]
ладно, допустим я решил работать с TIFF форматом
КАК с ним программно взаимодействоать? Где найти примеры? Исходники? статьи? Ссылки?
И самое главное: как обеспечить безопасность данных? Ведь любой может взять и открыть TIFF файл. И посмотреть, что там! А оно мне надо.
← →
iXT © ( 2007-01-26 15:23 ) [30]
Что для тебя есть «формат файла»?
Чего ты от него хочешь?
з.ы.
Читать [1] до полного просветления.
← →
Сергей М. © ( 2007-01-26 15:25 ) [31]
> TIF © (26.01.07 15:20) [29]
> допустим я решил работать с TIFF форматом
Первым делом ты должен проштудировать имеющиеся материалы по этому формату.
Тырнет большой, в нем предостаточно таких материалов.
Ты хоть пальцем пошевелил, чтобы найти хоть что-то на эту тему ?
> как обеспечить безопасность данных? Ведь любой может взять
> и открыть TIFF файл. И посмотреть, что там! А оно мне
> надо?
Порнуху распространяем ?)
← →
TIF © ( 2007-01-26 15:27 ) [32]
> Порнуху распространяем ?)
> Как создать свой формат файла? Суть в том, что в одном файле
> хранится, к примеру текст (досье человека) и другой файл
> (фото этого человека) + ещё и ещё файлы (если понадобится,
> например засунуть вордовский дкумент. ). ООООчень большой
> + будет в том, что многие такой файл взломать просто не
> смогут (не считая меня 🙂 ), все данные будут сгруппированны,
> храниться вместе. Но программа, естественно, должна читать
> всё по-отдельности.
>
← →
clickmaker © ( 2007-01-26 15:37 ) [33]
> [32] TIF © (26.01.07 15:27)
ты что, издеваешься?
Записывать в файл и читать из него потоки байт в той же последовательности, что и записал, умеешь?
Больше ничего для «создать свой формат файла» и не требуется
← →
Сергей М. © ( 2007-01-26 15:37 ) [34]
> TIF © (26.01.07 15:27) [32]
Нет, ну ты, ей-ей, идиот, г-н Кулибин)
Любая существующая более-менее приличная СУБД давным-давно реализует все это и многое-многое другое.
← →
Virgo_Style © ( 2007-01-26 15:38 ) [35]
жуть какая.
← →
Ega23 © ( 2007-01-26 15:38 ) [36]
> КАК с ним программно взаимодействоать? Где найти примеры?
> Исходники? статьи? Ссылки?
Ты уже утомил.
Последний раз говорю: набери в яндексе «Описание формата TIFF».
← →
Сергей М. © ( 2007-01-26 15:41 ) [37]
> многие такой файл взломать просто не смогут
— А это кто ?
— Это — неуловимый Джо.
— А почему неуловимый ?
— Да нахрен он кому нужен, чтобы его ловить !
← →
iXT © ( 2007-01-26 15:43 ) [38]
Берешь всю эту кучу файлов. Архивируешь (хоть своим, хоть чужим; хочешь с жатием, хочешь без него). Приделываешь результату расширение типа .ёёё Вот тебе формат который ты просил. Можешь после этого поXORить весь файл дабы никто не открыл архиватором 🙂
← →
TIF © ( 2007-01-26 15:45 ) [39]
> Любая существующая более-менее приличная СУБД давным-давно
> реализует все это и многое-многое другое.
НЕНАВИЖУ чужиу СУБД. ужас, как ненавижу.
как это сделать программно?
вот так и ходим по кругу.
← →
Сергей М. © ( 2007-01-26 15:47 ) [41]
> НЕНАВИЖУ чужиу СУБД. ужас, как ненавижу
так вот, для этого мне и нужен свой формат файла.
от чего ушли.
← →
Сергей М. © ( 2007-01-26 15:49 ) [43]
> Для этого мне и нужен свой формат файла
Ну а блокнот-то причем !?
Тебе что, встроенного в делфи редактора мало ?)
← →
TIF © ( 2007-01-26 15:51 ) [44]
> Ну а блокнот-то причем !?
какой блокнот? о блокноте речь не шла.
> Тебе что, встроенного в делфи редактора мало ?)
какой такой редактор. поподробнее
← →
Сергей М. © ( 2007-01-26 15:54 ) [45]
> какой блокнот? о блокноте речь не шла
Мартышка к старости слаба ушами стала ?)
Вот цитата из твоего творчества чуть выше по тексту:
> открытие картинок с помощью блокнота
> какой такой редактор. поподробнее
Обычный редактор текста.
← →
iXT © ( 2007-01-26 15:57 ) [46]
> TIF © (26.01.07 15:46) [40]
>
> > Архивируешь
>
>
> как это сделать программно?
И в чем тут проблемы? Или собственная лень мешает, либо.
Вообшем, сейчас советовался с Microsoft. Они сказали что никак низя, и что Windows неизвестные форматы будет просто удалять без предупреждения. Мотивировали тем, что инатче при двойном клике по файлу Windows будет виснуть от невозможности открыть неизвестный формат «блокнотом».
:)))))))))))))))))))
← →
TIF © ( 2007-01-26 16:07 ) [47]
> > открытие картинок с помощью блокнота
а потом я написал, что это ерунда
ИТАК подводим ИТОГИ.
1) Берём картинку, разбиваем на биты, потом сохраняем вместе с текстом в файл, предварительно шифруя
2) Расширение файла ставим, например, .tifkin (естественно, стоко символов нежелательно) или .234 и сохраняем.
Кто считает не так.
← →
Сергей М. © ( 2007-01-26 16:14 ) [48]
> 1) Берём картинку, разбиваем на биты
Впрочем, тебе видней). Но лучше таки на миллибиты — вражеская разведка будет в шоке)
> 2) Расширение файла ставим, например, .tifkin (естественно,
> стоко символов нежелательно) или .234
А уж если та самая вражеская разведка это увидит, то просто повесится тут же на месте)
> Кто считает не так?
А собственно формат-то где твой новоиспеченный ?)
← →
Ega23 © ( 2007-01-26 16:14 ) [49]
> Кто считает не так.
я считаю не так.
Я считаю так:
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
← →
TIF © ( 2007-01-26 16:17 ) [50]
> А собственно формат-то где твой новоиспеченный ?)
а внутри что будет? структура. это и есть формат
а внутренности-то я вам и не покажу
могу только на примере показать, если надо
← →
Ega23 © ( 2007-01-26 16:18 ) [51]
> могу только на примере показать, если надо
>
мне лучше — никто никогда его не узнает (формат-то)
← →
TIF © ( 2007-01-26 16:29 ) [53]
> var
>
> FromF, ToF: file;
> NumRead, NumWritten: Integer;
> Buf: array[1..2048] of Char;
> begin
> if OpenDialog1.Execute then < Öffnen-Dialogfeld anzeigen
> >
> begin
> AssignFile(FromF, OpenDialog1.FileName);
> Reset(FromF, 1); < Datensatzgröße = 1 >
> if SaveDialog1.Execute then < Speichern-Dialogfeld
> anzeigen >
> begin
> AssignFile(ToF, SaveDialog1.FileName); < Ausgabedatei
> öffnen >
>
> Rewrite(ToF, 1); < Datensatzgröße = 1 >
> Canvas.TextOut(10, 10, «Copying » + IntToStr(FileSize(FromF))
> + » bytes. «);
> repeat
> BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
> BlockWrite(ToF, Buf, NumRead, NumWritten);
> until (NumRead = 0) or (NumWritten <> NumRead);
> CloseFile(FromF);
> CloseFile(ToF);
> end;
> end;
> end;
а как всё-таки обратно.
и я вас закончу мучать 🙂
← →
DrPass © ( 2007-01-26 16:29 ) [54]
> мне лучше — никто никогда его не узнает (формат-то)
Если найдешь обделенного умом человека, которого будет волновать формат твоего файла, познакомь. Мы ему в качестве благотворительности лечение оплатим
← →
Сергей М. © ( 2007-01-26 16:41 ) [55]
> внутри что будет? структура. это и есть формат
Вот ведь новость-то)
И что тебе мешает продумать, разработать и документировать эту «структуру» ? С пом. того же «Блокнота» ?
> а внутренности-то я вам и не покажу
> никто никогда его не узнает (формат-то)
Чтоб пост не был флудом:
Как уже и писали тебе будет проще всего скопировать нужные файлы в отдельную папку и сжать эту самую папку как-нибудь ZIP»ом (готовых бесплатных компонентов море).
← →
Сергей М. © ( 2007-01-26 16:52 ) [57]
> Hint (26.01.07 16:47) [56]
Предположим что я есть представитель вражеской разведки и я знаю форматы всех «как-нибудь ZIP»ов», и мне не составляет труда узнать, что же там какой-то TIF(C) захреначил в файл в формате «такого-то ZIP»а»..
Автор же, судя по его постам, при этом попросту удавится, проделав «титаническую» работу по «созданию своего формата с помощью блокнота» и узнав об этом)
= ничего для информации, «JPG» или «BMP» для картинки, имя документа — для документа и т.д.
= длина последующих данных.
= поток данных (структура с досье, bmp или jpg потоки и т.д.
По крайней мере я бы добавил.
← →
Elen © ( 2007-01-26 16:58 ) [62]
> Ega23
Я знаю что в TIFF можно загнать несколько картинок, но музыку и подобное. Может подскажеш как или чем (существующим, чтоб свое не лепить.)
← →
iXT © ( 2007-01-26 17:03 ) [63]
> Virgo_Style © (26.01.07 16:54) [59]
Он же секретный, а ты всем рассказал 🙂
← →
Сергей М. © ( 2007-01-26 17:03 ) [64]
> Elen © (26.01.07 16:58) [62]
Если TIFF есть формат сжатия/хранения без потерь (ч.г. не помню), то похрену что в нем хранить — хоть звук, хоть хрюк, хоть декларацию о незалежности)
← →
Elen © ( 2007-01-26 17:04 ) [65]
> многие такой файл взломать просто не смогут
Э-э. Так вот чего надебно автору. Защита. В чем проблема Перезаписывай файлы каким нибудь своим криптомейкером. 😉
← →
Elen © ( 2007-01-26 17:05 ) [66]
> Сергей М
Дык а есть проги которые уже такое творят с тифами — запихивают в него все что угодно и так же достают?
← →
TIF © ( 2007-01-26 17:06 ) [67]
> Эта тема лучше всякого орешника =)))
само собой, у нас всё высого качества
> Как уже и писали тебе будет проще всего скопировать нужные
> файлы в отдельную папку и сжать эту самую папку как-нибудь
> ZIP»ом (готовых бесплатных компонентов море).
а потом любой откроет архивчик и пиши пропало
← →
TIF © ( 2007-01-26 17:07 ) [68]
> криптомейкером. 😉
можат, скриптомейкером? или как? и ваще, що це таке?
← →
Плохиш © ( 2007-01-26 17:08 ) [69]
Всё, пойду выкручу из машины ремень безопасности и прикручу его к креслу.
← →
Сергей М. © ( 2007-01-26 17:09 ) [70]
> Elen © (26.01.07 17:05) [66]
Мне ч.г. по колено, есть такие или нет таких — это проблема автора)
Но только такой же идиот, как и Автор, будет подбирать «проги» в надежде выковырять из TIF-файла суперпуперсекретную инф-цию, засандаленную туда Автором.
← →
Сергей М. © ( 2007-01-26 17:10 ) [71]
> Плохиш © (26.01.07 17:08) [69]
Лучше уж ГРМ к ж..е)
← →
Ega23 © ( 2007-01-26 17:11 ) [72]
> Я знаю что в TIFF можно загнать несколько картинок, но музыку
> и подобное. Может подскажеш как или чем (существующим,
> чтоб свое не лепить.)
>
Существующего ничего не знаю. Естественно придётся лепить самому и кодер и декодер.
Я, честно говоря, этот формат ковырял году в 2002, так что в деталях особо не помню. Смысл был такой: есть заголовок файла, есть некая таблица, указывающая где в файле расположены Image File Directory (IFD). Каждая из этих директорий, в свою очередь, состоит из набора тэгов, часть из которых строго описана, а другая чать — оставлена за пользователем. Вот, с помощью таких пользовательских тэгов и можно любые данные туда зашивать. А текст это, другая картинка, XML или AVI — дело твоего кодера и декодера.
Любой графический вьюер, поддерживающий tiff-формат, должен уметь разбирать стандартный набор тэгов. А вот лично твой ещё может уметь разбирать собственные тэги.
Да, кстати: само изображение в тифе храниться построчно. А вот порядок этих строк в самом файле может быть абсолютно произвольным, главное, чтобы в IFD они в правильном порядке были описаны.
← →
Elen © ( 2007-01-26 17:13 ) [73]
> Сергей М.
Мне просто интересно — существуют ли такие. раньше я думала Tagged Image File это Группировочный Графический формат, но Image в данном случае переводила как «Картинка», поэтому и причисляла его к графическим, тем более что многие Рисовалки в Tiff сохраняют.
> можат, скриптомейкером?
Зашифруй файл по своему ключу — порули мануалы по криптографии.
← →
Ega23 © ( 2007-01-26 17:13 ) [74]
Если кого интересует, могу описание формата выслать. Исходники моего «ковыряния» высылать не буду, т.к. во-первых стыдно за тот код, а во-вторых, я уже и сам не помню как оно там всё работало. 🙂
← →
Сергей М. © ( 2007-01-26 17:14 ) [75]
> Ega23 © (26.01.07 17:13) [74]
Лучше бы ты статью на эту тему на Мастаках оформил, нежели баловать барана новыми воротами)
← →
Elen © ( 2007-01-26 17:15 ) [76]
> Ega23
Во теперь ясно. (схоже с ID3 тегом в MP3). Спасибо за инфу 😉
← →
Ega23 © ( 2007-01-26 17:15 ) [77]
> Мне просто интересно — существуют ли такие. раньше я думала
> Tagged Image File это Группировочный Графический формат,
> но Image в данном случае переводила как «Картинка», поэтому
> и причисляла его к графическим, тем более что многие Рисовалки
> в Tiff сохраняют.
На самом деле, филосовский вопрос: а что есть Image? Лично я, как честый разработчик БД под MSSQL, отношусь как к бинарному набору данных. 🙂
← →
Elen © ( 2007-01-26 17:17 ) [78]
> Ega23
Да уж Ну не смейтесь но для меня привычнее Image = Picture, хоть это и не так, вот и попадаюсь на мелочах перевода 🙂
← →
Плохиш © ( 2007-01-26 17:19 ) [79]
В jpeg в exif тоже можно чего угодно нафигачить. Вон PhotoShop туда такое пишет 🙂
← →
Ega23 © ( 2007-01-26 17:20 ) [80]
> Лучше бы ты статью на эту тему на Мастаках оформил, нежели
> баловать барана новыми воротами)
Да я бы, может, и оформил бы. И даже кодер-декодер переписал бы уже начисто. Просто я разобрал тогда, вроде, десяток самых важных тэгов из что-то около сотни стандартных. Я тогда решал маленькую частную задачу и мне этого десятка тегов полностью хватило.
А если их десяток и оставить, то это уже не статья получится, а поделка флёновская. Да и описание формата в сети есть, надо только чуть-чуть мозг наморщить. 🙂
← →
Ega23 © ( 2007-01-26 17:21 ) [81]
> В jpeg в exif тоже можно чего угодно нафигачить. Вон PhotoShop
> туда такое пишет 🙂
Да вроде в любой формат можно всего напихать. Я как-то сильно на эту тему не заморачивался.
← →
Сергей М. © ( 2007-01-26 17:26 ) [82]
> надо только чуть-чуть мозг наморщить
Жаль только Автор их не слышит)
← →
TIF © ( 2007-01-26 17:33 ) [83]
> Если кого интересует, могу описание формата выслать. Исходники
> моего «ковыряния» высылать не буду, т.к. во-первых стыдно
> за тот код, а во-вторых, я уже и сам не помню как оно там
> всё работало. 🙂
а самому-то стыдно
> Жаль только Автор их не слышит)
у меня уже складки дыбом встали от напряжения, а они тут криптографию разбирают
← →
Плохиш © ( 2007-01-26 17:36 ) [84]
> у меня уже складки дыбом встали от напряжения
Спермотоксикоз? Других напряжений пока не замечено.
← →
Ega23 © ( 2007-01-26 17:39 ) [85]
> а самому-то стыдно
А почему мне не должно быть стыдно за код, написанный студентом-второкурсником, фактически не имеющим никакого понятия о Delphi, VCL и ООП в целом, но построевшего кодер именно таким способом?
← →
Virgo_Style © ( 2007-01-26 18:21 ) [86]
Ega23 © (26.01.07 16:57) [61]
Согласен, как минимум добавить стОит.
← →
Ega23 © ( 2007-01-26 19:14 ) [87]
> Согласен, как минимум
> добавить стОит.
>
Ну, с учётом, что длина блока данных известна — необязательно. Но: если хочется ещё что-то заложить (как в Tiff) — тогда да.
← →
Anatoly Podgoretsky © ( 2007-01-26 22:29 ) [88]
Ну вы и потрепались классно сегодня.
← →
Плохиш © ( 2007-01-27 00:58 ) [89]
> Anatoly Podgoretsky © (26.01.07 22:29) [88]
> Ну вы и потрепались классно сегодня.
Мы ещё и в понедрюльник продолжим 😛 Только веточку стоит в правильнуэ конференцию перенести 😉
← →
GrayFace © ( 2007-01-27 09:47 ) [90]
Вот тебе супер-формат:
type
TMyStorage = class(TComponent)
published
property Pictre: TPicture read FPicture write FPicture;
property Text: string read FText write FText;
// и т.д.
end;
var Storage:TMyStorage; Stream:TStream;
.
Stream.WriteComponent(Storage); // Пишем данные
Stream.ReadComponent(Storage); // Читаем данные
Ведь тебе не надо произвольных имен файлов в этом формате?
TIF © (26.01.07 15:27) [32]
> Порнуху распространяем ?)
ага ЩАЗЗЗЗЗЗЗЗЗЗЗЗЗЗ.
Что прямо ЩАЗ этим и занимаешся?)
TIF © (26.01.07 17:07) [68]
можат, скриптомейкером? или как? и ваще, що це таке?
Шифрование.
Сергей М. © (26.01.07 17:10) [71]
Лучше уж ГРМ к ж..е)
А что такое ГРМ?
← →
GrayFace © ( 2007-01-27 09:49 ) [91]
GrayFace © (27.01.07 9:47) [90]
А что такое ГРМ?
А-а. Наверное, тоже что-то из разряда порнухи — тогда понятно, почему ты применять это собрался к ж[b]ен[/b]е.
← →
Смаг ( 2007-01-27 16:21 ) [92]
TIF © (26.01.07 17:33) [83]
Денег дашь? А то у меня есть свой формат файла с исходниками само собой, могу продать.
← →
Vendict © ( 2007-01-27 19:15 ) [93]
наконец то я понял, как это кататься по полу. )))
Плохиш © (27.01.07 0:58) [89]
в правильнуэ конференцию перенести 😉
«орешник» она называется )))
← →
@!!ex © ( 2007-01-27 19:35 ) [94]
Помоему это стеб, автор не может быть настолько идиотом.
P.S.
А что мешает данные запакованные ZIP тупо запаролить?
← →
TIF © ( 2007-01-28 13:05 ) [95]
Итак, он вернулся.
Было время подумать (аж 5 дней), вот я и вернулся, и не впонедельник, как пророчили, а в воскресенье.
Почитал, поразбирал свои ошибки, прочистил мозги и пришёл к следующим выводам:
1) Текстовый файл — это хранилище символов, а символ — это, к примеру, 8 байт информации (или там 16, смотря какая кодировка). И если хочется создать свой формат файла,надо его писать на диск не в виде буковок, а в виде байтов, то бишь не надо обязательно кодировать элемент изображения (файла) восемью байтами, а надо как лучше: если на картинке всего 4 цвета, то и кодировать надо двумя битами, например
00 — красный
01 — жёлтый
10 — зелёный
11 — синий
2) Конечно, лучше сжимать файлы и ставить на них (архивы) пароли (придётся копаться и искать как :-((( ). но моя программа должна, например, устанавливаться на компе с 32 мб оперативки. да, там и win rar тормозит, а моя програмка тем более.
3) Протестировал способ создания своего «ТЕКСТОВОГО ФОРМАТА» — закодированного формата данных.
Типа есть строчка
привет
12 булок, 3 батона
А она кодируется
окенга
зщ ропенл ъй ьвюбсч
так что, формат-кодировка получился. Безопасность данных обеспечена.
3) Понял, в чём суть формата файла: определённое количество последовательностей байтов.
И вот вопрос: как на диск (на кластера диска, или как там, я уж не вдаюсь в подробности, а то совсем запутаюсь 🙂 ), записать биты? байты? чтобы они сложились в последовательность, которую потом можно назвать файлом и открывать с помощью моей программы? А в Windows е этот файл должен показываться значком с флажком (что означает — неизвестный формат файла, хотя впрочем все такой значок видели хоть раз в жизни)
Знаю, что сейчас многие скажут — нельзя так создавать файл.
Отвечу — как тогда создал файл следующий мистер:
> Смаг (27.01.07 16:21) [92]
> TIF © (26.01.07 17:33) [83]
> Денег дашь? А то у меня есть свой формат файла с исходниками
> само собой, могу продать.
Жду ответов. И плз, без мата, сдерживайтесь, господа!
===
PS: специально сходил к невропатологу 🙂 Никаких заболеваний не нашли, опухоли мозга тоже нет :-)))))))))
===
← →
Zeqfreed © ( 2007-01-28 13:28 ) [96]
Не интересный развод. По сабжу: tar cjf ./filename.tar.bz2 /path/to/data && ccencrypt -K password ./filename.tar.bz2
← →
DrPass © ( 2007-01-28 13:39 ) [97]
> И плз, без мата, сдерживайтесь, господа!
Честно, еле сдерживаюсь, . растудыть твою так.
> Или он брешет?
Пес брешет
> Никаких заболеваний не нашли, опухоли мозга тоже нет :-)))))))))
Правильный ответ даст только вскрытие. Обязательно сделай на втором сеансе!
> И вот вопрос: как на диск (на кластера диска, или как там,
> я уж не вдаюсь в подробности, а то совсем запутаюсь 🙂
> ), записать биты? байты? чтобы они сложились в последовательность,
> которую потом можно назвать файлом и открывать с помощью
> моей программы?
/*Тихонько матерясь под нос*/ как угодно. Любая операция записи пишет туда биты, байты. и они складываются в последовательность, которую потом можно назвать файлом. И это делают волшебные заклинания Memo1.Lines.SaveToFile, и Bitmap.SaveToFile, и writeln, и blockwrite, и WriteFile и много-много других.
← →
Anatoly Podgoretsky © ( 2007-01-28 14:01 ) [98]
> TIF (28.01.2007 13:05:35) [95]
> PS: специально сходил к невропатологу 🙂 Никаких заболеваний не нашли, опухоли мозга тоже нет :-)))))))))
Попробуй сменить врача, пройти томографию.
← →
Kostafey © ( 2007-01-28 14:34 ) [99]
Вопрос почти по теме.
Можно ли как-нибудь картинку в xml сохранить ?
ну и соответственно наверное музыку также.
Секретности никакой-смотри кто хошь — не жалко (сумасшедшего просмотреть этот бред вручную найти все равно не найти).
Тоесть наверное, будет достаточно просто побайтово записать содержимое файла между двумя тегами.
Правда опять встает вопрос как из прочитанный набор быйт в TImage отобразить ?
← →
antonn © ( 2007-01-28 14:40 ) [100]
> Тоесть наверное, будет достаточно просто побайтово
>записать содержимое файла между двумя тегами.
> Правда опять встает вопрос как из прочитанный набор
> быйт в TImage отобразить ?
прочитать байты м/у двумя тегами в TmemoryStream и грузануть в Image
← →
Virgo_Style © ( 2007-01-28 14:43 ) [101]
Все. Больше не верю.
← →
GuAV © ( 2007-01-28 17:26 ) [102]
> Вопрос почти по теме.
> Можно ли как-нибудь картинку в xml сохранить ?
> ну и соответственно наверное музыку также.
Наверное можно в CDATA хранить, предварительно перекодировав, чтобы не было недопустимых символов и комбинаций.
Есть такой вариант: zip в котором xml и другие данные. По этому пути пошли и разработчики MS Office, OpenOffice.Org, Google Earth и, возможно, ещё кто-то. И я кстати тоже на этом остановился (я тут спрашивал несколько месяцев назад про формат, могу прислать ту ветку)
← →
Дмитрий Белькевич © ( 2007-01-28 17:40 ) [103]
> 3) Понял, в чём суть формата файла: определённое количество
> последовательностей байтов.
>
> И вот вопрос: как на диск (на кластера диска, или как там,
> я уж не вдаюсь в подробности, а то совсем запутаюсь 🙂
> ), записать биты? байты? чтобы они сложились в последовательность,
> которую потом можно назвать файлом и открывать с помощью
> моей программы? А в Windows е этот файл должен показываться
> значком с флажком (что означает — неизвестный формат файла,
> хотя впрочем все такой значок видели хоть раз в жизни)
>
> Знаю, что сейчас многие скажут — нельзя так создавать файл!
> !!
var
f: file of byte;
begin
AssignFile(f, «c:\1.bin»); //название файла
Rewrite(f); //перезапишем файл
Write(f, 1); //запишем три байта
Write(f, 2);
Write(f, 3);
CloseFile(f);
end;
Не заморачивайся с дисками, кластерами итд. Диска может не быть, кластеров тоже. Файл — создастся, и три байта последовательно запишуться, главное, что бы в сиситеме было устройство C.
← →
TIF © ( 2007-01-29 15:56 ) [104]
> var
> f: file of byte;
> begin
> AssignFile(f, «c:\1.bin»); //название файла
> Rewrite(f); //перезапишем файл
> Write(f, 1); //запишем три байта
> Write(f, 2);
> Write(f, 3);
> CloseFile(f);
> end;
хоть я это и знал, но всё равно спасибо. Понял, в чём суть формата файла, суть записи байтов. Всё. УРА!
Надеюсь, больше писать не буду. В ЭТОЙ ветке.
PS: томографию я сделал. Всё ок! Злопыхатели, злопыхайте! А я здоров, как две тысячи семь коров! кстати, только что писал олимпиаду по математике «третье тысячелети». не сказать, что написал отлично, но неплохо. Через недельку-другую будут известны результаты.
всё, пошел ломать винду :-))))
← →
Сергей М. © ( 2007-01-29 16:16 ) [105]
> только что писал олимпиаду
> Через недельку-другую будут известны результаты
Гомер нервно курит в сторонке)
← →
TIF © ( 2007-01-29 16:23 ) [106]
Удалено модератором
Примечание: Флудить завязываем
← →
Сергей М. © ( 2007-01-29 16:25 ) [107]
> TIF © (29.01.07 16:23) [106]
И все же уточни результаты томографии.
← →
alien1769 © ( 2007-01-29 17:32 ) [108]
Автору:
бесплатно даю редактор файла шрифтов.
Если применить могзи.ехе то можно сделать собственный формат.
Удачи. Только осторожно а то мозги.ехе могут выполнить не допустимую ошибку и будут закрыты.
Привожу текст програмки на паскале в следующем посту.
← →
alien1769 © ( 2007-01-29 17:34 ) [109]
// Editor for vector fonts type «CHR» Borland International
uses
Crt,
Graph,
F_GrText,
F_Mouse;
type
pathstr= string[79];
TChar4 = array [1..4] of Char;
Структура заголовка шрифта
TFontHead = record case Byte of
0: (FontFileID: TChar4);
1: (BorlandID : array [1..128] of Byte) end;
Блок параметров шрифта
TFontPara = record case Byte of
0: (ParPrefix : Char; Символ «+»
CharsCount : Word; Число символов в шрифте
Reserv1, Не используется
FirstChar : Byte; Код первого символа
DataOffset : Word; Смещение до векторных
команд первого символа
FillFlag, Флаг заливки
UpperMargin, Высота символов
Reserv2 : Byte; Не используется
LowerMargin: ShortInt; Нижняя кромка
Reserv3 : array[1..5] of Byte Не используется );
1: (H2 : array [1..16] of Byte) end;
TOffst = array [0..255] of Word; Смещения
TWidth = array [0..255] of Byte; Ширины
TChars = array [0..255] of Pointer; Данные
TLengD = array [0..255] of Word; Длина
AW = array [1..434] of Word;
Векторы рабочего поля
TCooE = record x1, y1, x2, y2 : Integer
end;
TMouseMask = array [0..1, 0..15] of Word;
var
FontHead : TFontHead; Заголовок файла
FontPara : TFontPara; Параметры шрифта
NVecE, Количество векторов в WE
FileSize, Длина загружаемой части файла
HeaderSize : Word; Смещение блока параметров
FName : Pathstr; Имя файла
F : file; CHR-файл
Widths : TWidth; Таблица ширин
ws : Array[0..7,0..31] of byte absolute widths;
LengD : TLengD; Длина данных в байтах
ls : Array[0..7,0..31] of word absolute lengd;
Chars : TChars; Указатели на данные
cs : Array[0..7,0..31] of pointer absolute chars;
Offsets : TOffst; Таблица смещений
ds : Array[0..7,0..31] of word absolute offsets;
MaxW, Максимальная ширина символа
MaxH, Полная высота символа
AFileSize : Byte; Положение FileSize
xt, yt, Левый верхний угол таблицы символов
dxt, Ширина клетки таблицы символов
dyt, Высота клетки
xr, yr, Координаты окна повтора
xe, ye, Левый верхний угол WE
xe2, ye2, Правый нижний угол WE
yb, Ордината базовой линии
WidthX, Правая граница символа
dxe, Ширина клетки WE
dye, Высота клетки WE
dxm, dym : Integer; Границы мыши в рабочем поле
VecE : array [1..250] of TCooE; Векторы в WE
WR : Pointer; Образ пустого окна повтора
MouseF : Boolean; Флаг формы указателя мыши
CurM, Стандартная маска указателя
CurE : TMouseMask; Маска в рабочем поле
Страницы: 1 2 3 вся ветка
