MATLAB Answers

Section headers are formatting as comments: how to get SH working again?

17 views (last 30 days)
Samuel Veith
Samuel Veith on 22 Aug 2019
Edited: Samuel Veith on 23 Aug 2019
My section headers are formatting as comments. I was editing my code and was commenting out a block. I entered "%}" in first, and it didn't comment out when I wrote the %{ above it. Since then, my section headers are not functioning. The SH have default color settings and I can't run individual sections either. Does someone know what I messed up?

  0 Comments

Sign in to comment.

Accepted Answer

Steven Lord
Steven Lord on 22 Aug 2019
You have an error in your code near the end of the file. You're missing the loop variable.
for 1:totalNumberOfFiles
Because of that error, your code is not a valid MATLAB script. Fix that error and the Editor will be able to enable section mode.
To detect this, I copied your code into MATLAB Editor and looked along the right margin of the Editor for the red line indicating Code Analyzer has detected an error.

  1 Comment

Sign in to comment.

More Answers (1)

AdamG2013468
AdamG2013468 on 22 Aug 2019
From the home tab, under the ENVIRONMENT panel, select preferences. Expand the "Editor/Debugger" option from the list, then go to "autoformatting".
Under the "Section Break" section, are both of the boxes checked (they should be)?

  3 Comments

Samuel Veith
Samuel Veith on 22 Aug 2019
Yeah, everything is checked on that page. I can type section headers on different codes, but not this one. If I copy the code into another file, I can also no longer write section headers in that file.
AdamG2013468
AdamG2013468 on 22 Aug 2019
You may have to copy your actual code into this question for further troubleshooting. Use the code feature (alt+enter) to use MATLAB formatting.
Samuel Veith
Samuel Veith on 22 Aug 2019
Bummer. I hope that this code doesn't reveal how bad a programmer I am!
%% 1st header
hello
%% 2nd header
% same comment format
goodbye
%% Define Variables
clc
clear java
javaaddpath('D:\Documents\MATLAB\PDFBox-0.7.3\lib\PDFBox-0.7.3.jar');
pdfdoc = org.pdfbox.pdmodel.PDDocument;
reader = org.pdfbox.util.PDFTextStripper;
%dire = 'D:\Desktop\Luxtech Sample Quotes';
%files = dir(fullfile(dire, '*.pdf')); % dir struct of all pertinent .pdf files
%n = length(files); % how many there were
%% Pull Data from PDFs
% Start with a folder and get a list of all subfolders. Use with R2016b and later.
% It's done differently with R2016a and earlier, with genpath().
% Finds and prints names of all files in that folder and all of its subfolders.
% Similar to imageSet() function in the Computer Vision System Toolbox: http://www.mathworks.com/help/vision/ref/imageset-class.html
% Initialization steps:
clc; % Clear the command window.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
% Define a starting folder.
start_path = fullfile(matlabroot, '\toolbox');
if ~exist(start_path, 'dir')
start_path = matlabroot;
end
% Ask user to confirm the folder, or change it.
uiwait(msgbox('Pick a starting folder on the next window that will come up.'));
topLevelFolder = uigetdir(start_path);
if topLevelFolder == 0
return;
end
fprintf('The top level folder is "%s".\n', topLevelFolder);
% Specify the file pattern.
% Get ALL files using the pattern *.*
% Note the special file pattern. It has /**/ in it if you want to get files in subfolders of the top level folder.
% filePattern = sprintf('%s/**/*.m; %s/**/*.xml', topLevelFolder, topLevelFolder);
filePattern = sprintf('%s/**/*.pdf', topLevelFolder); %C:\Users\Sam Work\Dropbox (LUXTECH)\LUXTECH Team Folder\Customers
allFileInfo = dir(filePattern);
% Throw out any folders. We want files only, not folders.
isFolder = [allFileInfo.isdir]; % Logical list of what item is a folder or not.
% Now set those folder entries to null, essentially deleting/removing them from the list.
allFileInfo(isFolder) = [];
% Get a cell array of strings. We don't really use it. I'm just showing you how to get it in case you want it.
listOfFolderNames = unique({allFileInfo.folder});
numberOfFolders = length(listOfFolderNames);
fprintf('The total number of folders to look in is %d.\n', numberOfFolders);
% Get a cell array of base filename strings. We don't really use it. I'm just showing you how to get it in case you want it.
listOfFileNames = {allFileInfo.name};
totalNumberOfFiles = length(listOfFileNames);
fprintf('The total number of files in those %d folders is %d.\n', numberOfFolders, totalNumberOfFiles);
% Process all files in those folders.
totalNumberOfFiles = length(allFileInfo);
% Now we have a list of all files, matching the pattern, in the top level folder and its subfolders.
A = cell(2, 2700);
if totalNumberOfFiles >= 1
for k = 1 : totalNumberOfFiles
try
% Go through all those files.
thisFolder = allFileInfo(k).folder;
thisBaseFileName = allFileInfo(k).name;
fullFileName = fullfile(thisFolder, thisBaseFileName);
% fprintf(' Processing file %d of %d : "%s".\n', k, totalNumberOfFiles, fullFileName);
[~, baseNameNoExt, ~] = fileparts(thisBaseFileName);
fprintf('%s\n', baseNameNoExt);
pdfdoc = pdfdoc.load(fullFileName);
pdfstr = reader.getText(pdfdoc); %#ok
class(pdfstr);
pdfdoc.close;
A(1,k) = num2cell(pdfstr);
A{2,k} = thisFolder;
catch
disp('error loading a file')
end
end
else
fprintf(' Folder %s has no files in it.\n', thisFolder);
end
fprintf('\nDone looking in all %d folders!\nFound %d files in the %d folders.\n', numberOfFolders, totalNumberOfFiles, numberOfFolders);
%%Export New Lines
fid = fopen('QuotesinText.txt','w')
for 1:totalNumberOfFiles
fprintf(fid,'*~*\n''customer: ''%s\n%s*~*\n\n',A{2,k} ,A{1,k});
end
fclose(all)

Sign in to comment.

Sign in to answer this question.

Products


Release

R2019a