(現在 過去ログ63 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

[ 最新記事及び返信フォームをトピックトップへ ]

■9750 / inTopicNo.1)  #年月日のフォルダーに書き出し
  
□投稿者/ トンタ -(2016/03/29(Tue) 16:06:27)
    2016/03/29(Tue) 16:12:35 編集(投稿者)

    フォルダーを作成してデータの書き出し時に「パスが存在しません」とエラーになる。書き出し時の「#年月日」が、現在の日付を取り出せていない。(前日に正常に書き込めた日の日付になっている。)
    ただ、現在の日付を取り出せて上手くいく場合もある。(一度うまくいくとその日は大丈夫)
    何かの環境が起因するのか、原因をご教授願います。
    -------------------------------------------------------
    フォルダ作成 "WWW\"+#年月日+"",終了状態 = &OK
    -------------------------------------------------------
    絞り込み [AAA]{*"STOP"*},文字比較方法=自動 **** 該当データ無し ****
    条件(#総件数) 書き出し条件登録 CSV,条件名="","WWW\"+#年月日+"\"+"abcd-"+[BBB]+".csv",追加,項目名=しない,ファイル名変更=しない,表示条件=する,{[AAA],[BBB]・・・・}
    書き出し CSV,条件名=""


    -------------------------------------------------------
引用返信 [メール受信/OFF] 削除キー/
■9754 / inTopicNo.2)  Re[1]: #年月日のフォルダーに書き出し
□投稿者/ 悲しげ -(2016/03/29(Tue) 17:12:56)
    No9750に返信(トンタさんの記事)

    例えば

    確認 #年月日
    変数宣言 文字列{&folder="k:\data\test\"+#日付(#年月日,1)}
    確認 &folder
    フォルダ作成 &folder,終了状態 = &実行リターン

    (1)ファイル名(フォルダ名)の制限

    桐(v9-2012)での確認ですが
    環境設定の日時型・時間型の設定タブで、数値表示、表示形式、表示範囲などが幾つか設定できます。
    例えば「2016/_3/29(_16:33:58)」とかだと、ファイル名(フォルダ名)の制限として「/」は使えない。

    (2)「#日付」関数(ヘルプより)

    日時文字列または日時値を、f で指定した表示形式の日付文字列に変換します。
    時刻の部分は変換されません。

    値 戻り値の表示形式
    1 yyyy-mm-dd
    2 month dd,yyyy
    3 yymmdd
    4 環境設定の表示形式

    サンプル
    この関数が生成する日付の表示形式を示します。
    #日付( "2002年10月10日" , 1 ) → 2002-10-10
    #日付( "2002年10月10日" , 2 ) → October 10 , 2002
    #日付( "2002年10月10日" , 3 ) → 021010

    (3)データパス指定の問題(ヘルプより)

    フォルダ名が、ドライブ名または \ からはじまっていない場合は、現在のデータパスからの相対指定になります。

    ■記述例
    「C:\K3」フォルダの中に「web」フォルダを作成します。
    フォルダ作成 "C:\K3\web",終了状態 = &OK

    現在のデータパスの下に「My Data」という名前のフォルダを作成します。
    フォルダ作成 "My Data",終了状態 = &OK

引用返信 [メール受信/OFF] 削除キー/
■9755 / inTopicNo.3)  Re[2]: #年月日のフォルダーに書き出し
□投稿者/ トンタ -(2016/03/29(Tue) 19:52:55)
    悲しげさん

    アドバイスありがとうございます。

    しかしながら、フォルダは正常に作成されるのですが「書き込み時」にエラーになってしまうことから他に原因がありそうです。

    ・エラー内容が間違えておりました。
    誤)パスが存在しません
    正)KD1103:ファイル名の形式に誤りがあります
     ※詳細では前回正常に書き込まれた日付が表示されております。

    ・環境
    桐ver 10
    Wibdows 7
