Edit Textfile for analysis
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
RAKESH KUMAR TOTA
el 12 de En. de 2021
Hi, I here by attached text file. I want the text file to be read as the following manner. Any help would be appreciated. Thank you
*Heading
** Job name: Job-1 Model name: Model-1
** Generated by: Abaqus/CAE 6.14-5
*Preprint, echo=NO, model=NO, history=NO, contact=NO
**
** PARTS
**
*Part, name=rect
*Node
1, -0.375, -0.125
2, -0.427631587, -0.125
3, -0.480263144, -0.125
*Element, type=CPS4
1, 1, 2, 22, 21
2, 2, 3, 23, 22
3, 3, 4, 24, 23
4, 4, 5, 25, 24
*End Part
**
2 comentarios
Respuesta aceptada
Rik
el 13 de En. de 2021
Editada: Rik
el 13 de En. de 2021
You can get my readfile function from the FEX. If you are using R2017a or later, you can also get it through the AddOn-manager.
The readlines function was introduced in R2020b and will work similar to readfile (except it will read to a string instead of a cell array of char arrays).
data=readfile('https://www.mathworks.com/matlabcentral/answers/uploaded_files/486763/aba.txt');
if isempty(data{end}),data(end)=[];end %strip trailing empty line if the file ended with a newline
for n=1:numel(data)
if ~strcmp(data{n}(1),'*')
str=data{n};
%trim leading/trailing whitespace
str=strtrim(str);
%trim internal double spaces
removed_double_spaces=inf;
while removed_double_spaces~=0
length1=length(str);
str=strrep(str,' ',' ');
length2=length(str);
removed_double_spaces=length1-length2;
end
%store back to cell array
data{n}=str;
end
end
fprintf('%s\n',data{:})
6 comentarios
Más respuestas (1)
Mathieu NOE
el 13 de En. de 2021
ok
so my 2 cent suggestion to make that array looks nicer -
lines = readlines('aba.txt','WhitespaceRule','trim');
ll_out = strings; % init string array
for ci = 1:numel(lines)
ll = lines(ci,:); % current line
if ~startsWith(ll,'*'); % check lines 10 to 20 - here we have to work things out
lldk = strrep(ll,' ',''); % remove all (multiple) blanks inside the char array
ll_out(ci,1) = strrep(lldk,',',', '); % put back one blank after the comma (if really needed)
else % nothing to do except copy the original line
ll_out(ci,1) = ll;
end
end
% save it - and remove the double quote
writematrix(ll_out, 'test.txt',"QuoteStrings",0)
Ver también
Categorías
Más información sobre Environment and Settings en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!