ここから本文です

MATLABを用いて、ユーザーがキーボードで入力した名前のファイルを作る方法を教え...

hab********さん

2013/9/1922:54:43

MATLABを用いて、ユーザーがキーボードで入力した名前のファイルを作る方法を教えてください。
今、MATLABを使ってプログラムを書いているのですが、
例えば、ユーザーが「yamada taro」とキーボードで入力すると、

「yamada taro.txt」というtxtファイルを作成ができるように、
ユーザーがキーボードでユーザーの名前を入力することでその名前のテキストファイルを作れるようにするプログラムの書き方
がわからないので教えてください。
よろしくお願いします。

閲覧数:
893
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

vio********さん

編集あり2013/9/2122:19:26

ファイルの作成はfopen関数、fclose関数を使います。 キーボードの入力を受け付けるためには、inputdlg関数、またはuiputfile関数を使います。 ファイルの保存先の指定をおこなうのでしたら、uiputfile関数がファイル保存のためのダイアログボックスなので使い勝手が良いです。

また、ユーザーからの入力値にはファイル拡張子の有無の判定を入れたほうがよいでしょう。strfind関数にて入力文字列の判定をおこない、その結果が空配列(文字列が存在しない)の場合は、ファイル拡張子を結合します。

「ファイルを作成する」とのことでしたが、作成されたテキストファイルになにかを書き込むのであれば、fopen~fcloseの間でfprintf関数を使ってください。


●サンプル:1 inputdlgを用いた場合
saveFileName = inputdlg('保存ファイル名を入力');
if isempty(strfind(lower(saveFileName), '.txt'))
ㅤㅤ% ファイル拡張子が入力されていない場合の処理
ㅤㅤsaveFileName = [saveFileName '.txt'];
end

fid = fopen([cd '\' saveFileName], 'wt');
fclose(fid);

●サンプル:2 uiputfileを用いた場合
[saveFileName saveFilePath] = uiputfile('*.txt', '保存ファイル名を入力');
if isempty(strfind(lower(saveFileName), '.txt'))
ㅤㅤ% ファイル拡張子が入力されていない場合の処理
ㅤㅤsaveFileName = [saveFileName '.txt'];
end

fid = fopen([saveFilePath saveFileName], 'wt');
fclose(fid);

動作確認: R13(Matlab6.5)
可読性をあげるために空白文字列を使用しています。また転記の際に誤りがあるかもしれません。コピー&ペーストする場合はご注意ください。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる