Глава 7 редактирование исходных файлов


Содержание

Интерактивное графическое программное обеспечение PC-DMIS (Глава 7: Редактирование изображения CAD) , страница 9

Для создания различных уровней используются три нижеследующих меню:

Преобразование CAD в 3D формат

Для применения данной функции программы необходимо выполнить некоторые предварительные действия для ознакомления с некоторыми функциями, используемые в данном разделе.

1. Создайте программу обработки деталей (См. «Creating New Part Programs» («Создание новой программы детали») в главе «Using Basic File Options» («Использование основных файловых опций «) section).

2. Импортируйте модель CAD в программу обработки деталей (См. «Importing CAD Data» («Импортирование данных CAD») в главе «Using Advanced File Options» («Использование дополнительных файловых опций») section).

3. Просмотрите систему координат модели.

4. Создайте выравнивание (См. главу «Creating and Using Alignments» («Создание и использование выравниваний»)section).

5. Выберите опцию меню Make 3D (Преобразование в 3D формат). Появится окно Create Levels (Создание уровней) с заголовком окна «OLD FILE» (Старый файл). Окно будет отображать импортированное изображение CAD как каркасную модель.

6. Удерживая левую кнопку мыши, очертите рамку вокруг всей модели. PC-DMIS высветит выбранную модель CAD.

7. Выберите Level (Уровень) | Create (Создать). PC-DMIS сгенерирует модель.

8. Выберите Level (Уровень) | Position (Положение). Появится диалоговое окно PositionLevel (Уровень положения) с номером 1 на заголовке экрана. Это показывает, как будет располагаться модель для первого уровня.

9. В поле Orientation (Направление) выберите вид, с которого будет переориентирована модель. После этого станут доступными оставшиеся опции диалогового окна.

10. По желанию выберите другие опции:

· Для вращения модели в выбранном направлении, нажмите Position.

· Для смещения направления модели на определенную величину в горизонтальном или вертикальном направлении, введите интервал смещения в окно Offset (Horizontal) (Смещение (Горизонтальное)) или Offset (Vertical) (Смещение (Вертикальное)).

· Для перемещения направления к определенному элементу, нажмите Element 1 (Элемент 1) и затем нажмите на выбранный элемент CAD в окне CreateLevels (Создание уровней). PC-DMIS сдвинет направление к определенному элементу. Если вы хотите использовать второй элемент, проделайте тоже самое с Element 2 (Элемент 2).

· Для смещения направления от определенного элемента, выберите опцию Element в поле OffsetDefiningElement (Смещение определенного элемента) и затем введите интервал смещения в окно Offset (Смещение).

11. По завершении изменений, нажмите Apply (Применить), и затем OK. Диалоговое окно PositionLevels закроется и PC-DMIS восстановит окно CreateLevels с вашими изменениями.

12. С помощью опций меню Viewпросмотрите сделанные изменения. Выбор View (Вид) | Change (изменения) позволяет вам получить доступ к диалоговому окну ViewSetup (Настройка вида) для установки вида для окна CreateLevels (Создание уровней).

13. Для сохранения нового направления, выберите File (Файл) | SaveandExit (Сохранить и выйти). Если вы не хотите сохранять новое направление, выберите CancelandExit (Отменить и выйти).

Create Levels – File menu

Меню File (Файл) в CreateLevels (Создание уровней) позволяет получить доступ к исходному файлу под названием «OLD FILE» (СТАРЫЙ ФАЙЛ) и к вновь созданному файлу «NEW FILE» (НОВЫЙ ФАЙЛ). Данная опция также позволяет вам сохранять любые изменения перед выходом из опции.

· Файл «OLD FILE» всегда содержит неизмененные данные из исходного файла.

· Файл «NEW FILE» позволяет вам войти в диалоговое окно Position (Положение), помещающий уровень в 3-х мерное пространство.

  • АлтГТУ 419
  • АлтГУ 113
  • АмПГУ 296
  • АГТУ 266
  • БИТТУ 794
  • БГТУ «Военмех» 1191
  • БГМУ 172
  • БГТУ 602
  • БГУ 153
  • БГУИР 391
  • БелГУТ 4908
  • БГЭУ 962
  • БНТУ 1070
  • БТЭУ ПК 689
  • БрГУ 179
  • ВНТУ 119
  • ВГУЭС 426
  • ВлГУ 645
  • ВМедА 611
  • ВолгГТУ 235
  • ВНУ им. Даля 166
  • ВЗФЭИ 245
  • ВятГСХА 101
  • ВятГГУ 139
  • ВятГУ 559
  • ГГДСК 171
  • ГомГМК 501
  • ГГМУ 1967
  • ГГТУ им. Сухого 4467
  • ГГУ им. Скорины 1590
  • ГМА им. Макарова 300
  • ДГПУ 159
  • ДальГАУ 279
  • ДВГГУ 134
  • ДВГМУ 409
  • ДВГТУ 936
  • ДВГУПС 305
  • ДВФУ 949
  • ДонГТУ 497
  • ДИТМ МНТУ 109
  • ИвГМА 488
  • ИГХТУ 130
  • ИжГТУ 143
  • КемГППК 171
  • КемГУ 507
  • КГМТУ 269
  • КировАТ 147

  • КГКСЭП 407
  • КГТА им. Дегтярева 174
  • КнАГТУ 2909
  • КрасГАУ 370
  • КрасГМУ 630
  • КГПУ им. Астафьева 133
  • КГТУ (СФУ) 567
  • КГТЭИ (СФУ) 112
  • КПК №2 177
  • КубГТУ 139
  • КубГУ 107
  • КузГПА 182
  • КузГТУ 789
  • МГТУ им. Носова 367
  • МГЭУ им. Сахарова 232
  • МГЭК 249
  • МГПУ 165
  • МАИ 144
  • МАДИ 151
  • МГИУ 1179
  • МГОУ 121
  • МГСУ 330
  • МГУ 273
  • МГУКИ 101
  • МГУПИ 225
  • МГУПС (МИИТ) 636
  • МГУТУ 122
  • МТУСИ 179
  • ХАИ 656
  • ТПУ 454
  • НИУ МЭИ 641
  • НМСУ «Горный» 1701
  • ХПИ 1534
  • НТУУ «КПИ» 212
  • НУК им. Макарова 542
  • НВ 777
  • НГАВТ 362
  • НГАУ 411
  • НГАСУ 817
  • НГМУ 665
  • НГПУ 214
  • НГТУ 4610
  • НГУ 1992
  • НГУЭУ 499
  • НИИ 201
  • ОмГТУ 301
  • ОмГУПС 230
  • СПбПК №4 115
  • ПГУПС 2489
  • ПГПУ им. Короленко 296
  • ПНТУ им. Кондратюка 119
  • РАНХиГС 186
  • РОАТ МИИТ 608
  • РТА 243
  • РГГМУ 118
  • РГПУ им. Герцена 124
  • РГППУ 142
  • РГСУ 162
  • «МАТИ» — РГТУ 121
  • РГУНиГ 260
  • РЭУ им. Плеханова 122
  • РГАТУ им. Соловьёва 219
  • РязГМУ 125
  • РГРТУ 666
  • СамГТУ 130
  • СПбГАСУ 318
  • ИНЖЭКОН 328
  • СПбГИПСР 136
  • СПбГЛТУ им. Кирова 227
  • СПбГМТУ 143
  • СПбГПМУ 147
  • СПбГПУ 1598

  • СПбГТИ (ТУ) 292
  • СПбГТУРП 235
  • СПбГУ 582
  • ГУАП 524
  • СПбГУНиПТ 291
  • СПбГУПТД 438
  • СПбГУСЭ 226
  • СПбГУТ 193
  • СПГУТД 151
  • СПбГУЭФ 145
  • СПбГЭТУ «ЛЭТИ» 380
  • ПИМаш 247
  • НИУ ИТМО 531
  • СГТУ им. Гагарина 114
  • СахГУ 278
  • СЗТУ 484
  • СибАГС 249
  • СибГАУ 462
  • СибГИУ 1655
  • СибГТУ 946
  • СГУПС 1513
  • СибГУТИ 2083
  • СибУПК 377
  • СФУ 2423
  • СНАУ 567
  • СумГУ 768
  • ТРТУ 149
  • ТОГУ 551
  • ТГЭУ 325
  • ТГУ (Томск) 276
  • ТГПУ 181
  • ТулГУ 553
  • УкрГАЖТ 234
  • УлГТУ 536
  • УИПКПРО 123
  • УрГПУ 195
  • УГТУ-УПИ 758
  • УГНТУ 570
  • УГТУ 134
  • ХГАЭП 138
  • ХГАФК 110
  • ХНАГХ 407
  • ХНУВД 512
  • ХНУ им. Каразина 305
  • ХНУРЭ 324
  • ХНЭУ 495
  • ЦПУ 157
  • ЧитГУ 220
  • ЮУрГУ 306

Полный список ВУЗов

Чтобы распечатать файл, скачайте его (в формате Word).

Редактирование файлов

