過去の桐井戸端BBS (桐ver.8)
7742 文字列データから数字のみ取り出す HERB 2000/09/21-12:59
#7733
> SP6では
>  #住所表示番号という関数を追加しました。
> 使い方としては,
> 1. 「札幌市中央区南四条西29-1524-23 郵便ハウス501」から、
>   バーコードデータを抜き出します。
>
> #住所表示番号( "064-0804" + "札幌市中央区南四条西29-1524-23 郵便ハウ
> ス501" )
> 結果 「064080429-1524-23-501」このような値が返るというもの。

バーコードデータに必要なデータのみを取り出す関数のようですが、
−を除いた数字のみ文字列として取り出す関数はありますか?
ヘルプ関数一覧をみてみたのですが見あたりません、
やりたいことは電話番号から数字のみ取り出したいのです。


012-345-6789 を 0123456789 としたいのです。
#数値(012-345-6789)だと 123456789 当然ですが頭の0が表示されません。
市外局番は頭に0が必ずつきますので、以下の式で代用しています。
"0"+#文字列(#数値("012-345-6789"))
もっとスマートな方法がありましたら教えて下さい。


7743 Re:文字列データの数字のみ取り出す 宮城 2000/09/21-13:15
記事番号7742へのコメント
HERBさん、こんにちは。変換元形式がハイフンつなぎに限定できるのでしたら、
次がもっとも簡単です。

#文字置換([元の電話番号],"-","")

7746 Re:文字列データの数字のみ取り出す HERB 2000/09/21-15:54
記事番号7743へのコメント
宮城さん早速の解答ありがとうございます。

>HERBさん、こんにちは。変換元形式がハイフンつなぎに限定できるのでしたら、
>次がもっとも簡単です。
>#文字置換([元の電話番号],"-","")

#文字置換も試しました、ところが元データが全・半角混同しており#半角で置き換え-を取り除いたところ
全角データの中にハイフンではなくカタカナ表記ののばし(ー)を使っていたデータがあり、
#文字置き換えでは残ってしまったのです。
なにか良い方法がありましたらよろしくお願いします。

7747 Re:文字列データの数字のみ取り出す ぐるぐる 2000/09/21-16:10
記事番号7746へのコメント
>#文字置換も試しました、ところが元データが全・半角混同しており#半角で置き換え-を取
>り除いたところ全角データの中にハイフンではなくカタカナ表記ののばし(ー)を使っていた
>データがあり、#文字置き換えでは残ってしまったのです。
>なにか良い方法がありましたらよろしくお願いします。

これではダメですか?
#文字置換(#文字置換([元の電話番号],"-",""),"ー","")

最初の式にさらに文字置換をかましてるだけですが、私はよく使う手です。
7748 Re:文字列データの数字のみ取り出す 宮城 2000/09/21-16:17
記事番号7746へのコメント
月並みな回答で申し訳ないのですが、さらに

#文字置換([元の電話番号],"ー","")

をかけます。

元のデータ精度が悪い場合、いまいましい限りですが、使う側が対応してやらなければなりません。
入力された後行うか、入力時チェックアウトするか、いろいろやりかたはありますが。

大文字で入力しろといっても小文字で入れたり、ゼロとオーを間違えたり、データの末尾に空白文字入れてたり・・・。
ありとあらゆることをしてくれるものです。

7752 精度の悪いデータの訂正 佐田 守弘 2000/09/21-20:36
記事番号7748へのコメント
HERBさん
この種の精度の悪いデータの処置は、皆様の書かれている方法しかないですね。
私の経験でいえば、
ハイフン:長音記号の他、罫線文字の様なものが混じっていたケースも少なくありません。
スペース:文字のうしろに不用のスペースが付いている場合もあります。
数字:頻度は少ないのですが、ゼロとo、1とLの小文字、2とzなどなど。

結局、文字置換関数を使って、考えられる可能性について全て置換を行うしかありません。
具体的には一括処理を書いて、順次置換して行くのが良いでしょう。
もし結果として処理忘れが見つかったら、それを処理するコマンドをその都度追加します。
自分の扱うデータで、どの様なミスがあり得るのか、どの様な対処をすれば良いのか、このあたりが蓄積になります。

佐田守弘(KS-00119)
7753 Re:文字列データの数字のみ取り出す Ogo 2000/09/21-23:35
記事番号7747へのコメント

>>#文字置換も試しました、ところが元データが全・半角混同しており#半角で置き換え-を取
>>り除いたところ全角データの中にハイフンではなくカタカナ表記ののばし(ー)を使っていた
>>データがあり、#文字置き換えでは残ってしまったのです。

  #文字置換(#文字置換(#半角([元の電話番号]),"-",""),"ー","")
                             ↑
