みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
表題の通り、フォルダ内の複数のCSVファイルの内容を1レコードづつ一括でインポートしたいです。
デフォルトであるフォルダ一括インポートではCSVファイルは扱えないようです。
なにかよい方法はないでしょうか?
よろしくお願いいたします。
Offline
フォルダーからの一括インポートは、.txt だけですね。
ファイル名をまとめて変更すると、インポートできますが、インポートできる内容は、ファイル名、ファイルパスと、ファイルの内容、という1ファイル1レコードになります。
これではだめでしょうから、1レコードずつもう一度エクスポートして、ファイルのインポートを行う、という方法も考えられるでしょう。
または、そのフォルダーのlsの内容を取り込んで、1ファイルずつインポートするか、でしょうか。ScriptMakerならlsを取り込む処理ができるはずです。
Offline
1ファイルを1レコードの1フィールドに入れるんじゃないですよね。
windowsならコマンドプロンプトかEventを送信で全部連結して1つのファイルをインポートする。
copy *.csv all.txt
csvファイルの拡張子を.csv.txtに変更できたら、それでも問題無いのではないだろうか?
問題があるとか変更できない場合はそのフォルダ内の全ファルのパスを一括して取得する方法があればいいのかな?
Shinさん、ありがとうございます。
ファイルパスさえとれればあとはなんとかなるかとは考えています。
ScriptMakerというものは初めて聞いたので、調べてみます。
続きはまたこちらに書かせていただきます。
miceさん、ありがとうございます。
ファイル名称もフィールドに格納する必要があるので、今回は1つのファイルにするのはできないかと思います。
Travellerさん、ありがとうございます。
CSV書き出し元ファイルの方を.txtで出せるかを確認中ですが、なんらかのプログラムで吐き出されるファイルだそうなので、難しいかもしれません・・。
Offline
フォルダ内のファイル名を取得
まんま、転載です。
Windowsであれば、以下の様な方法でフォルダ内のファイル名を取得できます。
1,
プラグイン使用
ScriptMakerMS
https://sites.google.com/site/scriptmakerms/
フィールド設定 [Run::result; iiil_DOScmd( "dir /b \"C:\フォルダ\*.*"" )]
2,
プラグインなし
(clipが使えればコレでもOKです。)
Event を送信 [「aevt」; 「odoc」; 「cmd /c dir /b "C:\フォルダ\*.*" | clip」]
スクリプト一時停止/続行 [間隔(秒): 1]//ファイル数が多い場合、1秒では、失敗する。
貼り付け [選択; フィールド]
3,
プラグインなし
(file.txtを書きだして読込)
Event を送信 [「aevt」; 「odoc」; 「cmd /c dir /b
"C:\Users\tomita_hirofumi\Desktop\!TEMP\*.*" > "d:\file.txt"」]
フォルダだけを取り出すには「dir /ad」とし(dはdirectoryの略)、
フォルダ以外(つまりファイル)だけを取り出すには「dir /a-d」とする。
/b/a-d …ファイル名だけを表示させる
/b/ad …フォルダ名だけを表示させる
/S...サブディレクトリも含める(戻り値:フルパス)
Offline
>qb_dp様
回答有難うございます!
まだ試せていませんがいけそうです。
が、一つ問題が発生しまして、取り込むフォルダが固定していないことがわかりました。
インポートのたびにフォルダを指定して取り込む方法を探しているのですが、なにかよい方法があればご教示いただけないでしょうか?
よろしくお願いいたします。
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 558.29 KiB (Peak: 581.32 KiB) ]