Для редактирования файла его необходимо выделить и нажать клавишу или кнопку F4. Откроется окно стандартной программы Блокнот (рис. 7.15). Файл, который был выделен, автоматически загружается в это окно.

Рис. 7.15 — Редактирование файла при помощи программы Блокнот

Здесь, в отличие от программы просмотра, курсор активен, а это значит, что доступны элементарные приемы редактирования: можно набирать с клавиатуры текст, вносить в него изменения и удалять. Кроме того, пункт меню Правка дает дополнительные возможности редактирования. Прежде чем ими воспользоваться текст необходимо выделить. Это можно сделать так:

  • удерживая левую кнопку мыши, провести указателем по выделяемому фрагменту текста;
  • использовать клавиши перемещения курсора , , , удерживая нажатой клавишу SHIFT;
  • Выполнить команду Правка Выделить все для выделения всего текста.

Рассмотрим пункты меню Правка и их использование при редактировании текста:

· Отменить— отменить последнее действие.

· Вырезать — поместить выделенный фрагмент в буфер обмена, при этом удалив его из текста;

· Копировать — скопировать выделенный фрагмент в буфер обмена;

· Вставить — вставить содержимое буфера обмена, начиная с места положения курсора в тексте;

· Удалить — удалить выделенный фрагмент из текста;

· Дата/Время — вставка в текст текущей даты и времени;

· Перенос по словам — если этот режим установлен, то текст автоматически переносится по словам, иначе идет ввод строки до тех пор, пока пользователь не нажмет клавишу ENTER для перехода на новую строчку.

· Шрифт — появляется окно Шрифт (рис. 7.16), в котором можно изменить шрифт, начертание и размер вводимых символов, выбирая необходимые параметры из списков.

Рис. 7.16 — Изменение параметров шрифта в текстовом редакторе Блокнот

Рассмотрим пункты меню Файл и их использование при работе с файлами.

Создать — создать новый файл, открывается чистый лист для ввода текста.

Открыть — открыть уже созданный файл, выбрав его из списка, перемещаясь по каталогам или указав его имя в поле Имя файла (рис. 7.17).

Рис. 7.17 — Окно открытия документа в редакторе Блокнот


Сохранить — сохранить информацию, при первом сохранении появляется запрос об имени файла (рис. 7.18), в котором будет храниться информация, при последующих сохранениях вносятся изменения в уже существующий файл. Но даже если пользователь забудет воспользоваться этой командой, то при попытке закрыть окно редактора появится предупреждающее сообщение (рис. 7.19). Кнопка Да означает сохранить и выйти из программы, кнопка Нет — не сохранять (оставить без изменений) и выйти, Отмена— остаться в режиме редактирования.

Рис. 7.18 — Окно сохранения документа в редакторе Блокнот

Рис. 7.19 — Сохранение файла в программе Блокнот

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Да какие ж вы математики, если запаролиться нормально не можете. 8427 — | 7330 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

7.3.3. Редактирование вхождений блоков и внешних ссылок

Изучаемая версия системы AutoCAD предлагает еще один инструмент работы с блоками и внешними ссылками — редактирование внешних ссылок и описаний блоков через их вхождения в текущий рисунок. Такая операция затрагивает сложные связи внутри рисунка (для блоков) и связи с другими рисунками (для внешних ссылок), поэтому объем подобного редактирования не должен быть велик. В случае большого объема изменений лучше действовать обычными средствами: переопределить блок, который требует изменений, с помощью команды BLOCK (БЛОК), а вместо редактирования вхождения внешней ссылки открыть файл-источник ссылки, изменить его, а затем обновить ссылки на этот файл в основном рисунке. Операция редактирования применима и к массивам блоков, созданным командой MINSERT (МВСТАВИТЬ), но выполняется над первым объектом из массива, а затем автоматически распространяется на остальные.
Для редактирования вхождения блока или ссылки используется команда REFEDIT (ССЫЛРЕД), которой соответствуют кнопка , расположенная первой в панели инструментов Refedit (Редактирование вхождений) (рис. 7.32), а также пункт падающего меню Modify | Xref and Block Editing | Edit Reference In-Plасе (Редакт | Блоки и внешние ссылки | Редактирование вхождений).

Рис. 7.32. Панель инструментов Refedit

Опробуем редактирование вхождения на примере файла, изображенного на рис. 7.31, где блок Computer был вставлен четыре раза, причем у двух вхождений выполнена подрезка.
Щелкните по кнопке , расположенной в панели инструментов Refedit (Редактирование вхождений), вызывая тем самым на выполнение команду REFEDIT (ССЫЛРЕД). Появится запрос:
Select reference: (Выберите вхождение:)
Выберите верхнее вхождение блока Computer (выбранные вами для редактирования вхождения заносятся в специальный рабочий набор). После этого откроется диалоговое окно Reference Edit (Редактирование вхождений), в котором в левой части вкладки Identify Reference (Выбрать вхождение) высвечивается дерево вхождений для выбранного объекта (в нашем случае это блок Computer ) (рис. 7.33).

Рис. 7.33. Диалоговое окно Reference Edit , вкладка Identify Reference

В правой части окна в области просмотра Preview (Образец) виден растровый образец отмеченного блока. В нижней части расположена группа переключателей Path (Путь):

  • Automatically select all nested objects (Автоматически показывать все вложенные объекты) — показывает и внутренние вхождения в отмеченный блок или внешнюю ссылку, с возможностью их выбора для редактирования;
  • Prompt to select nested objects (Запрашивать выбор вложенных объектов) — внутренние вхождения показывает по запросу.

На вкладке Settings (Настройки) диалогового окна Reference Edit (Редактирование вхождений) (рис. 7.34) расположены три флажка, задающие дополнительные настройки процесса редактирования вхождений:

  • Create unique layer, style, and block names (Создавать уникальные имена слоев, стилей и блоков);
  • Display attribute definitions for editing (Вывести описания атрибутов для редактирования);
  • Lock objects not in working set (Закрыть объекты, не входящие в рабочий набор).

Рис. 7.34. Диалоговое окно Reference Edit , вкладка Settings

Первый флажок позволяет включать префиксы в имена слоев и символов (см. ранее операцию внедрения внешних ссылок, где появляются префиксы). Второй флажок позволит отредактировать определения атрибутов выбранного блока. Третий флажок при включении блокирует отображение объектов, не попавших в редактируемый набор, чтобы их нельзя было случайно изменить.
После нажатия в диалоговом окне Reference Edit (Редактирование вхождений) кнопки ОК система сообщает:
Use REfCLOSE or the Refedit toolbar to end reference editing session.
(Для завершения сеанса редактирования вхождения воспользуйтесь командой ССЫЛЗАКР или соответствующей панелью инструментов.)
Теперь в панели Refedit (Редактирование вхождений) в списке вхождений должно появиться имя Computer (как на рис. 7.32). Этот список показывает вам имена тех вхождений блоков и внешних ссылок, которые вы внесли в рабочий набор для дальнейшего редактирования. Установленное в этом списке текущее значение (его вы могли бы поменять, если бы выбрали несколько вхождений) показывает имя вхождения, которое вы сейчас начнете редактировать.
Следующий шаг — с помощью кнопки необходимо выбрать объекты вхождения блока, которые должны быть отредактированы. Система выдаст следующий запрос:
Transfer objects between the RefEdit working set and host drawing. Enter an option [Add/Remove] : _add
(Перемещение объектов из основного рисунка в рабочий набор для ССЫЛРЕД и обратно. Задайте опцию [Добавить/Исключить] : _add)
Отметьте оба входящих в блок Computer прямоугольника (по очереди или секущей рамкой). Далее система AutoCAD сообщит:
2 Added to working set: (Добавлено к рабочему набору элементов: 2)
С помощью кнопки вы можете добавить к рабочему набору другие дополнительные объекты, а с помощью кнопки — убрать из набора лишние.
Теперь воспользуйтесь командой PROPERTIES (OKHOCB) и сделайте во внешнем прямоугольнике изменение цвета и ширины (например, на 2 мм), а во внутреннем прямоугольнике измените тип линии (например, на тип Dashed (Штриховая)). После этого левое вхождение блока Computer примет новую форму, а остальные вхождения не будут видны (рис. 7.35). Для того чтобы занести сделанные изменения в описание блока Computer , щелкните по кнопке панели Refedit (Редактирование вхождений). Данная кнопка вызывает команду REFCLOSE (ССЫЛЗАКР) в режиме сохранения изменений.
Прежде чем внести результаты редактирования, система AutoCAD выдает предупреждение (рис. 7.36).
При согласии с внесением изменений нажмите кнопку ОК . После этого результат редактирования отразится на всех вхождениях блока Computer (рис. 7.37), а панель Refedit (Редактирование вхождений) исчезнет.
Возможно редактирование и вложенных вхождений (например, когда внешняя ссылка внутри себя содержит другую внешнюю ссылку).

Рис. 7.35. Редактирование вхождения блока Computer

Рис. 7.36. Предупреждающее сообщение команды REFCLOSE

Кнопка панели Refedit (Редактирование вхождений) предназначена для отказа от внесения изменений во все вхождения блока или внешней ссылки.

