| >清書ユーティリティで、ファイル読み込みを行うとファイル名がないと >エラーになります。ご確認いただけませんか。 >症状は、ファイル名に「全角英文字を複数使用」のときです >例:「ABC亜井宇.kev」みたいなものです
【多遊】さん、こんにちは。
お知らせを受けてから Windows2000、Windows NT4.0 桐ver8.sp5、桐ver8.sp6、桐ver.9、桐ver.9 sp1 という具合にいろいろな環境と組み合わせで試してみたのですが、 ABC亜井宇.kev でも ABCD.kev でも清書ユーティリティに読み込めました。
【多遊】さんのところで再現できるのに、私のところでは再現できないということなので厄介ですね。
そこで以下の流れのどこで引っかかっているか調査していただきたいのですが…(^^ゞ
cmdEnterFilenameClick └ txtFileButton::ソース値更新
手続き定義開始 cmdEnterFilenameClick( ) &mFileNameBak = &mFileName &mFileButtonSupportMode = 1 変数宣言 自動,文字列{ &filename, &dummyWfm } 変数宣言 自動,整数{ &hdl, &WinMaximize = 0 } : 途中省略 : &filename = #ファイル名( &mFileName, 5 ) + "*." + #ファイル名( &mFileName, 4 ) ファイル名入力 初期値 = &filename ,プロンプト = "読み込むファイルを選んでください イベント (*.kev) 一括 (*.cmd) テキスト (*.txt) K3ファイル (*.k3)" ,&mFileName : 途中省略 : &mFileName = #initcap( #lc( &mFileName ) ) &mFileButtonMode = #cond( &mFileName, 1, 1, 0) ┌if ( &mFileButtonMode ) │ メソッド呼び出し @cmdEnterFilename.フォーカス設定() │ 手続き実行 txtFileButton::ソース値更新() ├else │ &mFileName = &mFileNameBak └end 手続き定義終了
手続き定義開始 txtFileButton::ソース値更新() 変数宣言 自動,文字列{&filename, &extention, &title, &msg, &path} 変数宣言 自動,数値 {&ans, &kind} &filename = #ファイル名( &mFileName , 3 ), &path = #INITCAP( #文字置換( #ファイル名( &mFileName , 5 ), "\","\\") ) &extention = #lc( #ファイル名( &mFileName , 4 ) ) &title = "読み込み" メソッド呼び出し @フォーム.更新モード設定( 0 ) ┌if (&mFileButtonMode .and &mFileButtonSupportMode .or #lc( &mFileName ) <> #lc(&mFileNameBak) ) │┌if ( #ファイル検索(&mFileName,1)<>#u ) ││ ││┌if ( #対応番号( &mExtentionList, &extention ) <> 0 ) │││ &msg = " " + "ファイル: " + &filename │││ 条件 ( #桁数(&msg)< 100) &msg = #sstr( &msg , 1 , 50) │││ &msg = " " + "フォルダ: " + &path + "\n\n" + &msg + "\n\n 読み込みます。よろしいですか?" │││ メッセージボックス &title, &msg, ボタン指定=2, 制御文字展開 = する, &ans │││┌if (&ans = 1) ││││ &kind = #対応番号( &mExtentionList, &extention ) ││││ 条件 ( &kind = 1 .or &kind = 2 ) 手続き実行 prcLoadKevCmd( &mFileName ) ││││ 条件 ( &kind = 3 .or &kind = 4 ) 手続き実行 prcLoadTxtK3( &mFileName ) │││├else ││││ &mFileName = &mFileNameBak, &mHistory = &mHistoryBak │││└end ││├else │││ &msg = "拡張子 ." + #全角(&extention) + " のファイルは読み込めません " │││ 条件 ( &extention ) メッセージボックス &title, &msg, アイコン=i, ボタン指定=1 │││ &mFileName = &mFileNameBak, &mHistory = &mHistoryBak ││└end │├else ││ &msg = "フォルダ: " + &path + "\n\n" + &filename + "\n\nファイルが見つかりません" ││ メッセージボックス &title, &msg, アイコン=i, ボタン指定=1, 制御文字展開 = する ← ここに行きますか? ││ &mFileName = &mFileNameBak, &mHistory = &mHistoryBak │└end ├else │ メソッド呼び出し @フォーム.更新モード設定( 0 ) │ メソッド呼び出し @txtLine.フォーカス設定() └end 手続き定義終了
ここがポイントなのですが…
&msg = "フォルダ: " + &path + "\n\n" + &filename + "\n\nファイルが見つかりません" メッセージボックス &title, &msg, アイコン=i, ボタン指定=1, 制御文字展開 = する
【多遊】さんの場合、この部分のメッセージボックスが表示されているとすれば(仮定ですが…)、
if ( #ファイル検索(&mFileName,1)<>#u )
の行で、#ファイル検索(&mFileName,1) の値が 偽になっていると思われます。 つまり、#ファイル検索("d:\path\abc亜井宇.kev",1) が返す値が未定義値であると思われます。
お手数ですが、#ファイル検索("d:\path\abc亜井宇.kev",1) が返す値を調査していただけないでしょうか。
>「utx_list2.kev」を拝見させて頂きました。 >623 &mFileName = #initcap( #lc( &mFileName ) ) >この行をコメントにすれば読み込み可能ですが、どこかに影響でますか
ファイル名の英字を小文字で統一しているだけですので直接的な問題は起こりません。 ヒストリーの一覧でファイル名が重複する可能性があるだけです。 実用上の問題はありません、と思います。(^^ゞ
|