Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 12.11.2011
Сообщений: 28

Это загадочное расширение файла

12.11.2011, 15:03. Показов 1370. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте народ! Объясните хотя бы вы,о Великие Гуру или люди знающие,что из себя представляет расширение файла(не определение,это я знаю)?????? Где и как создается его структура ???? При создании проекта Документ/вид я указываю расширение,ну допустим DWG,но мне не совсем понятно как эти фигуры ,отображенные после рисования в законченной программе, имеют способность сохранятся в файле???? Ведь одно дело,допустим,нарисовать круг с помощью GDI функции на этапе программирования и совсем другое-на этапе законченной программы с помощью соответствующих клавиш в окне программы . Нууу как ,как????. Я понимаю,что каждое расширение имеет свою структуру,но как эту структуру создать и,самое главное, где???
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.11.2011, 15:03
Ответы с готовыми решениями:

Как добавить библиотеку Xtst (это X11 расширение) в cmakelists.txt ?
Библиотека Xtst установлена. OS ubuntu. При подключении через pro файл программа компилируется: Как добавить библиотеку...

Напишите процедуру, которая заменяет расширение файла на заданное новое расширение
Помогите пж очень надо,не охото 2-у по информатике прошу ПОМОГИТЕ.... Напишите процедуру, которая заменяет расширение файла на...

Напишите функцию,которая заменяет расширение файла на заданное новое расширение
Напишите функцию,которая заменяет расширение файла на заданное новое расширение

8
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для magirus
28049 / 15785 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
12.11.2011, 15:27

Не по теме:

ты это, на легкие наркотики переходи, ладно?


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

Добавлено через 1 минуту
соответственно просто переименовав 1.txt в 1.dwg мы ничего не добьемся... кроме сообщения от соответствующей программы - файл возможно поврежден или имеет не верный формат.
1
1 / 1 / 0
Регистрация: 12.11.2011
Сообщений: 28
12.11.2011, 15:53  [ТС]
DWG - про него и расскажу. (ибо частенько с ними работаю)
О,теплее стало.
на самом деле формат DWG - это база данных...
Оу,че-то новенькое .
в ней есть описание каждого элемента и его свойств.
(координаты, тип, цвет, размер, и туева еще хуча...)
Стоп,тут поподробнее. То есть.по сути дела эта самая базы данных-всего лишь файл с расширением DWG.Конечно.я не претендую на роль взломщика DWG,но мне интересно как эти координаты добавляются в этот файл на самом примитивном уровне? Ну допустим-взял чувак мышь и провел некий эллипс,добавил заливку,добавил цвет линии...но как эти данные поступают в эту базу? Далее чувак жмет пункт <сохранить> и мы попадаем в функцию обработки клавиши меню <сохранить>оу,вот самое интересное место,хм-и что ж тут происходит? Все данные с экрана попадают в некий модуль генерации шаблона базы данных(файла DWG)? Что же эт за модудь такой? какова его особенность? Правильно ли я понимаю,что все типичные файлы представляют подобные базы данных с индивидуальной спецификой?
0
4 / 4 / 0
Регистрация: 21.02.2010
Сообщений: 11
14.11.2011, 09:46
Для начала почитайте Что такое расширение файла
Грубо говоря, каждое расширение показывает на определенный формат файла. Чтобы программа правильно открывала этот файл с данным расширением, надо правильно создавать файл, т.е. в нужном формате. Мне кажется, что наглядный пример - это файл с расширением html. По сути, это текстовый файл, в котором написаны текст с тегами на языке разметки (html). Если откроем блокнотом, то увидим сам код, а если откроем FireFox'ом или Internet Explorer'м, то увидим страничку, т.е. как браузеры интерпретируют код (понимаю формат).
1
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для magirus
28049 / 15785 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
14.11.2011, 09:47
хороший пример...
0
 Аватар для Melzas
38 / 38 / 6
Регистрация: 20.07.2011
Сообщений: 88
14.11.2011, 15:46
Цитата Сообщение от PeLeg Посмотреть сообщение
При создании проекта Документ/вид я указываю расширение,ну допустим DWG
Документ/вид - это вы о MFC? В любом случае, поясню на примере MFC. Когда при создании проекта вы указываете расширение, то эта информация используется следующим образом: данные о расширении заносятся в реестр (HKEY_CLASSES_ROOT) и там же указывается название программы, которая по умолчанию обрабатывает данное расширение. Далее, в самом проекте вы сами определяете формат записи и чтения данных из файла с этим расширением. В MFC это, как правило, выполняется в методе Serialize класса документа. Стандартный код этого метода такой:
C++
1
2
3
4
5
6
7
8
void CYourDocument::Serialize( CArchive& ar )
 {
 CObject::Serialize( ar );  // вызов метода базового класса
     if( ar.IsStoring() )      // если архив в режиме хранения
     ar << m_Data;          // то записываем туда какие-нибудь данные класса
     else                        // иначе (архив в режиме загрузки)
     ar >> m_Data;          // читаем данные из архива
 }