(もちろん、最後の長音は半角ですよ。)

さてその後で、[元の電話番号]項目で、項目計算式による選択(絞り込み)を行ないます。

  #条件選択(#IS数字([元の電話番号],1)=1,"",1,[元の電話番号])

これに引っ掛かるようなデータは、別種の異常データです。

#しかし、質問する前に、自分の頭で考えているのだろうか?
7754 こんな一括でしょうか natsu 2000/09/22-01:13
記事番号7752へのコメント
>具体的には一括処理を書いて、順次置換して行くのが良いでしょう。

とりあえず、数字のみ取り出すのであれば、こんな感じでしょうか
置換したいターゲットの項目は [データ] としています

表 "なんとか.tbl"
変数宣言 固有,文字列{&変換前,&変換後,&ピックアップ}
変数宣言 固有,整数{&位置}
ジャンプ 行番号=先頭
繰り返し (#終端行=0)
代入 &変換前=[データ]
代入 &変換後=#U

  繰り返し
        代入 &位置=#IS数字(&変換前,0)
        ケース開始
           ケース (&位置=0)
               繰り返し中止
           ケース その他
           代入 &ピックアップ=#sstr(&変換前,&位置,1)
           代入 &変換後=&変換後+&ピックアップ
           代入 &変換前=#sstr(&変換前,&位置+1)
        ケース終了
繰り返し終了

名札 処理終了
行訂正 [データ]=#半角(&変換後)
ジャンプ 行番号=次行
繰り返し終了
表形式編集


7755 テストです 宮城 2000/09/22-09:26
記事番号7748へのコメント
ちょっと、テストさせてください。

"ー"で入力したはずなんだけど???
7756 みなさん、ご注意をば 宮城 2000/09/22-09:42
記事番号7755へのコメント
ここの掲示板ですが、半角かなは自動的に全角に変えてくれるようです。

と、いうことで、ぐるぐるさんと私がぼけてるのではありません。

#「どうやったら直りますか?」
#「正常化するまであらゆる手段を使って対処してください」
#有料サポートも「これ試せ」「あれ試せ」。 所詮はおなじこと。まし
#てやボランティアをや。

7758 Re:文字列データの数字のみ取り出す にせほりかわ 2000/09/22-10:15
記事番号7742へのコメント
>バーコードデータに必要なデータのみを取り出す関数のようですが、−を除いた数
>字のみ文字列として取り出す関数はありますか?
>ヘルプ関数一覧をみてみたのですが見あたりません、やりたいことは電話番号から
>数字のみ取り出したいのです。
>
>例
>012-345-6789 を 0123456789 としたいのです。
>#数値(012-345-6789)だと 123456789 当然ですが頭の0が表示されません。
>市外局番は頭に0が必ずつきますので、以下の式で代用しています。
>"0"+#文字列(#数値("012-345-6789"))
>もっとスマートな方法がありましたら教えて下さい。


せっかく新しい関数が出来たのだから

#s(#住所表示番号([TEL]),"-","")

っていうのが手っ取り早い気がします。
長音のハイフン変換や、空白チェックなど結構細かい気配りもされてますし・・・
SP6でお試しください。

にせほりかわ ・・・嘘 いかすぱ(^^;

7759 Re:みなさん、ご注意をば Ogo 2000/09/22-11:14
記事番号7756へのコメント

>と、いうことで、ぐるぐるさんと私がぼけてるのではありません。

とりあえず、私はそんなことを問題にしていたわけではありません。
インターネットで半角カタカナを使わない(使えない)のは前提条件ですから。

元データが全角半角文字混合とか言っているので #半角() を入れて
データの様式を揃えておくことが重要という主旨です。
しかも、「数字以外が入っているかも」とか心配するなら、その検証方法を考えるべきだということです。

経時的に繰り返しチェックする必要がなければ、一括処理まで組み上げる必要はないと思いますけどね。

7760 ありがとうございます HERB 2000/09/22-12:04
記事番号7742へのコメント
文字列データから数字のみ取り出す方法がきっとあるはず、関数一覧を見ながら思案したのですが、
考え込みすぎて目の前しか見えない状態になってしまい投稿した次第です。
文字置き換えて更に文字置き換えを行う、思いもつきませんでした、
考え込みすぎて思考が麻痺してしまってはよい案もでません。

わざわざ一括処理も書き込んでいただき感謝します、置き換え後の絞込で確認も必要ですね。
SP6が正式リリースされましたら#住所表示番号も試してみます。
多数のコメントホントにありがとうございました。
7765 Re:こら〜。今頃でてきおって ほりかわしんじ 2000/09/22-18:36
記事番号7758へのコメント
にせほりかわさん,こんにちは(わらひ)。

>せっかく新しい関数が出来たのだから
>
>#s(#住所表示番号([TEL]),"-","")

さすがやね〜。


>にせほりかわ ・・・嘘 いかすぱ(^^;

ほりかわのことで他の掲示板で茶化されていたのは気のせいか?(笑)。
今頃出てきたのですね。さぞや猛暑の中熱暴走などでマシンの調子が悪かったのでしょう。
来週ゆっくりとお話しを聞かせてもらうことに...(爆)。

7775 らーの鏡>ほんものとにせもの 佐田 守弘 2000/09/24-23:55
記事番号7765へのコメント
にせほりかわさん、ほりかわしんじさん
>来週ゆっくりとお話しを聞かせてもらうことに...(爆)。
10月5日でしょうか。
私は当日「らーの鏡」を持って行く事にします。
どっちが本物かにせものか分からなくなるので(^_^)。

佐田守弘(KS-00119)

追伸
「らーの鏡」:DQを御参照下さい。知っている人は知っているよね。
7776 らーの鏡 佐田 守弘 2000/09/25-00:50
記事番号7775へのコメント
さだもりひろは らーの鏡をのぞきこんだ。
桐の販売にやつれた営業マンの姿が映っていた。
さだもりひろは らーの鏡をのぞきこんだ。
何と!かつて関数の達人・雲上人と呼ばれたR師匠のお姿が映っていた。

佐田守弘(KS-00119)

■ 追伸:出そうでなかなか出なかったもの

今から2〜3年ほど前になるでしょうか。私は2つのソフトを心待ちにしておりました。
ドラゴンクエストZとWindows版桐です。
前者はロールプレイングゲームの王者であり、後者はMS-DOS時代のデータベースの王者でした。
早く登場する事が期待されているにも拘らず、どちらもなかなか世の中に出ませんでした。
「ドラクエも桐もどっちもなかなか出ないね。どっちが先に出るのかな?」
まあ、こう言った気持ちが真実の所でしたでしょう。

桐の方はご存知の通りですので割愛しますが、ドラゴンクエストについても
私は熱烈ユーザーの一人でした(過去形)。
TとUは今でも当時の呪文を持っております。
当時の私のデータベースはdBASE-Uでしたが、その後桐ver.3のデータに変換したものが残っているはず。
V〜Wも何回プレイした事か。Xも嫁さん(ビアンカ&フローラ)を変えて何回もプレイ。

Zも以前は発売を待っていた事は確かですが、もう止めました。
別に理由はありません。単に切れただけです。最近のお子達は切れると刃物を持ち出すようですが、
オジサンたちが切れても何も持ち出しません。
黙って立ち去るだけです。単に待っていたものを捨てさり、そこから立ち去ります。

私にとって桐の方は、切れる前にWindows版が出ましたが、ドラクエの方は切れました。
(数箇月前でしたら、つながっていたかも知れません。)

桐を待っていて、切れたオジサンたちは少なくなかったのでは。
「桐ねえ。MS-DOS時代は良く使われましたね。でも、もう時代が違いますから。」
「ああ、昔はありましたね。今でも使われているんですか?」
「古い話は止めましょうよ。今はWindowsの時代ですよ。」
切れてしまったオジサンたちですね。

●追伸の追伸
ももべりて にのでげとにの ふだべそつ みいら
(持っている人は試してみて下さい。LV25全て装備です。)
7786 Re:らーの鏡>ほんものとにせもの ほりかわしんいち 2000/09/25-15:50
記事番号7775へのコメント
佐田さんこんにちわ。ごぶさたしております。

>にせほりかわさん、ほりかわしんじさん
> >来週ゆっくりとお話しを聞かせてもらうことに...(爆)。
>10月5日でしょうか。

すみません。その日じゃなくて29日、「焼き29の日」であります。(^^;

>私は当日「らーの鏡」を持って行く事にします。
>どっちが本物かにせものか分からなくなるので(^_^)。

その日は私はいけません。ごめんなさい。
ちなみに「薄焼き煎餅」はご持参されないのでしょうか。(^^;

ばい ほりかわしんいち(にせものだけど二じゃない)
~~~~
意味不明なことばかり、桐に関係ないことをすみません。m(__)m>おる
今後、自重します。

戻る