Рис. 7.37. Результаты редактирования описания блока через вхождение

Soft4Boost Программы — это просто!

Поддержка

В первую очередь

Форма связи

Популярные вопросы

Руководства

Онлайн-справка

Как разделить DVD с домашним видео на главы?

Программа Soft4Boost Video Converter позволяет записывать домашнее видео на DVD-диск для просмотра на домашнем DVD-плеере. При создании DVD может потребоваться разделить его на главы для удобства. Разделение на главы позволяет легко найти нужный видео файл или его часть. Просто выберите исходный файл или несколько файлов и расставьте главы для упрощения навигации по диску.

Нажмите сюда, чтобы загрузить программу. После того, как загрузка завершится, запустите файл S4BVideoConverter.exe и следуйте инструкциям Мастера установки.

Чтобы выбрать видео, которое необходимо сконвертировать, нажмите кнопку Обзор. рядом с полем Исходный файл. В открывшемся окне Проводника Windows найдите нужный видео файл .

Важно: если вам требуется сконвертировать DVD-диск, необходимо указать следующий путь к исходному файлу: X:\Video_TS\Video_TS.IFO. «X» означает DVD-ROM или папку на жестком диске, где сохранен DVD. Пожалуйста, обратитесь к этому разделу онлайн-справки для получения дополнительной информации о том, как конвертировать ваши DVD с домашним видео в другие видео форматы.

Нажмите кнопку В DVD на вкладке Форматы Главной панели инструментов. В списке типов дисков (поле Профиль) выберите один из предустановленных профилей.

Файлы, которые надо записать, можно изменить. Нажимая кнопки (+/-), можно добавлять или удалять файлы из списка. Используя Стрелки, можно изменять последовательность файлов.

Нажмите кнопку Обзор. рядом с полем Выходной файл и выберите размещение на жестком диске для выходного видео файла.

Важно: файл необходимо сохранять на жесткий диск компьютера.

Теперь нажмите кнопку Правка для переключения в режим редактирования.

В открывшемся окне Редактировать исходный файл нажмите центральную кнопку Главы. Если вы записываете на DVD несколько файлов, нажмите кнопку Автоустановка глав на Панели инструментов временной шкалы и выберите одну из следующих опций:

  • В начале каждого фрагмента — если требуется, чтобы главы располагались в начале каждого видео файла;
  • По временному интервалу — если требуется добить главы через заданный промежуток времени;
  • Как в исходном файле — если надо расставить главы так же, как в исходном файле.

Щелкните левой кнопкой мыши на Временной шкале в том месте, где должна начинаться глава. Затем нажмите клавишу F8 на клавиатуре, или нажмите на кнопку Добавить, или щелкните правой кнопкой мыши и выберите в контекстном меню соответствующий пункт для добавления новой главы. Перемещайтесь по временной шкале указанным образом и добавляйте столько глав, сколько вам нужно. Для более точной расстановки глав используйте ползунок Масштаб, чтобы увеличить/уменьшить масштаб временной шкалы.

После того как все главы будут добавлены, нажмите центральную кнопку Меню, чтобы приступить к редактированию DVD-меню.

Выберите один из Стилей меню диска. Для этого дважды щелкните по нему или выберите в контекстном меню пункт Применить стиль меню. В Области предварительного просмотра переключайтесь между Главной страницей и страницей с Главами. Чтобы добавить собственные изображения для фона, щелкните левой кнопкой мыши по одной из Рабочих областей (если они доступны для выбранного стиля меню) в нижней части окна Редактировать исходный файл. В открывшемся окне выберите нужное изображение или видеофайл и нажмите кнопку Открыть.

В разделе Настройки окна Редактировать исходный файл можно изменить Название меню диска, добавить свою Фоновую музыку или задать Число глав на странице, используя соответствующие элементы управления.

Когда результат вас будет устраивать, нажмите кнопку в нижней части окна, чтобы вернуться в режим конвертации. Теперь файлы готовы к конвертации и записи на DVD-диск.

Восстанавливаем ассоциацию файлов в Windows 7, 8, 10

Здравствуйте дорогие читатели, сегодня меня затронула тема как восстановить ассоциацию файлов, а именно некорректный запуск программ и файлов.

Как-то раз меня попросила знакомая с этим разобраться, ее дочка где-то полазила и .exe файлы можно было запустить только с окна открыть с помощью. С этой проблемой я разобрался изменением параметров реестра, все исправилось. Все остались довольны и как-то эта тема забылась, а сегодня опять столкнулся с этой проблемой на другом компьютере и решил написать статью с целью помочь людям с этим непорядком!

Рассмотрим 5 вариантов восстановления ассоциации, ведь это может произойти с каждым, даже если вы опытный пользователь, мы ни от чего не застрахованы!

Оказаться в такой ситуации может каждый т.к. сейчас много различных вирусов и шпионского ПО. И произойти это может если даже у вас самое последнее обновление антивируса. Если так случилось в первую очередь проверяйте компьютер от вирусов, каким-нибудь надежным антивирусом и очищайте систему от мусора. Может и так все решится, но процент очень маленький, что так вы сможете восстановить ассоциацию файлов.

Из-за чего же это происходит?

В первую очередь это происходит из-за вирусов, вы могли скачать шпионское по, ошибка системы, или же сами случайно могли сбить ассоциацию файлов. Какой бы не был случай, это надо по-любому исправлять. И сейчас мы разберем несколько, а вы выберете понравившейся способ, думаю результат вам понравится!

Как восстановить ассоциацию файлов в 5 способов?

Первый способ (для windows xp) — самый простой восстановить ассоциацию файлов, без вмешательств в реестр, но он не всегда помогает, но все же для начало лучше попробовать его.

Заходим мой компьютер в верхней панели выбираем сервис > свойство папки > вкладка типы файлов. Так же можно зайти через панель управления пункт свойство папки.

Выбираем необходимое разрешение, в которой у вас сбилась ассоциация и нажимаем восстановить.

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

Первый файл восстановить ассоциацию ко всем файлам.

Во втором можно выбрать отдельно какую ассоциацию надо восстановить.

Третий способ предлагает фирма Касперского, которая разработанную программу CleanAutoRun.

Описание можно посмотреть на официальном сайте . А так же утилита под названием FileAssociationFixer.

Выбираете в категориях нужное расширение и восстанавливаете!

Скачать бесплатно FileAssociationFixer:

Четвертый способ восстановить ассоциацию файлов. Необходимо скачать программу AVZ.

После запуска перейдите в пункт Файл и выберите Восстановление системы там поставьте галочку Восстановление параметров запуска файлов (.exe, .com, .pif).

  • Пятый способ заключается в введении команд под Windows’ом. Перезагрузите компьютер, нажмите перед запуском windows F8 и выберите Безопасный режим с поддержкой командной строки. И введите следующие команды.

Все, надеюсь у вас все пройдет успешно. И этот день не заставит вас грустить �� Если есть ещё способы восстановления пишите в комментариях я их всегда рассмотрю.


Программа для управления ассоциациями файлов.

Управлять разрешениями файлов можно и с помощью программ. Две из них сейчас я вам покажу.

Первая бесплатная программа Unassociate File Type.

Она идет только на Windows 7 и Windows Vista.

Простая программа для изменения ассоциаций с файлами.

Вторая программа OpenWith.

Бесплатная программа умеет добавлять и редактировать ассоциации файлов, а так же указать какой программой открывать то или иное расширение файла.

На этом все, надеюсь я помог Вам восстановить ассоциацию файлов. ��

Редактирование текста исходного модуля

Порядок выполнения работы

1. Ознакомиться с методическими указаниями.

2. Ответить на контрольные вопросы.

3. Использовать в качестве задания программу линейного вычислительного процесса по курсу «Программирование и основы алгоритмизации».

4. Загрузить интегрированный пакет Borland С++.

5. Создать файл исходного модуля заданной программы.

6. Выполнить редактирование файла исходного модуля.

7. Закрыть откорректированный файл.

8. Оформить отчет.

9. Защитить работу.

Создание исходного модуля

Исходный модуль – программа пользователя на алгоритмическом языке, введенная в ЭВМ и оформленная в виде файла на диске.

Исходный модуль формируется пользователем вводом текста программы, созданного ранее, в память ЭВМ с помощью любого редактора текста.

Интегрированные среды разработки (IDE), ориентированные на машинную обработку прикладных программ, содержат собственный текстовый редактор. Основное достоинство встроенного редактора – поддержка синтаксиса того языка программирования, на который рассчитана среда (пакет). Поэтому создание исходных модулей собственных программ производится пользователем, как правило, с его помощью.

Методика создания файла исходного модуля:

¨ подготовить текст программы пользователя;

¨ загрузить интегрированную среду Borland C++ 5.02;

¨ открыть окно текстового редактора;

¨ ввести текст программы пользователя;

¨ сформировать его в исходный модуль в виде файла на диске.

Принцип создания пользователем исходного модуля с помощью редактора реализуется схемой:

Подготовка текста программы пользователя рассматривается в курсе «Программирование и основы алгоритмизации».