Вы сами определяете, какие данные и в каком порядке записывать в архив. Например: вы создали для вашей программы расширение *.my . В файлах с таким расширением вы хотите хранить, например, строку текста и 2 числа. Ваша функция Serialize будет выглядеть следующим образом:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void CYourDocument::Serialize( CArchive& ar )
 {
 CObject::Serialize( ar );  
     if( ar.IsStoring() )   // в архив
     {   
     ar << m_Text;
     ar << m_nWidth;
     ar << m_nHeight;          
     }
     else                      // из архива 
     {   
     ar >> m_Text;
     ar >> m_nWidth;
     ar >> m_nHeight;          
     }
 }
...
// где-то в классе объявлено:
 CString m_Text;
 int nWidth;
 int nHeight;
Метод Serialize будет вызываться при выборе пунктов меню открытия и сохранения файла, обеспечивая тем самым чтение и запись файлов типа *.my . Соответственно, с этим типом файлов будет работать только ваша программа, так как только она знает формат хранения данных в файле. Также работают и с уже существующими форматами. Структура файла в формате .bmp, например, известна и четко расписана (http://ru.wikipedia.org/wiki/BMP). Зная её, вы можете реализовать в своей программе чтение/запись bmp файлов. Благодаря этому формат .bmp понимают и умеют читать разные программы.
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
14.11.2011, 17:15
Цитата Сообщение от PeLeg Посмотреть сообщение
или люди знающие,что из себя представляет расширение файла(
представь себе ничего
это просто набор букв
есть конечно стандатизированые exe com bat
есть обшеупотребительные doc(документ не всегда Word)
txt текст
и многие другие
и файл зависит не от расширения а от внутренней стуктуры
и если ты обзовешь экзешник тхт то при нажатии на нем откроется блокнот и в нем твой екзешник
(потому что прописано в реестре открывать тхт при помоши блокнота)
а если открыть при помоши экплорер то произойдет запуск
ты можешь прописать в реестре тхт исполняемый файл и переименовать все экзешники в тхт и они будут исполнятся но текстовые файлы имеюшее тхт расширение напишут что файл не может исполнится

надеюсь понятно объяснил что расширение и структура файла две разные вещи
и если ты свой файл обзовешь exe то это не значит что ты сохранишь исполняемый файл
0
15.11.2011, 16:02

Не по теме:

В далёком детстве, я переименовывал mp3 в doc, открывал его вордом и обижался, что мне какая-то фигня показывается...

0
1 / 1 / 0
Регистрация: 12.11.2011
Сообщений: 28
18.11.2011, 16:43  [ТС]
Есть кто-нибудь.Проинформируйте меня еще.Как создать структуру файла на API?
Melzas,а как на API выглядит такая структура? Alex975 эт я знаю.мне нужно знать,как структуру создать.Открой секрет как на API создатьну.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.11.2011, 16:43
Помогаю со студенческими работами здесь

Выделить из полного имени файла только расширение файла без точки
Дано полное имя файла т.е путь к файлу имя и расширение. Выделить из строки только расширение файла без точки.

Как убрать расширение файла, и отображать толко имя файла?
Подскажите как убрать расширение файла? грубо говоря имеем: dim a as string a = fail.name &quot;a&quot; отображается как...

Как сменить расширение большего по размеру файла, если в папке находятся более одного файла?
Привет. Есть такой код for /r &quot;D:\Test&quot; %%i in (*.tmp?) do ren &quot;%%i&quot; *.txt меняет расширение файлов в заданной папке с .tmp на .txt,...

Перенос файлов в папки, имена которых содержат часть названия файла или расширение файла
Здравствуйте! Прочитал все похожие темы про ВАТ, но все в кучу сложить не смог, так как очень слабо понимаю команды. Вопрос такой: каждые...

Дана строка, содержащая полное имя файла. Выделить из этой строки имя и расширение файла
дана строка, содержащая полное имя файла, т.е. имя диска, список каналов(путь), собственно имя и расширение.выделить 1) из этой строки имя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru