opening many files and changing code to match file name
Afficher commentaires plus anciens
Hello,
I was hoping that somebody might be able to help me with a problem that I have. I have 1000 files in the current directory called
RW1.a_process
RW2.a_process
RW3.a_process...
RW1000.a_process
I was wondering for each file how can I open it and change 2 lines in the code to be the same as the file name.
This file is called RW1.a_process
You will see RW1 in the two places marked red.
Is there anyway that I could do this for the remainder of the files? It would take me hours to do it manually.
Sincere thanks
John
4 commentaires
Walter Roberson
le 18 Mar 2012
Ah, this would be very easy if you were using OS-X or Linux...
Jiro Doke
le 18 Mar 2012
What do the 2 lines in the code have currently? I assume you have some placeholder text, and you want to change those according to the file name?
Rick Rosson
le 18 Mar 2012
Are the two lines of text always lines 2 and 15, or do they change location from one file to the next?
John
le 18 Mar 2012
Réponse acceptée
Plus de réponses (1)
Rick Rosson
le 18 Mar 2012
It may be easier to delete all of the files except for the original source file, and then use MATLAB to create all of the copies for you, but with the two specific lines customized on each copy.
Maybe, for example:
for k = 2:1000
fileName = ['RW' num2str(k)];
source = fopen( 'RW1.a_process','r');
target = fopen([fileName '.a_process'],'w');
Ln = 0;
while ~feof(source)
Ln = Ln + 1;
aLine = fgetl(source);
if Ln == 2
aLine = sprintf(...);
else
if Ln == 15
aLine = sprintf(...);
end
end
fprintf(target,'%s\n',aLine);
end
fclose(target);
fclose(source);
end
I realize that this code is not optimized, but it may help as a starting point.
HTH.
Rick
Catégories
En savoir plus sur Get Started with MATLAB dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!