Загрузка IDE осуществляется по типовой методике (см. методические указания «Машинная обработка программ пользователя в интегрированной среде Borland C++ 5.02»).

Окно текстового редактора для создания нового файла исходного модуля открывается активизацией пунктов меню и подменю (Файл\Новый\Редактор текста)

Результат – открытие окна текстового редактора для ввода создаваемой программы пользователя.

Сформированный автоматически заголовок окна определяет предлагаемую по умолчанию спецификацию создаваемого файла. Для рассматриваемого окна: диск С (локальный системный), каталог BC5 (Borland C ++ версия 5), подкаталог BIN, имя файла NONAME (без имени), версия 00 (нулевая – начальная), расширение cpp (С ++).

Площадь самого окна предназначена для контроля формирования вводимой информации.

Ввод текста программы пользователя производится по правилам аналогичным любым текстовым редакторам (смотри соответствующие методические указания).

Для фрагмента простейшей программы пользователя:

содержимое окна после ввода имеет вид:

Вводимый текст располагается в буфере редактора в оперативной памяти ЭВМ.

Формирование введенной программы в виде файла исходного модуля необходимо для его долговременного хранения. Хранение осуществляется на магнитных носителях. В качестве носителей рекомендуются:

— локальный жесткий диск (D);

Создаваемый файл желательно располагать на сетевом диске U в личной папке пользователя.

Машинная реализация сохранения создаваемого файла исходного модуля на диске осуществляется последовательностью активизаций пунктов меню и подменю (Файл\Сохранить как)

Выполнение этой команды подтверждается появлением диалогового окна «Save File As»для сохранения файла с новым именем, в некоторой папке на диске:

Поле «Папка» позволяет (по типовой методике) выбрать диск и требуемую папку, поле «Имя файла» – указать желаемое имя файла, отличное от NONAME (без имени), а в раскрывающемся поле «Тип файла» выбрать «C++ source (*.cpp, *.c)». Расширение файла .срр можно не указывать, оно присвоится автоматически.

Создание файла с указанной спецификацией завершается нажатием кнопки «Сохранить».

Предлагаемые окном сохранения «Save File As» компоненты спецификации по умолчанию (папка BIN, на диске C рабочей станции в каталоге BC5, имя файла noname00.cpp) могут быть использованы для создания файла с обезличенным именем. Но это не соответствует требованиям хранения файлов в сети по следующим причинам:

¨ работа с этим файлом с другой рабочей станции требует нахождения его в ресурсах сети, что требует навыков работы в сети;

¨ доступ к файлу открыт для любого другого пользователя этой рабочей станции;

¨ периодическая очистка системного каталога приведет к ликвидации этого файла;

¨ обезличенное имя не позволяет определить назначение (принадлежность) файла, что заставляет систему дополнительно напоминать пользователю о переименовании файла при его дальнейшей обработке.

Поэтому пользователю рекомендуется задать желаемый диск, папку, имя файла и его расширение.

Диск и папка задаются в поле «Папка» как строка, определяющая рабочий диск (предпочтительно – U) и личную папку пользователя. Например, для пользователя Иванова первые два параметра:

В поле «Имя файла» указывается уникальное имя, желательно отражающее суть задачи (linie). Расширение файла (срр) задается по умолчанию и предварительно отображается в поле «Тип файла» как

Изменение расширения, если это необходимо, осуществляется активизацией поля «Тип файла» и последующим выбором желаемого.

Активизация кнопки «Сохранить» завершает создание исходного модуля. Окно Save File Asзакрывается, и в каталоге U:\Ивановрегистрируется новый файлlinie.cpp. Полная спецификация файла принимает вид:

Редактор текста IDE предоставляет пользователю и другие альтернативные варианты сохранения файла исходного модуля на диске. Например, с помощью одной из команд:

File/Save all(Файл\Сохранить все)

Команда File/Save сохраняет содержимое одного активного окна редактирования. Она выполняется активизацией пунктов главного меню File/Save либо нажатием кнопки на панели инструментов.

Команда File/Save all сохраняет содержимое всех открытых окон редактора, начиная с активного, в виде отдельных файлов. Используется, если задача реализуется несколькими взаимосвязанными программными модулями (головным и пользовательскими, при условии, что каждый из них создан в отдельном окне). Интегрированный пакет предусматривает одновременную обработку не более 32 окон.

Действие команды File/Save all аналогично последовательности команд File/Save. Выполнение команды приводит к оформлению в виде отдельного файла содержимого активного окна, а затем – всех остальных. Отображение начального варианта окна выполнения команды File/Save all при наличии трех открытых текстовых окон имеет вид:

Указание желаемого имени файла pr1.cpp и активизация кнопки «Сохранить» приводит к оформлению в виде файла pr1.cpp активного окна noname02.cpp и его деактивизации. Автоматически активизируется (подготавливается к сохранению) содержимое окна noname01.cpp. Указание имени файла pr2.cpp и нажатие кнопки «Сохранить» оформляет в виде файла pr2.cpp модуль noname01.cpp и активизирует окно noname00.cpp. Сохранение его содержимого требует изменения спецификации на pr3.cpp и последнего нажатия кнопки «Сохранить». В результате создается третий файл, окно сохранения Save File Asликвидируется, а в каталоге пользователя появляются спецификации трех созданных файлов: pr1.cpp, pr2.cpp, pr3.cpp.

При наличии одного окна с программным модулем команда File/Save all работает аналогично команде File/Save.

Оформление исходного модуля в виде файла может быть выполнено также активизацией пункта Fileглавного меню, а затем пункта Closeв открывшемся подменю. Сокращенный вид команды: File\Close(Файл\Закрыть) (Enter). Выполнение команды ликвидирует текстовое окно.

Внимание! Для предотвращения потери информации (созданного и находящегося в буфере модуля) ликвидация текстового окна предваряется появлением окна-запроса Borland C++ (модуль NONAME00.cpp был изменен. Сохранить изменения перед закрытием?):

Кнопки нижнего уровня предполагают ответы «Да», «Нет», «Отмена». Сохранение содержимого ликвидируемого окна в виде файла выполняется нажатием кнопки «Yes». При этом на экран выдается типовое окно File Save As, позволяя пользователю выполнить сохранение файла по стандартной методике. Активизация кнопки «No» приведет к ликвидации окна с потерей его содержимого. Нажатие кнопки «Cancel» закрывает окно-запрос, возвращая пользователя к работе с текстовым окном.

Сохранение программного модуля в виде файла позволяет в случае необходимости очистить буфер текстового редактора IDE от хранящегося в нем оригинала созданной программы.

Внимание! Попытка ликвидации текстового окна (однократным щелчком кнопки в правом верхнем углу окна редактирования) приводит к автоматическому предотвращению возможной потери информации, находящейся в буфере, появлением окна-запроса «Borland C++». Предлагаемые варианты позволяют пользователю выполнить любой из них (см. выше).

Редактирование текста исходного модуля

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

Редактирование осуществляется средствами того же текстового редактора IDE. Начальная фаза методики определяется содержимым окна текстового редактора (буфера ОП). При этом возможно два варианта:

¨ исходный модуль продолжает оставаться в окне текстового редактора (буфере ОП);

¨ содержимое активизированного окна другое или само окно отсутствует.

В первом случае все готово для редактирования, а во втором – необходимо выполнить загрузку корректируемого исходного модуля по типовой методике, например командой File\Open…\имя файла(Файл\Открыть\имя).

Содержимое текстового окна модифицируется с помощью специальных команд (операций). Операции, по отношению к редактируемому тексту, делятся на:

В первом случае редактируемый фрагмент – символ, а во втором – группа символов (блок).

Посимвольное редактирование выполняется по типовым методикам работы с единичным знаком (ликвидация, ввод, замена, сдвиг).

Блочное редактирование требует предварительного оформления группы символов в активизированный фрагмент (выделения блока по типовой методике). Характерный признак блока – инвертированность площади, которую он занимает.

Средства редактирования скомпонованы в пункте Edit главного меню IDE. Активизация Edit производится типовой командой и приводит к открытию ниспадающего меню. Содержимое определяет активные и пассивные разделы. В большинстве случаев основные разделы неактивны, так как работа с ними требует предварительной подготовки исходного модуля. В этом случае вариант меню Edit имеет вид:

Выделение любого фрагмента существенно увеличивает количество возможных операций, предлагаемых меню Edit.

Быстрое выделение всего текста в окне редактирования осуществляется командой Редактирование\Выделить все

В этом варианте меню Edit приобретает вид:

Внимание! Активизация пункта Pasteсвидетельствуето наличии любого содержимого в буфере обмена.

Буфер обмена создается автоматически любым редактором текста для хранения фрагментов, подлежащих редактированию.

¨ выделить корректируемый тестовый фрагмент;

¨ активизировать пункт Edit главного меню;

¨ выбрать необходимую операцию;

¨ дать команду на ее выполнение;

Первые два пункта выполняются по типовой методике. Третий реализуется следующими операциями блочного редактирования:

Рассмотрим каждую из операций.

Изъятие (вырезание) – перенос выделенного текстового фрагмента в буфер обмена с удалением его в окне редактирования.

