過去の桐井戸端BBS (桐ver.9)
24565 一括処理でテキストを読み込んだファイル名の取得とTBLの切り替えをしたい benitama 2004/02/03-20:02
過去ログで検索しましたがなかなかみつかりません。
以前に読んだ記憶があるのですが...


下記の内容につきましてのアドバイスなり、過去ログを教えて貰えますか?

連番の表(*.TXT)が約1,000ぐらいあります。入力は複数の人間で担当しており
その中には表名だけでデーター無しというファイルもあります。
1つのファイルは1,000行を超えるものが多々あります。

このファイルを桐TBLに読み込み、書き出しをしたいのです。
書き出しファイル名は”読み込んだファイル名+TBL”としたいのです。
また、同時に元になる桐TBLには項目値に読み込んだファイル名を取得したいのです。

さらに、0001.TXT Aさん、000.2TXT Bさん....のファイルとして結果的に0001.TBL Aさん、0002.TBL Bさん....と書き出され、
フォームを作成した時に、Aさんを検索するとA.TBL、Bさんを検索するとB.TBLに切り替わるようにできるでしょうか? 

本来1つのTBLすればよいのでしょうがあまりにデーター量が多いのでできません。

WinXP Pro 桐2004 初心者です。

24567 Re:ファイル名の取得とTBLの切り替え 宮城 2004/02/03-20:35
記事番号24565へのコメント
benitamaさん、こんにちは。

ちょっとよくわからないところもありますが、ファイル名を変数として、

&読みテキスト名、&書き表名を変数宣言。ファイル名は「連番」との
記述を信じて、(1から1000までとする)。その他必要な変数も適宜宣言。

読み込む表を開いておいて

繰り返し &カウント用変数=1,1000
 &連番ファイル名=#文字列(&カウント用変数,4)
 &読みテキスト名=&連番ファイル名+".TXT"
 &書き表名=&連番ファイル名+".TBL"

 編集表 (読み込む表)
 読み込み テキスト,&読みテキスト名・・・

 書き出し 表,&書き表名・・・・

 (書き出し後、読み込む表は行削除しておく)

繰り返し終了

こんな感じでできると思いますが・・・。

ただ、「Aさん」「Bさん」、「項目値に読み込んだファイル名」の件がちょっと・・・。
テキスト中に記述されているのですか?

24572 Re:ファイル名の取得とTBLの切り替え benitama 2004/02/04-09:16
記事番号24567へのコメント
宮城さん早速のご教授ありがとうございます。

>ただ、「Aさん」「Bさん」、「項目値に読み込んだファイル名」の件がちょ
>っと・・・。テキスト中に記述されているのですか?
>
説明不足でした。名前のリストは別にあります。従ってTBLに記された連番の番号で読み込みます。
また、TXTファイルは常に増加していきます。
ですからTXTファイルのある限りの数ということになります。

余談ですが、こちらは説明したいことを懸命に書いたつもりですが、
さすがに宮城さんを始め皆さんすぐ不足や間違い部分を見抜く眼力にはおそれいります。
スタッフ一同「すご〜い」の連発でした。宮城さんにはおかしいでしょうが今年はこの問題に一年かけて取り組みます
(初心者ばかりなので)。

これから宮城さんのレスの中身を勉強させていただきます。
24585 Re:ファイル名の取得とTBLの切り替え 佐田 守弘 2004/02/04-22:38
記事番号24565へのコメント
benitamaさん

●名前のリスト
0001.txtなどのテキストファイル名と、入力者名のリストは、次の様な項目を作って下さい。
表名はリスト.tblと仮定。
[番号数字]:1から始まる連番号です。整数型で構いません。
[番号文字]:項目計算式#文字列([番号数字],4)で0001などの数字文字列を作り出します。
[入力者]:Aさん、Bさんなどの入力者名です。
[済]:表への読み込み済みは1、未処理は0を記録する項目です。
ここで、ファイルの連番号は、0001の様に

●読み込む表の雛型
読み込む表の雛型を先に作っておく必要があります。
この雛型から新しい表の枠組みを書き出して、テキストを読み込む表とします。

●読み込みの一括処理
宮城さんが書いているのと同じ様なものですが、次の様な感じです。
表 "リスト.tbl",表番号=1
絞り込み [済]{<1}
繰り返し (.not #終端行)
 代入 &表番号=[番号文字列]+".tbl",&テキスト番号=[番号文字列]+".txt"
 表 "雛型.tbl",表番号=2
 書き出し 枠組み &表番号
 終了 表 2
 表 &表番号
 読み込み テキスト,&テキスト番号,・・・・
 終了 表 &表番号
 編集表 1
 ジャンプ 行番号=+1
繰り返し終了
置換 [済]=1
終了 表
終了

●入力者を選ぶ
この部分の意味が解りません。AさんBさんが入力する表は複数あると思うのですが。
リストからAさんだけを選び出して一覧を表示させ、その中から目的の表を選ぶならできますが。

佐田守弘(KS-00119)
24587 Re:ファイル名の取得とTBLの切り替え 佐田 守弘 2004/02/04-22:59
記事番号24585へのコメント
追加と補足です。
原質問をもう一度読み返してみると、
Aさん、Bさんで、それぞれ1つの表にまとめる様にも見えますが、
テキストファイル毎に1つの表にするのでしょうか。それとも入力者1人に対して、1つの表にまとめるのでしょうか。

もう1点ですが、
>本来1つのTBLすればよいのでしょうがあまりにデーター量が多いのでできま
>せん。
と書かれていますが、あまりにデータ量が多いとは、どの程度なのでしょうか。
桐の表の仕様一杯までの表というのは、なかなかできるものではないと思いますが。

佐田守弘(KS-00119)

24814 Re:1000もファイルを作っちゃったら 宮城 2004/02/13-08:23
記事番号24572へのコメント
フォーマット(表定義)が共通なら、表を分けるべきではありません。
100件程度ならともかく、エクスプローラで1000件ファイルが並んだら、
これは恐怖そのものです。

ボリュームという観点からは、そりゃあいたずらに巨大ファイル作るべきではありませんが、
10万件程度ならどうってことなく使えています。

すでにテキストが1000あるのならまとめるべきです。1000回読み込みというのは
いささか人間業を超えているので一括処理ということになります。


戻る