引用返信 [メール受信/OFF] 削除キー/
■9756 / inTopicNo.4)  Re[3]: #年月日のフォルダーに書き出し
□投稿者/ たゆー -(2016/03/29(Tue) 20:42:52)
    >・エラー内容が間違えておりました。
    >誤)パスが存在しません
    >正)KD1103:ファイル名の形式に誤りがあります
    これは重大な質問ミスですね
    私も、「#年月日」のフォルダーがどの形式に作成されたかが不明でした。

    では、私がよくやる方法ですが、コマンドを短くして、どこかまで出来るかですね
    いきなり
    >条件(#総件数) 書き出し条件登録 CSV,条件名="","WWW\"+#年月日+"\"+"abcd-"+[BBB]+".csv",追加,項目名=しない,ファイル名変更=しない,表示条件=する,{[AAA],[BBB]・・・・}
    でなく、
    書き出し CSV,"WWW\"+#年月日+"\"+"abcd-"+[BBB]+".csv",追加,項目名=しない,ファイル名変更=しない,表・・・・・・
             〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
    ここを「"WWW\20160330\abcd-efgh.csv"」とかダイレクトに記載してテストするとか?
    手間ですが、きっとわかると思います。


引用返信 [メール受信/OFF] 削除キー/
■9757 / inTopicNo.5)  Re[4]: #年月日のフォルダーに書き出し
□投稿者/ トンタ -(2016/03/29(Tue) 21:53:18)
    たゆーさん
    ご連絡ありがとうございます。
    > >・エラー内容が間違えておりました。
    > >誤)パスが存在しません
    > >正)KD1103:ファイル名の形式に誤りがあります
    > これは重大な質問ミスですね
    ・悲しげさん、たゆーさん 大変失礼いたしました。
    > では、私がよくやる方法ですが、コマンドを短くして、どこかまで出来るかですね
    ※PCの日付を変更しながらテストしました。
    ・ファイル名及び書き込み項目を少なくしても駄目でした。
    ・ダイレクトで"2016年 4月 4日"を入れたら"2016年 4月 2日"前回正常終了時の日付で同様にエラーが出て駄目でした。(ここが不思議です)

    ・実際はドライブが作業ドライブと違うところに保存しますが、ダミーで一度、作業ホルダー(データがあるフォルダー)に"test.csv"を作成すると正常に成功いたしました。
引用返信 [メール受信/OFF] 削除キー/
■9758 / inTopicNo.6)  Re[5]: #年月日のフォルダーに書き出し
□投稿者/ 悲しげ -(2016/03/29(Tue) 23:07:33)
    2016/03/29(Tue) 23:15:25 編集(投稿者)
    2016/03/29(Tue) 23:10:21 編集(投稿者)

    No9757に返信(トンタさんの記事)
    状況がまだ読めませんが(^^;)

    素朴な疑問として、「書き出し条件登録」のファイル名に、関数やら複雑な式を入れても認識してくれるのだろうか?
    きっと認識してくれるとも思うが、少しでも簡略にするために
     &csvFile="WWW\"+#年月日+"\"+"abcd-"+[BBB]+".csv"
     条件(#総件数) 書き出し条件登録 CSV,条件名="",&csvFile",追加,項目名=しない,・・・・
    とか、
    でも、たゆーさんが言ったのは、「書き出し条件登録」&「書き出し 条件名」の2段階経由で複雑化せずに、
    次のようにダイレクトに「書き出し CSV」コマンド一発だけで試してはどうかが主であって
     条件(#総件数) 書き出し CSV,「ファイル名」・・・以下略
    ファイル名を「ダイレクトで"2016年 4月 4日"を入れる」と言うことではないような・・・。

    *

    >実際はドライブが作業ドライブと違うところに保存しますが、ダミーで一度、
    >作業ホルダー(データがあるフォルダー)に"test.csv"を作成すると正常に成功いたしました。

    "test.csv"は「ファイル名の形式に誤りが」ないからうまく行ったような気がしないでもありませんが、
    ならば、もうひとつの方法として、できた"test.csv"を別ドライブにコピーしてはどうでしょう?

     &csvFile="別ドライブ:\WWW\"+#年月日+"\"+"abcd-"+[BBB]+".csv"
     確認 &csvFile
     ファイル複写 "test.csv",&csvFile
     ファイル削除 "test.csv" *念のため削除

    これでもエラーになるならそれこそ「ファイル名の形式に誤りがあります」だろうから、
    上例のように変数に入れて確認表示させてみてはいかが?

引用返信 [メール受信/OFF] 削除キー/
■9760 / inTopicNo.7)  Re[6]: #年月日のフォルダーに書き出し
□投稿者/ うにん -(2016/03/30(Wed) 14:02:20)

    > でも、たゆーさんが言ったのは、「書き出し条件登録」&「書き出し 条件名」の2段階経由で複雑化せずに、

    2段階なので、書き出すデータがないときに条件を登録しないまま(前回の条件で)書き出しを実行してますよね。
引用返信 [メール受信/OFF] 削除キー/
■9762 / inTopicNo.8)  Re[6]: #年月日のフォルダーに書き出し
□投稿者/ トンタ -(2016/03/30(Wed) 14:27:41)
    悲しげさん

    > きっと認識してくれるとも思うが、少しでも簡略にするために
    >  &csvFile="WWW\"+#年月日+"\"+"abcd-"+[BBB]+".csv"
    >  条件(#総件数) 書き出し条件登録 CSV,条件名="",&csvFile",追加,項目名=しない,・・・・

    上記のように簡素化したことで解決いたしました。

    その後、うにん さんの下記の内容が気になったので試して見ようと思ったのですが環境が変わったのか?日付を変えて以前の一括処理でもエラーが出なくなりました。

    > 2段階なので、書き出すデータがないときに条件を登録しないまま(前回の条件で)書き出しを実行してますよね。
    確かに、データがあればエラーにならないような気がします。
引用返信 [メール受信/OFF] 削除キー/
■9767 / inTopicNo.9)  Re[7]: #年月日のフォルダーに書き出し
□投稿者/ たゆー -(2016/03/30(Wed) 19:29:32)
    今後のために
    「#年月日」は、そのときの環境等で「2016年 4月 4日」のように、途中空白が
    入る場合があります。今回が、たまたま動いたと言うことで、処理によっては
    その空白があるためエラーになることもあります。

    そこで、極力エラーを出さないために
    1.「#年月日」を、空白無し文字列で作成
      #文字列(#年(#年月日),4)+#文字列(#月(#年月日),2)+#文字列(#日(#年月日),2)
    2.ファイル名の前後に、#jis(34)→ダブルコーテションを付け
      #jis(34) + ・・・・・・・・・・・・・・・・・・・ + #jis(34)
      このように、修正する
    他にもありますが、とにかくエラーが出ないように作成するのもいいですね

