how to write an opened file in a loop to a new file in a different folder using fwrite?
2 ビュー (過去 30 日間)
古いコメントを表示
Hi everyone,
I open a file in a loop using fopen. I make some modifications and then I want to write the file to a new folder but I get the error that the identifier is not valid.
Loop starts >
OpenFile = fopen('BetaWeatherFile.epw','r');
DuplicateATemporary = fopen('temporary.epw','w');
.....
modifications
.....
Then I want to use the fwrite here but it does not work.
"Error using fwrite Invalid file identifier. Use fopen to generate a valid file identifier."
6 件のコメント
Jan
2021 年 3 月 10 日
Yes, of course the first valid file identifier is 3. 1 is the standard output, 2 the channel for error messages.
With opening the file for reading by 'r', you cannot write to the file. Therefor your fwrite command replies 0 for: no character was written.
Are you sure you want to write the char vector 'E:\backup.epw' into the file? Maybe you have confused FWRITE and COPYFILE?
採用された回答
Jan
2021 年 3 月 10 日
編集済み: Jan
2021 年 3 月 11 日
Yes, of course the first valid file identifier is 3. 1 is the standard output, 2 the channel for error messages.
With opening the file for reading by 'r', you cannot write to the file. Therefor your fwrite command replies 0 for: no character was written.
Are you sure you want to write the char vector 'E:\backup.epw' into the file? Maybe you have confused FWRITE and COPYFILE?
FileName = fullfile(tempdir, 'test.txt')
OpenFile = fopen(FileName, 'w'); % [EDITED, typo fixed]
assert(OpenFile~=-1, 'Cannot open file for writing.')
fwrite(OpenFile, 'Hi', 'char')
fclose(OpenFile);
copyfile(FileName, fullfile(tempdir, 'test2.txt'))
4 件のコメント
Jan
2021 年 3 月 11 日
What do you expect as output of the copyfile command? It is a flag, which tells you if the copy was successful. I do not see a reason to store this in the variable CopyPhase .
Instead of copying the file, you could write directly to the wanted file. Then using an index in the file name is an obvious solution:
for k = 1:10
file = fullfile(Folder, sprintf('file%03d.txt', k));
...
end
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Environment and Settings についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!