Определение предписывает двухшаговую реализацию операции:

— выделение вырезаемого фрагмента в текстовом окне,

— ввод команды «вырезать».

Выделение текстового фрагмента выполняется по типовой методике.

В качестве команды «вырезать» используются:

¨ Edit\Cut(Редактирование\Вырезание) активизацией пункта Edit главного меню, а затем пункта Cut подменю;

¨ горячие клавиши Сtrl + X;

¨ комбинация клавиш – Shift + Delete;

¨ кнопка на панели инструментов.

Выполнение команды приводит к перемещению выделенного фрагмента из окна редактирования в буфер обмена (в окне редактирования текст справа от перемещенного фрагмента автоматически смещается влево).

Примеры фрагментов окна редактирования до и после выполнения команды:

Копирование – размещение копии выделенного текстового фрагмента в буфер обмена.

¨ команда Edit\Copy (Редактировать\Копировать) активизацией пункта Edit главного меню, а затем пункта Copy подменю

¨ горячие клавиши (указаны справа в меню) Ctrl + C;

¨ комбинация клавиш – Ctrl + Insert;

¨ кнопка на панели инструментов.

Выполнение команды приводит к размещению копии в буфере обмена (сам выделенный фрагмент остается в тексте).

Примеры фрагментов окна редактирования до и после выполнения команды:

Вставка –копирование содержимого буфера обмена в окно редактирования, начиная от курсора.

Определение вставки предписывает двухшаговую реализацию операции:

— расположение курсора в желаемой точке текстового окна,

Размещение курсора выполняется по типовой методике.

В качестве команд вставки используются:

¨ Edit\Paste (Редактирование\Вставить) – активизация пункта Edit главного меню, а затем пункта Paste подменю;

¨ горячие клавиши (указаны справа в меню) Ctrl + V;

¨ комбинация клавиш – Schift + Insert;

¨ кнопка на панели инструментов.

Вставка приводит к размещению копии текста из буфера обмена в буфер редактора (отображенный в окне редактирования) справа от курсора. Расположенный ранее на месте вставки исходный текст сдвигается правее и ниже.

Примеры фрагментов окна редактирования до и после выполнения команды (в буфере хранятся строки ввода b):

Замена – замещение выделенного текстового фрагмента в окне редактирования на содержимое буфера обмена.

Определение замены предписывает двухшаговую реализацию операции:

— выделение заменяемого фрагмента в текстовом окне,

— ввод команды «вставка».

Выделение текстового фрагмента выполняется по типовой методике.

Реализация команды вставки рассмотрена выше.

В результате выделенный в окне редактирования фрагмент текста заменяется на содержимое буфера обмена.

Примеры фрагментов окна редактирования до и после выполнения команды (в буфер скопирована строка cout

Ликвидация – удаление выделенного в окне редактирования фрагмента.

Используется для удаления текстового фрагмента из копии исходного модуля в буфере редактора IDE.

Определение предписывает двухшаговую реализацию операции:

— выделение удаляемого фрагмента в текстовом окне,

— ввод команды «ликвидация».

Выделение текстового фрагмента выполняется по типовой методике.

В качестве команд ликвидации используются:

¨ Edit\Clear (Редактирование\Очистить) активизацией пункта Edit главного меню, а затем пункта Clear подменю;

¨ горячие клавиши Сtrl + Delete;

В результате текстовый фрагмент удаляется из буфера редактора в ОП, но остается в теле открытого файла на диске.

Примеры фрагментов окна редактирования до и после выполнения команды:

Выполнение ликвидации визуально идентично команде «вырезать», при отсутствии выделенного фрагмента в буфере обмена.

Закрытие файла сопровождается окном-запросом «Borland C++», позволяя выбрать один из трех возможных вариантов (см. выше).

Отмена – прекращение действия последней команды редактирования.

Используется для ликвидации действия последней команды (возврата на шаг назад).

¨ команда Edit\ (Редактирование\Отменить) активизацией пункта Edit главного меню, а затем пункта Undo подменю;

¨ горячие клавиши Ctrl + Z;

Внимание! Отмена действия команды Edit\Undo выполняется командами Edit\Redo (Редактирование\Вернуть) либо Schift + Ctrl + Z.

Рассмотренные команды редактирования позволяют выполнять практически любую корректировку текста исходного модуля. Внесенные коррективы отображаются в окне текстового редактора.

Сохранение отредактированного варианта исходного модуля либо создание новой версии его выполняется одной из рассмотренных ранее команд:

File/Save all(Файл\Сохранить все)

File/Save as…(Файл\Сохранить как)

Команды File/Save и File/Save allформируют новое (отредактированное) содержимое существующего файла исходного модуля без появления диалогового окна сохранения «Save File As».

Команда дополняется диалоговым окном сохранения «Save File As», позволяя сохранить файл по типовой методике.

Внимание! Команда File/Save as…позволяет создать новую версия файла исходного модуля, изменив его спецификацию. Исходный (редактируемый) файл остается без изменений. В результате на диске существует два файла:

— исходный модуль без изменений;

— откорректированный исходный модуль.

Активизация команды File/Close сопровождается появлением окна-запроса «Borland C++», уведомляя пользователя о возможных вариантах действий. Выбор желаемого пункта подтверждается нажатием соответствующей кнопки, приводя к закрытию файла (с учетом либо без редактирования).

Статьи к прочтению:

Редактирование текста | Информатика 5 класс #16 | Инфоурок

Похожие статьи:

ЗАГРУЗКА ИНТЕГРИРОВАННОЙ СРЕДЫ ВХОД В РАБОЧИЙ КАТАЛОГ F2 , выбрать фамилию своего преподавателя, , выбрать каталог группы . ЗАГРУЗКА ИНТЕГРИРОВАННОЙ…

ЛАБОРАТОРНАЯ РАБОТА № 1 ИНФОРМАТИКА MS WORD ЧАСТЬ 1. Ввод и редактирование текста, определение режимов и масштаба просмотра документа. Гиперссылки Для…

Добавление, редактирование и удаление записи из файла

Помогите решить пожалуйста 3 вариант задачи, не могу ни как понять.

В лабораторной работе разработать меню, позволяющее:
— создавать новый файл, открывать, просматривать, редактировать и удалять существующий файл;
— добавлять, редактировать, удалять записи из файла (не используя массив записей);
— ввод имен файлов осуществляется с клавиатуры, необходимо производить проверку на существование файла;
ВНИМАНИЕ: почти в каждом задании 3 (!) файла: исходный (ФЗ), результирующий 1й (ФЗ), результирующий 2й (текстовый файл). Для результирующего текстового файла предусмотреть только процедуру просмотра (естественно, с вводом имени с клавиатуры и проверкой на существование).
ЧИТАЙТЕ ЗАДАНИЕ ВНИМАТЕЛЬНО.

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

15.06.2015, 21:55

Добавление и удаление записи, поиск записи с максимальной зарплатой, сортировка по алфавиту
Помогите, пожалуйста!:help: Очень нужно сделать до 26!(а если не сложно, то еще и с комментариями.

Удаление записи из массива записи или файла
Доброго времени суток. Задача стоит такая. Есть массив записей, прочитали из файла или так.

Удаление записи из типизированного файла по ID
Вот процедура удаления по ID, из типизированного файла. Почему функция Pos не работает? выдает.

Удаление записи из типизированного файла.
Какими способами можно реализовать данную задачу? Из типизированного файла нужно удалить запись.

Добавление и удаление записи
Нужно заполнить запись несколькими полями(фамилия, имя, дата, пол). Заполнение получается, теперь.

Организация исходных файлов

Читайте также:

  1. II. Общественный контроль — это разновидность контроля, который осуществляется общественными организациями или отдельными гражданами.
  2. II. Организация и виды финансового контроля
  3. II. ТРЕБОВАНИЯ К ОРГАНИЗАЦИЯМ
  4. II.Организация — это составная часть какого либо объекта, его свойство иметь упорядоченную структуру.
  5. IV. Организация сетевого взаимодействия в АСУТП РВ
  6. IX. Лекционный материал: ОРГАНИЗАЦИЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ
  7. L Организация экономного расходования и надлежащего хранения сырья, а также обеспечение его сохранности без снижения его качества
  8. VII. Реорганизация и ликвидация кредитных организаций.
  9. XIII. Файловая структура ОС. Операции с файлами
  10. А.А. — НЕПРОФЕССИОНАЛЬНАЯ ОРГАНИЗАЦИЯ
  11. Атрибути файлових об’єктів
  12. Атрибуты файлов.

Встроенные функции-члены

В каждом из примеров классов, приведенных в этой главе, функции-члены полностью определялись внутри тела определения класса. В качестве альтернативы можно объявить функцию-член внутри класса, а определить ее вне класса.

При внешнем определении функции-члена перед ее именем нужно поставить имя класса с последующим оператором расширения области видимости «::».

vo >Есть существенное различие между функцией, определенной внутри тела класса, и функцией, определенной вне класса. По умолчанию для последней не выполняется inline-подстановка (см. описание inline-функций в гл. 2). Следовательно, очень короткие функции можно определить внутри тела класса, а более длинные – вне его. Например, конструкторы класса CRrectangle и метод GetCoord (самые короткие) могут быть определены внутри класса, а функции Draw и SetCoord (самые длинные) – вне его. Полное определение класса CRectangle приведено в листинге 3.1 в конце следующего раздела.

Можно заставить компилятор рассматривать функцию, заданную вне определения класса, как встроенную, используя спецификатор inline, как было описано в гл. 2. Например, можно сделать функцию CRectangle::GetCoord встроенной, объявив ее внутри определения класса CRectangle,

void inline GetCoord (int *L, int *T, int *R, int *B);

а затем определить ее вне описания класса.

vo >Если программа состоит из нескольких исходных файлов, написанных на языке C++, то определение класса обычно помещается вместе с определениями всех встроенных функций-членов внутри единого заголовочного файла (файла с расширением .h). Затем данный файл включается в любой исходный файл, в котором используется этот класс. Такая организация файлов гарантирует, что определение класса вместе с кодом любой встроенной функции будет доступно при обращении к классу или при вызовах его функций-членов. Как указывалось в гл. 2, компилятор должен иметь доступ к встроенной функции при каждом ее вызове.

Определения любых функций-членов, не являющихся встроенными, обычно также размещаются внутри отдельного файла, называемого файлом реализации класса. Скомпилированный вариант файла реализации необходимо скомпоновать с программой (например, путем включения файла реализации .срр в список файлов проекта Visual C++). Отметим: размещение определений не встроенных функций в файле заголовков вместо отдельного файла реализации приводит к ошибке компоновщика «повторное символическое определение» (symbol redefinition), если заголовочный файл включен более чем в один исходный файл.

Листинги 3.1 и 3.2 содержат полный исходный код последнего варианта класса CRectangle. Определение класса CRectangle помещено в файл с именем CRect.h (файл заголовков класса), а определения функций-членов, не являющихся встроенными, – в CRect.cpp (файл реализации класса).

Left = Top = Right = Bottom = 0;

> CRectangle (int L, int T, int R, int B)<

SetCoord (L, T, R, B);

>void Draw (void); void GetCoord (int *L, int *T, int *R, int *B)<

>void SetCoord (int L, int T, int R, int B); >;

// CRect.cpp: файл реализации#include «crect.h» #include vo >При создании класса CRectangle предполагалось, что функция Line определена в другом модуле. Файл CRect.h должен быть включен в любой файл, содержащий ссылку на класс CRectangle (включая CRect.cpp!), а скомпилированный вариант CRect.cpp должен быть скомпонован с программой.

3.8. Указатель this

При ссылке на переменные-члены класса из кода, находящегося вне класса, в выражении всегда указывается экземпляр класса. Следовательно, компилятор может определить, какая копия переменных-членов ему доступна. Предположим, например, что класс CTest содержит переменную N, тогда в приведенном ниже коде сначала будет напечатана копия переменной N объекта Test1, а затем – объекта *PTest2.

CTest Testl;CTest *PTest2 = new CTest;//. cout N N; // эквивалентно ‘return N;’ >

Имя функции-члена с выражением this-> перед ним является корректным, но не преследует ни какой цели, так как использование указателя this и так подразумевается в простой ссылке на переменную-член. Однако далее будет показано несколько практических применений указателя this.

Если нужно получить доступ к глобальным переменным или к функции, имеющей такое же имя, как переменная-член или функция-член, то перед именем необходимо поставить операцию расширения области видимости «::». Например:

int N = 0; // глобальная переменная Nclass CTest

cout

| следующая лекция ==>
Массивы объектов | Порядок вызова конструкторов и деструкторов

Дата добавления: 2014-01-07 ; Просмотров: 121 ; Нарушение авторских прав? ;

Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет

Организация исходных файлов

    Роман Василевский 2 лет назад Просмотров:

1 Д Организация исходных файлов о сих пор все рассматриваемые нами проекты состояли из одного исходного файла main.m. Функция main() и все наших классов располагались в одном файле. Такая структура пригодна для небольших программ, но не для больших проектов. С ростом программы файлы становятся слишком велики для просмотра или поиска. Возвращаясь к годам учебы вы же не помещали все написанные вами рефераты в один большой файл? Наверняка, каждая работа располагалась в отдельном файле с именем, позволяющим судить о содержимом файла. Аналогично имеет смысл разделять исходный текст программы на несколько файлов, давая каждому из них свое (желательно описывающее содержимое файла) имя. Разделение вашей программы на небольшие файлы повышает шансы более быстро найти интересующий вас код и помогает другим быстрее разобраться в вашем проекте. Размещение кода в нескольких файлах облегчает задачу отправки исходного текста интересного класса друзьям: вам будет достаточно отправить только пару файлов, но не весь проект. В этой главе будут рассмотрены идеи и стратегии размещения частей программы в отдельных файлах. Разделение интерфейса и реализации Как вы уже знаете, исходный текст классов Objective-C разделяется на две части. Первая часть интерфейс, предоставляющий вид класса извне и содержащий всю необходимую для использования класса информацию. Для того чтобы иметь возможность использовать объекты класса, вызывать его методы, вставлять объекты в другие классы или создавать подклассы, следует предоставить компилятору всю информацию, содержащуюся в Глава 6 Objective-C 2.0.indb :11:33

2 98 ГЛАВА 6. Организация исходных файлов Вторая часть исходного текста класса его реализация. говорит компилятору Objective-C о том, как заставить класс работать. Здесь содержится код, который реализует методы, объявленные в интерфейсе. В силу естественного разделения определения класса на интерфейс и реализацию, код класса часто точно так же разбивается на два файла. В первом файле хранятся компоненты интерфейса: открытые определения struct, константы enum, #defines, глобальные переменные extern и т.д. Поскольку Objective-C является наследником C, все это обычно располагается в заголовочном файле, который имеет то же имя, что и имя класса, и расширение.h. Например, у класса Engine заголовочный файл имеет имя Engine.h, а у класса Circle Circle.h. Все детали реализации, такие как определения глобальных переменных, закрытые объявления struct и так далее, располагаются в другом файле с тем же именем, что и имя класса, и расширением.m. Файлы Engine.m и Circle.m представляют собой файлы реализации соответствующих классов. ПРИМЕЧАНИЕ Если вы используете расширение.mm, то тем самым говорите компилятору, что ваш код написан на Objective-C++, который позволяет использовать вместе C++ и Objective-C. Создание новых файлов в Xcode При создании нового класса Xcode упрощает вашу жизнь, автоматически создавая для вас.h- и.m-файлы. Выбирая в Xcode пункт меню File New File, вы получите окно наподобие показанного на рис. 6.1, в котором перечислены типы файлов, известные Xcode. Рис Создание нового файла в Xcode Objective-C 2.0.indb :11:33

3 ГЛАВА 6. Организация исходных файлов 99 Выберите Objective-C class и щелкните на кнопке Next. Вы получите очередное окно, в котором у вас запросят имя файла (рис. 6.2). Рис Именование нового файла В этом окне не просто вводится имя файла. Здесь есть переключатель, которым можно воспользоваться, чтобы Xcode создал для вас файл Engine.h. Если у вас открыто несколько проектов, можно воспользоваться выпадающим списком Add to project для выбора проекта, к которому относятся вновь создаваемые файлы. Раздел Targets рассматривать не будем; скажем лишь, что сложные проекты могут иметь несколько конечных целей, каждая из которых имеет собственную конфигурацию исходных файлов и различные правила построения. После щелчка на кнопке Finish Xcode добавит соответствующие файлы в проект и выведет результат в окне проекта, как показано на рис Xcode помещает новые файлы в выбранную папку в панели Groups & Files (если перед созданием файлов вы выбрали Source, то файлы будут размещены в этой папке). Эти папки (именуемые Xcode Groups) предоставляют способ организации исходных файлов в вашем проекте. Например, вы можете сделать одну группу для классов вашего пользовательского интерфейса, другую для классов, работающих с данными, что упростит работу с проектом. При создании групп Xcode в действительности не перемещает никакие файлы и не создает никакие каталоги на вашем жестком диске. Взаимосвязи файлов с группами сугубо логические; если можно так выразиться, это просто красивые фантазии, поддерживаемые Xcode. Если вы хотите, то можете создать группу, которая будет указывать на определенное место в файловой системе, и Xcode будет помещать вновь создаваемые файлы в указанный вами каталог. После создания файлов вы можете редактировать их для этого следует выполнить двойной щелчок на имени интересующего вас файла в списке. Xcode любезно вставляет в файл стандартную заготовку исходного текста, такую как #import , или пустые которые вам предстоит заполнить реальным кодом. Objective-C 2.0.indb :11:33

4 100 ГЛАВА 6. Организация исходных файлов Рис Новые файлы появляются в окне проекта Xcode ПРИМЕЧАНИЕ До сих пор в данной книге мы вносили в исходный текст программ строку #import , поскольку использовали только эту часть Cocoa. Но вместо нее можно использовать строку #import . Такой импорт, среди прочего, подгрузит и заголовочные файлы схемы Foundation. Как разбить автомобиль В программе CarParts Split (в папке проекта CarParts-Split) все классы перемещены в собственные файлы. Каждый класс имеет собственные заголовочный файл (.h) и файл реализации (.m). Давайте рассмотрим, как создается такой проект. Начнем с двух классов, наследующих класс NSObject, Tire и Engine. Воспользуйтесь командой меню New File и выберите Objective-C Class, после чего введите имя класса Tire. Сделайте то же самое и для класса Engine. На рис. 6.4 показаны четыре новых файла в списке проекта. Теперь перенесем класса Tire из файла CarParts-Split.m в файл Tire.h. Этот файл принимает следующий вид. #import Tire : // Tire Objective-C 2.0.indb :11:33

5 ГЛАВА 6. Организация исходных файлов 101 Рис Добавление в проект Tire и Engine Затем из файла CarParts-Split.m в файл Tire.m переносим класса Tire. Кроме того, в начало файла следует добавить строку #import «Tire.h». Теперь файл Tire.m должен выглядеть следующим образом. #import Tire (NSString *) description return колесо.»); > // // Tire Первая директива #import представляет определенный интерес. Это не импорт заголовочных файлов Cocoa.h или Foundation.h, который осуществлялся ранее. Здесь импортируется заголовочный файл класса. Это стандартная процедура, и вы должны выполнять ее практически в каждом создаваемом проекте. Компилятору для генерации корректного хода требуется информация о схеме размещения переменных экземпляра в памяти, но автоматической загрузки заголовочных файлов компилятор сам не выполняет. Ему следует явно указать подгружаемые заголовочные файлы при помощи директивы #import. Если при компиляции вы получаете сообщение об ошибке наподобие Cannot find interface definition for Tire (не могу найти определение интерфейса для Tire), то это обычно означает, что вы забыли директиву #import с заголовочным файлом класса. Objective-C 2.0.indb :11:33

6 102 ГЛАВА 6. Организация исходных файлов ПРИМЕЧАНИЕ Обратите внимание на наличие двух различных способов импорта: с применением кавычек и угловых скобок например, сравните директивы #import и #import «Tire.h». Версия с угловыми скобками используется для импорта системных заголовочных файлов. Версия с кавычками указывает, что заголовочный файл локален для данного проекта. Если вы видите заголовочный файл в угловых скобках он предназначен только для чтения в рамках вашего проекта, поскольку им владеет система. Если же имя файла взято в кавычки, то вы (или иной программист проекта) можете вносить в него изменения. Теперь выполним те же действия для класса Engine. Перенесем этого класса из файла CarParts Split.m в Engine.h, который принимает следующий вид. #import Engine : // Engine Затем перенесем в файл Engine.m, который после этой операции выглядит так. #import Engine (NSString *) description return двигатель. Р р р р р!»); > // // Engine Если теперь попробовать скомпилировать программу CarParts-Split.m, то вы получите сообщение об ошибке из-за отсутствия объявлений классов Tire и Engine. Исправить эту ошибку очень легко. Достаточно добавить две следующие строки в начало файла CarParts-Split.m, сразу после строки #import . #import «Tire.h» #import «Engine.h» ПРИМЕЧАНИЕ Помните, что директива #import подобна директиве #include, которая обрабатывается препроцессором C. В данном случае препроцессор C, по сути, выполняет добавление содержимого файлов Tire.h и Engine.h в файл CarParts-Split.m перед началом компиляции. Вы можете собрать и запустить программу, получив при этом ту же функциональность программы, что и ранее, при использовании классов AllWeatherRadials и Slant6. Я двигатель slant 6. Р р р р р! Я колесо, которому годится любая погода! Я колесо, которому годится любая погода! Я колесо, которому годится любая погода! Я колесо, которому годится любая погода! Objective-C 2.0.indb :11:33

7 ГЛАВА 6. Организация исходных файлов 103 Зависимости между файлами Зависимость представляет собой взаимоотношение между двумя сущностями. Вопросы зависимостей часто возникают в процессе разработки и написания программ. Зависимости могут иметься между двумя классами: например, Slant6 зависит от Engine из-за отношения наследования. При изменении Engine, таком как добавление новой переменной экземпляра, Slant6 должен быть перекомпилирован, чтобы воспринять это изменение. Зависимости могут иметься и между двумя и более файлами. CarParts-Split.m зависит от Tire.h и Engine.h. Если какой-то из этих файлов изменится, файл CarParts-Split.m должен быть перекомпилирован, чтобы воспринять эти изменения. Например, Tire.h может содержать константу kdefaulttirepressure, равную 2 атм. Допустим, программист, который работает над программой, решает, что давление по умолчанию следует изменить на 3 атм. и вносит соответствующее изменение в файл Tire.h. Теперь необходимо перекомпилировать файл Car- Parts-Split.m, чтобы старое значение было заменено новым. Импорт заголовочного файла устанавливает строгую зависимость между заголовочным файлом и импортирующим его файлом с исходным текстом. Если заголовочный файл изменяется, то все файлы, зависящие от него, требуют перекомпиляции. Представим, что у нас есть сотня.m-файлов, каждый из которых включает некоторый (один и тот же) заголовочный файл скажем, UserInterfaceConstants.h. Если вы внесете изменение в UserInteraceConstants.h, все сто.m-файлов должны быть перекомпилированы, что может потребовать большого количества времени, какая бы мощная машина не имелась в вашем распоряжении. Вопрос рекомпиляции может быть еще более неприятным в силу транзитивности зависимости. Например, если Thing1.h импортирует Thing2.h, который в свою очередь импортирует Thing3.h, то любые изменения в Thing3.h приводят к необходимости перекомпиляции файлов, импортирующих Thing1.h. Xcode отслеживает все зависимости файлов за вас. Минимальная рекомпиляция А вот хорошая новость: Objective-C предоставляет способ минимизировать перекомпиляцию, вызванную зависимостями. Вопросы зависимостей появляются из-за того, что компилятор Objective-C для успешной работы нуждается в определенной информации. Временами ему требуется полная информация о классе, такая как схема размещения переменных экземпляра и цепочка наследования, а иногда достаточно только имени класса без его полного определения. Например, при композиции (с которой вы познакомились в предыдущей главе) применяются указатели на объекты, поскольку все объекты Objective-C используют динамически выделяемую память. Компилятору достаточно знать о том, что некоторый элемент является классом, при этом ему известно, что переменная экземпляра имеет размер указателя (который одинаков во всей программе). В Objective-C вводится ключевое назначение которого сказать компилятору это класс, и я собираюсь обращаться к нему только через указатели. Компилятор может быть спокоен: ему ничего не надо знать об этом классе, кроме того, что это нечто в памяти, доступ к чему осуществляется посредством указателя. Objective-C 2.0.indb :11:33

8 104 ГЛАВА 6. Организация исходных файлов Мы воспользуемся ключевым при перемещении класса Car в собственный класс. Создадим файлы Car.h и Car.m при помощи Xcode, так же как мы делали это с классами Tire и Engine. Переместим класса Car в файл Car.h, который теперь принимает следующий вид. #import Car : NSObject Tire *tires[4]; Engine *engine; > (void) setengine: (Engine *) newengine; (Engine *) engine; (void) settire: (Tire *) tire atindex: (int) index; (Tire *) tireatindex: (int) index; (void) // Car Если мы попытаемся воспользоваться этим заголовочным файлом, то получим от компилятора сообщение об ошибке, говорящее о том, что он не понимает, что такое Tire или Engine. Сообщение, скорее всего, будет иметь вид error: parse error before «Tire», что в переводе с компиляторного на русский означает я этого не понимаю. У нас есть два варианта исправления этой ошибки. Первый заключается в импорте Tire.h и Engine.h, которые снабжают компилятор всей имеющейся информацией об указанных классах. Но есть способ и получше. Если внимательно посмотреть на интерфейс класса Car, то вы увидите, что обращения к классам Tire и Engine осуществляются через указатели, т.е. это как раз тот случай, когда можно применить ключевое Вот как выглядит файл Car.h с добавленными #import Car : NSObject Tire *tires[4]; Engine *engine; > (void) setengine: (Engine *) newengine; (Engine *) engine; (void) settire: (Tire *) tire atindex: (int) index; (Tire *) tireatindex: (int) index; (void) // Car Objective-C 2.0.indb :11:33

9 ГЛАВА 6. Организация исходных файлов 105 Здесь достаточно информации для того, чтобы компилятор мог работать с интерфейсом класса Car. ПРИМЕЧАНИЕ Ключевое является опережающей ссылкой (forward reference). Это способ сообщить компилятору доверься мне; ты знаешь, что такой класс есть, а большего тебе пока знать и не надо. Ключевое также полезно в ситуации с циклическими зависимостями, т.е. когда класс A использует класс B, а класс B класс A. Если вы попытаетесь импортировать каждый класс из заголовочного файла другого класса, то получите ошибку компиляции. Но если B в A.h, A в B.h, то проблема будет успешно разрешена. Поехали Итак, мы сумели исправить заголовочный файл класса Car. Но файлу Car.m для компиляции требуется больше информации о классах Tire и Engine. Компилятор должен знать, от каких классов унаследованы Tire и Engine, чтобы убедиться, что объекты в состоянии отвечать на посылаемые им сообщения. Для этого мы импортируем Tire.h и Engine.h в Car.m. Нам также требуется удалить класса Car из файла CarParts-Split.m. Теперь файл Car.m имеет следующий вид. #import «Car.h» #import «Tire.h» #import Car (vo > 3) NSLog индекс (%d) в settire:atindex:», index); exit (1); > tires[index] = tire; > // settire:atindex: (Tire *) tireatindex: (int) index Objective-C 2.0.indb :11:33

10 106 ГЛАВА 6. Организация исходных файлов if (index 3) NSLog индекс (%d) в settire:atindex:», index); exit (1); > return (tires[index]); > // tireatindex: (void) print NSLog engine); NSLog tires[0]); NSLog tires[1]); NSLog tires[2]); NSLog tires[3]); > // // Car Теперь можно в очередной раз скомпилировать и запустить программу и получить тот же вывод, что и ранее. Похоже, мы выполнили очередной рефакторинг (но об этом не рекомендуется говорить вслух). Мы улучшили внутреннюю структуру нашей программы, сохранив ее поведение неизменным. Импорт и наследование Нам надо освободить из заточения в CarParts-Split.m еще два класса: Slant6 и AllWeather- Radial. Данная задача немного сложнее, поскольку эти классы унаследованы от созданных нами классов: Slant6 наследует Engine, а AllWeatherRadial Tire. Поскольку мы не просто применяем указатели на классы, а выполняем наследование, не можем воспользоваться трюком с ключевым в заголовочных файлах. Мы должны вставить #import «Engine.h» в файл Slant6.h и #import «Tire.h» в файл AllWeatherRadial.h. И все же, давайте уточним, почему именно мы не можем применить ключевое в этой ситуации. Дело в том, что компилятор должен все знать о надклассе, чтобы успешно скомпилировать для его подкласса. Компилятор должен знать схему размещения (типы, размеры и порядок) переменных экземпляра в надклассе. Вспомните, что когда вы добавляете переменные экземпляра в подкласс, они размещаются после переменных экземпляра надкласса. Затем компилятор использует эту информацию для определения расположения переменных экземпляра в памяти, начиная со скрытого указателя self, передаваемого при вызове каждого метода. Для корректного вычисления местоположения переменных экземпляра в памяти компилятору требуется полная информация о классе. Теперь приступим к классу Slant6. Создадим новые файлы Slant6.m и Slant6.h в Xcode, затем вынесем этого класса из CarParts-Split.m. Если вы все сделаете аккуратно, то файл Slant6.h должен иметь следующий вид. #import Slant6 : // Slant6 Objective-C 2.0.indb :11:33

11 ГЛАВА 6. Организация исходных файлов 107 Этот файл импортирует только Engine.h, но не . Почему? Мы знаем, что Engine.h импортирует , так что нам не надо импортировать его здесь еще раз самостоятельно. Но если вы поместите в этот файл директиву #import , ничего страшного не произойдет, так как директива #import достаточно интеллектуальна, чтобы избежать многократного включения. Файл Slant6.m содержит перенесенный из файла CarParts-Split.m класса Slant6 с директивой импорта заголовочного файла Slant6.h. #import Slant6 (NSString *) description return двигатель slant 6. Р р р р р!»); > // // Slant6 Выполните аналогичные шаги по переносу класса AllWeatherRadial в собственную пару файлов. Вот как после этого должен выглядеть файл AllWeatherRadial.h. #import AllWeatherRadial : // AllWeatherRadial А вот вид файла AllWeatherRadial.m. #import AllWeatherRadial (NSString *) description return колесо, которому годится любая погода!»); > // // AllWeatherRadial От файла CarParts-Split.m теперь осталась лишь жалкая оболочка. Теперь в нем нет ничего, кроме директив #import и единственной функции. #import #import «Tire.h» #import «Engine.h» #import «Car.h» #import «Slant6.h» #import «AllWeatherRadial.h» int main (int argc, const char * argv[]) Car *car = [Car new]; int i; Objective-C 2.0.indb :11:33

Содержание. Глава 1 Привет! Глава 2 Расширения C Введение в объектно-ориентированное программирование. 35

Содержание Об авторах. 14 О консультанте. 14 Благодарности. 14 Предисловие. 15 Глава 1 Привет. 17 Перед тем как начать. 17 Будущее делается вчера. 18 Что дальше. 18 Резюме. 19 Глава 2 Расширения

Глава 7 редактирование исходных файлов

7.1.3. Отключенные файлы

Файлы с проектами After Effects не содержат никакой мультимедийной информации, а являются записью действий пользователя по редактированию видео и звука, хранящихся во внешних файлах соответствующих типов. Поэтому при открытии проектов After Effects важно помнить, что клипы, которые содержатся в проекте, — это всего лишь ссылки на медиа-файлы, находящиеся на вашем компьютере. Если ссылка в открываемом проекте на какой-либо медиа-файл указывает на неправильное место на диске (например, если файл был перемещен или удален), то нормального открытия проекта не произойдет. Вместо этого появляется информационное окно с предупреждением и сведениями о количестве отсутствующих файлов (рис. 7.5).

Рис. 7.5. Если при открытии проекта After Effects не может найти какой-либо файл, выводится окно с предупреждением и информацией о количестве отсутствующих файлов

Помните о том, что проекты After Effects — это не самодостаточные файлы, как например, текстовые документы или графические файлы. Если вы переносите файл с проектом в другое место на вашем диске, по локальной сети или на другой компьютер, позаботьтесь о том, чтобы все файлы, импортированные в проект в виде клипов, были также перенесены на новое место. При этом по возможности сохраняйте иерархию хранения файлов (например, храните все медиа-файлы проекта в одной папке).

Если вы столкнулись с подобной ситуацией, отчаиваться не стоит. Проанализируйте, почему After Effects не может найти нужный файл, и выберите одно из трех решений:

  • считать его безвозвратно утерянным и полностью удалить из всех композиций;
  • попытаться найти его в другом месте на диске;
  • отложить процесс поиска «на потом», сконцентрировавшись на других задачах и оставляя упоминания о клипе в фильме в качестве «белых пятен».

Именно последний вариант предлагается по умолчанию.

Попробуем сами на конкретном примере разобраться, как происходит поиск потерянных файлов. Для этого используем тот же проект start.aep, который содержит несколько клипов.

1. Закройте проект start.aep.

2. Перейдите из окна After Effects к содержимому папки, в которой находятся файлы с исходным материалом.

3. Переместите один из файлов в какую-либо другую папку (для этого можно использовать новую папку, вложенную в текущую), либо просто измените название файла.

4. Любым из способов, описанных в данном разделе, откройте проект start.aep.

5. Закройте нажатием кнопки ОК окно с предупреждением и информацией о количестве потерянных файлов (см. рис. 7.5).

В открывшемся окне Project (Проект) обратите внимание на курсивное отображение имени потерянного файла (рис. 7.6).

Рис. 7.6. Отключенный файл в окне Project

Такие файлы называются отключенными (offline) и не могут быть загружены в проект After Effects, однако все атрибуты и изменения, которые вы осуществляли в прежние сессии работы в After Effects, полностью сохраняются (рис. 7.7). Отключенные файлы отображаются в окне Timeline (Монтаж) в обычном виде, а в окне Composition (Композиция) их изображение символически заменяется настроечной таблицей (рис. 7.7). Впоследствии можно заменить отключенный файл прежним и таким образом вернуть всю программу действий, назначенную ему в окне Timeline (Монтаж). Это означает, что в будущем, когда нужный файл найдется, ваша работа по его монтажу в композиции и настройке различных спецэффектов сохранится.

Рис. 7.7. Отключенный файл в окне Timeline и Composition

Разберемся, как можно провести поиск отключенных файлов.

1. Выберите в верхнем меню File>Replace Footage>File (Файл>3аменить клип>Файл).

2. В открывшемся диалоге Replace Footage File (Заменить исходный файл) отыщите расположение нужного файла (рис. 7.8).

Рис. 7.8. Замена отключенного файла

В результате найденный файл заменяет отключенный файл как в окне Project (Проект), так и везде в окне Timeline (Монтаж). При этом содержимое обнаруженного файла используется для формирования кадра композиции (рис. 7.9).

Рис. 7.9. Найденный файл заменяет в проекте отключенный файл

Заменить отключенный (и, вообще говоря, любой импортированный в проект) файл можно любым подходящим файлом, вовсе не обязательно тем же самым, что использовался в проекте раньше. В частности, для повышения быстроты работы в After Effects сначала можно осуществить монтаж с предварительно заготовленным черновым файлом, а затем заменить его настоящим. На самом деле, в After Effects предусмотрено специальное средство для осуществления редактирования такого типа, называемое Proxy (Черновик). Поскольку применяется оно не очень часто, мы оставили соответствующую информацию за пределами нашей книги, ограничившись лишь упоминанием о нем.

Илон Маск рекомендует:  Что такое код asp logextfilecookie
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL