過去の桐井戸端BBS (桐ver.7)
1223 指定文字列の合計数を他項目のカウンタに表示させる makoto 1999/2/2-17:33
はじめまして、makotoと申します。
現在、項目[オーダーNO]を ,(カンマ区切り)で入力しているのですが、項目[累積数]に
そのオーダーNOの累積数を表示させたいと思っています。
具体的にはカンマの数+1で累積数を数えるようにしたいのですが、方法が今一つ解りません。
例)100A,500B,400C 左記ような場合は累積数は3です。
ちなみに項目[オーダーNO]は文字列です。
どなたかお解りになる方がおいででしたら教えてください。御願いします。
1224 Re: 宮城 1999/2/2-20:53
記事番号1223へのコメント
 makotoさん、こんばんは。

 不細工ですけど、適当な関数はたぶんないと思いますので、次のような一括処理かくしかないん
じゃないでしょうか。

変数宣言 固有,数値 {&文字数¥
           ,&カンマ数¥
           ,&カウンタ¥
           }
変数宣言 固有,文字列 {&調べる文字}

表 表の名前

ジャンプ 行番号=先頭

繰り返し(.NOT #終端行)
 &文字数=#文字数([オーダーNO])
 &カンマ数=0

 繰り返し &カウンタ=1,&文字数
  &調べる文字=#部分列([オーダーNO],&カウンタ,1)
  条件(&調べる文字=",") &カンマ数=&カンマ数+1
 繰り返し終了

 行訂正 [累積数]=&カンマ数+1
 ジャンプ 行番号=次行
繰り返し終了



 レコード1件ずつ、オーダーNO1文字ずつ調べていきますので、時間はちょっとかかるかもし
れません。
なに、じきにもっとスマートな書き込みがあるでしょう。

 なお、書き込み時は適当に改行をいれることをお勧めします。
送信ボタンがなくなって一瞬焦りました(ご自分の書き込みにコメントをつけてみるとわかりますよ。
遙か右に行ってしまっています。)
1225 Re: 悲しげ 1999/2/2-22:27
記事番号1223へのコメント
どもっ、makotoさん
私も以前同じことで悩んで、NIFTY-Serve/FAPPLIで教えてもらったことがあります。
こんなんでどうでしょう?

#文字数([オーダーNO])-#文字数(#s([オーダーNO],",",""))+1

要するに、項目値の半角カンマを未定義値に置換したものの総文字数を、元の文字
数から引いたものに、1プラスすると云う。
1228 Re: 宮城 1999/2/3-09:57
記事番号1225へのコメント
 なにか手はあると思っていましたがさすがです。
それどころかよく見たら幅田さん、ノウハウ集につけてくれてるじゃないですか!
 幅田さん、大変失礼いたしました。

 教訓:先人の苦労をむなしゅうすべからず。
1233 Re: 悲しげ 1999/2/3-17:57
記事番号1225へのコメント
makotoさんから、#文字数と#文字置換を使った計算式でうまく行ったとのメールが私宛に
届いていましたので、一応ご報告させていただきます。

戻る