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

Вниз

Создание своего формата файла   Найти похожие ветки 

 
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]
> Ну вы и потрепались классно сегодня.

Мы ещё и в понедрюльник продолжим :-P Только веточку стоит в правильнуэ конференцию перенести ;-)


 
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 вся ветка

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

Наверх




Память: 0.68 MB
Время: 0.075 c
15-1170073128
Nic (from SAF)
2007-01-29 15:18
2007.02.18
Что бы почиатать о теории


15-1169883327
Piroxyline
2007-01-27 10:35
2007.02.18
На каком языке?


2-1170313141
Creative
2007-02-01 09:59
2007.02.18
Current Update


3-1164605686
Kvinta
2006-11-27 08:34
2007.02.18
DBGrid. Запомнить позицию.


1-1167294840
wezzz
2006-12-28 11:34
2007.02.18
Как удалить все содержимое текстового файла?





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