merging files using for loop
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
I am trying to merge 7 text files into 1 using system ('copy 090615.txt+090616.txt+090617.txt+090618.txt+090619.txt+090619.txt+090620.txt+090621.txt New.txt'); How can I do the same thing using a for loop. Thanks
0 comentarios
Respuesta aceptada
Ced
el 19 de Mzo. de 2016
Editada: Ced
el 19 de Mzo. de 2016
The above method should work.
However, instead of copying the content into a string ( which might be HUGE for several files ), try using the flag 'a' (append) instead of 'w' (write, will start at the beginning of the file again) when opening the file, i.e.
fid = fopen(newFile, 'a');
This way, you can read the files one at a time, and write the content to a single file.
PS: If the file is not empty in the beginning, but you don't want to keep the old content, you need to open it with "w" for k == 1, and then use "a".
Más respuestas (1)
Jan
el 19 de Mzo. de 2016
Editada: Jan
el 19 de Mzo. de 2016
Calling the operating system is indirect. You can do this inside Matlab instead:
Folder = cd; % Set accordingly
Str = '';
for k = 90615:90621
FileName = fullfile(Folder, sprintf('%06d.txt', k));
Str = [Str, fileread(FileName)];
end
newFile = fullfile(Folder, 'New.txt');
fid = fopen(newFile, 'w');
if fid == -1, error('Cannot open file for writing: %s', newFile);
fwrite(fid, Str, 'char');
fclose(fid);
Ver también
Categorías
Más información sobre Environment and Settings en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!