В этом примере показано, как использовать функции проекта, чтобы управлять метками.
Создайте и откройте рабочую копию файлов проекта в качестве примера. 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
Найдите, что информация о файле присоединила метки путем индексации в свойство меток объектов файла. Следующая команда присоединила первую метку к этому конкретному файлу.
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 в категории Классификации ко всем файлам в проекте с.m расширением файла.
Сначала получите список файлов:
files = project.Files;
Затем цикл через каждый файл и присоединяют метка Design от категории Классификации, если файл имеет расширение.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 получить массив объектов Метки, один для каждой метки, присоединенной к файлу.
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');
Можно теперь присоединить марку Сэма от категории 'Инженеров' до файла в проекте.
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"