引用返信 [メール受信/OFF] 削除キー/
■9771 / inTopicNo.10)  Re[8]: #年月日のフォルダーに書き出し
□投稿者/ トンタ -(2016/03/31(Thu) 15:38:32)
    たゆーさん

    > 「#年月日」は、そのときの環境等で「2016年 4月 4日」のように、途中空白が
    > 入る場合があります。今回が、たまたま動いたと言うことで、処理によっては
    > その空白があるためエラーになることもあります。
    >
    > そこで、極力エラーを出さないために
    > 1.「#年月日」を、空白無し文字列で作成
    >   #文字列(#年(#年月日),4)+#文字列(#月(#年月日),2)+#文字列(#日(#年月日),2)
    > 2.ファイル名の前後に、#jis(34)→ダブルコーテションを付け
    >   #jis(34) + ・・・・・・・・・・・・・・・・・・・ + #jis(34)
    >   このように、修正する
    > 他にもありますが、とにかくエラーが出ないように作成するのもいいですね

    ご指摘有り難う御座いました。

    悲しげ さん
    うにん さん
    有り難う御座いました。
解決済み!
引用返信 [メール受信/OFF] 削除キー/
■9772 / inTopicNo.11)  Re[8]: #年月日のフォルダーに書き出し
□投稿者/ 悲しげ -(2016/03/31(Thu) 17:19:26)
    解決済がついた後で申し訳ないが

    No9767に返信(たゆーさんの記事)

    私の自宅マシンの桐のひとつが、環境設定で「2016/03/01」のようになってまして
    半角空白どころか「/」が入っている時点でファイル名・フォルダ名として
    完全にアウトなのです。
    で、今回発見したのが、#日付(#年月日,1) と言う訳です。
      #日付( "2016/ 3/ 1" , 1 ) → 2016-03-01
    これが最もシンプルでオススメですよ。

引用返信 [メール受信/OFF] 削除キー/
■9773 / inTopicNo.12)  Re[9]: #年月日のフォルダーに書き出し
□投稿者/ たゆー -(2016/03/31(Thu) 21:29:26)
    > #日付(#年月日,1) と言う訳です。
    > #日付( "2016/ 3/ 1" , 1 ) → 2016-03-01

    「#日付」関数自体の有無は知ってましたが、「#日時文字列」のように
    「値の戻り値」が、無いため今まで利用していませんでした。

    いままでは、
    ・#日時文字列( 【 tmst | itvl 】 , n1 , n2 , n3 )
    を、利用してましたが、今回みたいに、固定でしたら「#日付」これも有りですね

    ちなみに、値の戻り値とは
    ・0 環境設定と同じ
    ・1 空白詰め
    ・2 ゼロ詰め
    ・3 詰めなし

引用返信 [メール受信/OFF] 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -