В этом примере показано, как использовать функции проекта для управления метками.
Создайте и откройте рабочую копию файлов примера проекта. MATLAB ® копирует файлы в папку примера, чтобы можно было их редактировать.
sldemo_slproject_airframe;
Starting: Simulink Building with 'MinGW64 Compiler (C)'. MEX completed successfully.
Создайте объект проекта, чтобы управлять текущим открытым проектом в командной строке.
project = currentProject;
Исследуйте файлы в проекте.
files = project.Files; disp(files);
1×31 ProjectFile array with properties: Path Labels Revision SourceControlStatus
Используйте индексацию для доступа к файлам в этом списке. Для примера получите файл номер 10. Каждый файл имеет два свойства, описывающие его путь и присоединенные метки.
aFile = files(10); disp(aFile);
ProjectFile with properties: Path: "C:\workSpace\examples\airframe2\data\system_model.sldd" Labels: [1×1 matlab.project.Label] Revision: "57973f5e87ca65215ab688e3544287e07db794c4" SourceControlStatus: Unmodified
Найдите информацию о файлах, присоединенных к меткам, путем индексации в свойство объекта файла Labels. Следующая команда присоединяет первую метку к этому конкретному файлу.
label = aFile.Labels(1); disp(label);
Label with properties: File: "C:\workSpace\examples\airframe2\data\system_model.sldd" DataType: 'none' Data: [] Name: "Design" CategoryName: "Classification"
Следующий код присоединяет метку Design в категории Classification ко всем файлам проекта с расширением .m.
Сначала получите список файлов:
files = project.Files;
Затем закольцовывайте каждый файл и присоедините метку проект из категории Classification, если файл имеет расширение .m.
for fileIdx = 1:numel(files) file = files(fileIdx); [~, ~, fileExtension] = fileparts(file.Path); if strcmp(fileExtension,'.m') addLabel(file, 'Classification', 'Design'); end end
Можно задать и запросить данные о метке, присоединенной к файлу. Для этого сначала нужно найти объект файла. Вы можете сделать это, закольцовав все файлы в проекте, как показано на предыдущем шаге. Также можно использовать функцию findFile на проекте.
Следующий код находит объект файла 'utilities/rebuild _ s _ functions.m'.
pathToLocate = fullfile('utilities','rebuild_s_functions.m'); file = findFile(project, pathToLocate);
Исследуйте свойство Labels, чтобы получить массив объектов Label, по одному для каждой метки, присоединенной к файлу.
labels = file.Labels; disp(labels);
Label with properties: File: "C:\workSpace\examples\airframe2\utilities\rebuild_s_functions.m" DataType: 'none' Data: [] Name: "Design" CategoryName: "Classification"
Чтобы найти метку по имени, используйте findLabel для объекта файла.
label = findLabel(file, 'Classification','Design'); disp(label);
Label with properties: File: "C:\workSpace\examples\airframe2\utilities\rebuild_s_functions.m" DataType: 'none' Data: [] Name: "Design" CategoryName: "Classification"
Необходимо создать новые метки, прежде чем можно будет прикрепить их к файлу. Метки определяются в категориях с присвоением каждой категории имени и поддерживаемого типа данных.
Следующий код создает категорию меток Engineers, которая может использоваться для обозначения владения файлами в проекте. Эти метки имеют тип данных char для присоединения строковых данных.
createCategory(project,'Engineers','char'); engineersCategory = findCategory(project, 'Engineers'); createLabel(engineersCategory,'Sam'); createLabel(engineersCategory,'Pat'); createLabel(engineersCategory,'Alex');
Теперь можно прикрепить метку Sam из категории «Инженеры» к файлу в проекте.
addLabel(file, 'Engineers', 'Sam'); label = findLabel(file, 'Engineers', 'Sam');
Следующая команда устанавливает данные для присоединенной метки.
label.Data = 'Maintenance responsibility';
disp(label)
Label with properties: File: "C:\workSpace\examples\airframe2\utilities\rebuild_s_functions.m" DataType: 'char' Data: 'Maintenance responsibility' Name: "Sam" CategoryName: "Engineers"