過去の桐井戸端BBS (桐ver.8)
15246 テキストファイルを作成する一括処理を作っているけどうまくいかない みっち 2002/02/26-22:03
今回初めて、一括処理でプログラムを書いております。
桐まったくの初心者です。
全て、桐のヘルプで、行おうとしましたが、私の中で限界です。
誰か助けてください。

● 4つのTBLより、テキストファイルを作成する。という処理です。

1.4つのTBLすべてにおいて絞込みをしたいのですが、1つ目のTBLの項目を指定したところ、「未定義」のエラーが出てしまいます。

2. テキストファイルに、〒が入っている時のみ書き出したい。という処理を行いたいので、
  
   条件([〒] .not &space) 印字 "〒",[〒],_9,
 
  としましたが、テキストファイルには、何も印字されていません。

よろしくお願い致します
15247 Re:桐・一括処理 toshi-chan 2002/02/26-22:28
記事番号15246へのコメント
1.一括処理の中で書いた項目名と、実際の項目名が一致しているかどうかを確認してください。

2.条件([〒] .not &space)

  と書いてある部分を

  条件([〒]≠#未定義)
  
  としてみてはいかがでしょうか。
15248 Re:桐・一括処理 【多遊】 2002/02/26-22:33
記事番号15246へのコメント
>● 4つのTBLより、テキストファイルを作成する。という処理です。
> 条件([〒] .not &space) 印字 "〒",[〒],_9,

上記内容よりご質問は、郵便番号が入っている行をテキスト書き出しでよろしいでしょうか?
あと、区切りは「tab」で、改行無しですね。

簡単なサンプルを作成してみました。

表 "表ファイル名.tbl"
印字開始 "テキストファイル名.txt"
繰り返し(.not #終端行)
  条件([〒]<>#u)印字[〒],_9,
  ジャンプ 行番号=次行
繰り返し終了
印字終了

こんな感じでいけると思います。
あとは"表ファイル名.tbl"と"テキストファイル名.txt"を適当に変更下さい

ちなみに「&space」には、何が入ってるか興味です

15249 Re:桐・一括処理 みっち 2002/02/26-22:52
記事番号15247へのコメント
早速ありがとうございました。
2.〒は、無事解決いたしました。

1.ですが、
 「一括処理の中で書いた項目名と、実際の項目名が一致しているかどうかを確認してください。」
  との事ですが、テーブル1つだと問題なく、処理OKとなるのです。
  2つ目を定義すると、未定義・・ なるエラーメッセージが出てしまうのです。

  お願い致します。
15250 Re:桐・一括処理 toshi-chan 2002/02/26-23:31
記事番号15249へのコメント
私のカンですが、2つめの表に対して絞り込みをしようとしているのに、
編集対象表が1つめのままなのではないでしょうか。

2つめの表を開く、もし既に開かれているのなら編集表コマンドで編集対象表を切り替える・・・・・等の対応が必要です。
15251 Re:桐・一括処理 みっち 2002/02/27-00:56
記事番号15250へのコメント
本当にありがとうございます。編集表コマンドを定義したところ、「未定義です」エラーは、出なくなりました。
ただ、又、ここで問題発生!!!なんとテキストファイルに書かれている内容が、1件目のみなのです。
カウントを設定してみたところ、カウント変数は適正になされているのですが、
読み込まれるデータが全て同じ内容なのです。

よろしくお願い致します。
15252 Re:桐・一括処理 toshi-chan 2002/02/27-08:35
記事番号15251へのコメント
一括処理の主要部分を紹介してみてください。

多遊さんの書かれた一括処理を試してみましたか?4つの表があるわけですから、
この一括処理を4回繰り返すことになります。

カウント変数とは何でしょうか。
15253 Re:桐・一括処理 pokopon 2002/02/27-08:37
記事番号15251へのコメント
みっちさん おはようございます。

>なんとテキストファイルに書かれている内容が、1件目のみなのです。

表が混在している中での操作ですので、編集表を駆使して、どの表ファイルに対するアクションなのか把握する必要がありますね。

>カウンタが正常
はどの表に対する処理なのか?

>印字での書き出し
はどの表に対する処理なのか?

確認コマンドを使って、行単位でトレースして見てはどうですか?

>条件([〒] .not &space) 印字 "〒",[〒],_9,
の前に
確認 [〒]

トレースをしてみて、このコマンドはどの表に対する処理をしているのか(実際の動きとして)を確認して見て下さい。

編集表コマンドの置き場所が大事かと思います。

ソースを提示いただければ、皆さんも原因がつかめるかと思います。

<別の方法として>
書き出し専用の作業用表ファイルを用意し、そちらに書き出したいデータを読み込ませます。
そこで、いろいろとデータの加工を施し、
一気にTXTなりCSVでの書き出し。
という方法もどうでしょうか?
書き出される内容が表に残っているので、確認しやすいと思うのですが。

15256 Re:桐・一括処理 みっち 2002/02/27-12:19
記事番号15246へのコメント
いろいろありがとうございます。

以下の事がしたいのです。。
TBL1 設定
絞り込み
並べ替え
印字開始 .TXT
繰り返し(.not #終端行)
  編集表 1              ・・・ これを設定しないとTBL1の項目
  .TXT に書き出す             が未定義エラーとなり・    
                        設定しますとTBL1の内容が2件
  TBL2 設定                目以降読み込まれず、常に1件目
  絞り込み                   を読んで、書き出しております 
  繰り返し 絞り込みした件数分
    .TXT に書き出す 
    ジャンプ 行番号 = 次行
    条件 ( #終端行 ) 繰り返し中
  繰り返し終了
  絞り込み解除   1

  TBL3 設定
  絞り込み
  繰り返し 絞り込みした件数分
    .TXT に書き出す 
    ジャンプ 行番号 = 次行
    条件 ( #終端行 ) 繰り返し中
  繰り返し終了
  絞り込み解除   1

  TBL4 設定
  絞り込み
  繰り返し 絞り込みした件数分
    .TXT に書き出す 
    ジャンプ 行番号 = 次行
    条件 ( #終端行 ) 繰り返し中
  繰り返し終了
  絞り込み解除   1

繰り返し終了
保存表名   .txt
絞り込み解除   * 

と このような事をしたいのです。

よろしくお願い致します。
15259 Re:桐・一括処理 pokopon 2002/02/27-16:34
記事番号15256へのコメント
みっちさん こんにちは

>編集表コマンドの置き場所が大事かと思います。
原因はここではないでしょうか?

編集表コマンドは、表ファイル名そのものを指定できますので、それぞれの処理の前で編集表コマンドで処理する表を指定してみてはどうでしょうか?


>TBL1 設定

編集表 "TBL1"

>絞り込み
>並べ替え
>印字開始 .TXT
>繰り返し(.not #終端行)

>  編集表 1 ・・・ これを設定しないとTBL1の項目

これより  上記の位置が正確か?

>  .TXT に書き出    
>  TBL2 設定

ここに  編集表 "TBL2" を指定する

>  絞り込み 
>  繰り返し 絞り込みした件数分
>    .TXT に書き出す 
>    ジャンプ 行番号 = 次行
>    条件 ( #終端行 ) 繰り返し中
>  繰り返し終了
>  絞り込み解除   1
>
>  TBL3 設定

ここに 編集表 "TBL3"を指定する

>  絞り込み
>  繰り返し 絞り込みした件数分
>    .TXT に書き出す 
>    ジャンプ 行番号 = 次行
>    条件 ( #終端行 ) 繰り返し中
>  繰り返し終了
>  絞り込み解除   1
>
>  TBL4 設定

編集表 "TBL4"を指定する

>  絞り込み
>  繰り返し 絞り込みした件数分
>    .TXT に書き出す 
>    ジャンプ 行番号 = 次行
>    条件 ( #終端行 ) 繰り返し中
>  繰り返し終了
>  絞り込み解除   1

ループ元になっている表ファイルをここで指定しておかないと現在の処理は「表ファイルTBL4」のまま 

編集表 "TBL1"
ジャンプ 行番号 = 次行   ← これがないと、どこで次のレコードに行くのだろう
 
>
>繰り返し終了
>保存表名   .txt
>絞り込み解除   * 


こんな感じでどうでしょうか?


15261 出来ました。 みっち 2002/02/27-16:50
記事番号15259へのコメント
本当に 御親切にご指導下さいましてありがとうございました。

うまく出来ました。

助かりました。

編集表の設定場所が適切でなかったのですね。

toshi-chan様、POKOPON様、多遊様 本当にありがとうございました。

今後も宜しくお願い致します。

戻る