В этом примере показано, как использовать функции проекта для управления метками.
Создайте и откройте рабочую копию файлов примеров проекта. 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;
Затем выполните цикл для каждого файла и присоедините метку Design из категории 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"
Перед присоединением к файлу необходимо создать новые метки. Метки определяются в категориях с присвоением каждой категории имени и поддерживаемого типа данных.
Следующий код создает категорию меток «Инженеры», которая может использоваться для обозначения владения файлами в проекте. Эти метки имеют тип данных 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"