過去の桐井戸端BBS (桐ver.8)
14856 英数字が混在したデータから英文字だけを取り出したい masa 2002/01/24-17:42
項目値で H160〜、G160〜、R148〜、RB39〜、というふうに
先頭の英字と数字が一緒になってるのですが、先頭の2文字中の英字だけ
選びたい場合どうしたらよろしでしょうか?
(数字は色々変わります。)

#部分列( #半角( [商品名] ) , -1 , -2 )
とすると
H1、G1、R1、RB となり数字が含まれています。

#部分列( #半角( [商品名] ) , -1 , -1 )
とすると
H、G、R、R となり3番目と4番目が同じになってしまうので困っています。

よろしくお願いします。

14858 Re:英語だけの文字選択について 悲しげ 2002/01/24-18:00
記事番号14856へのコメント
どもっ、masaさん
   #部分列([値],1,#is数字([値],0)-1)
でどうでしょう?

14860 Re:早速ありがとうございます。 masa 2002/01/24-18:24
記事番号14858へのコメント
悲しげさん こんばんは。

>   #部分列([値],1,#is数字([値],0)-1)

出来ました。ありがとうございます。
すみませんがもう少し教えて下さい。

#is数字([商品名],0)の関数で

sw = 0 : str に数字が含まれていればその文字位置を返す
とありましたが、「その文字位置を返す」ってどういう意味なんでしょうか?
数字のある場所に戻るという事なんでしょうか?
そこから-1されて英字だけ残るのでしょうか?
よろしくお願いします。
14862 Re:早速ありがとうございます。 悲しげ 2002/01/24-20:28
記事番号14860へのコメント
例えば
   abc123
とあった場合、
#is数字(…,0)は最初に数字が出て来るのは何文字目か、と云うことです
から、この場合は、4になります。
次に、#部分列で切り出すのは、1文字目から3文字目(即ち上記の4から1を減じた値)と云うことになります。
14863 Re:早速ありがとうございます。 悲しげ 2002/01/24-20:32
記事番号14862へのコメント
あ、そうか。
masaさんは、「-1」も#is数字関数の中の引き数かと思ったんですね。(^^;)
カッコ閉じを注意深くみればお判りかと思いますが、
これは、#部分列関数の引き数の方に当たります。

14868 「返す」の言葉の意味 佐田 守弘 2002/01/25-00:39
記事番号14860へのコメント
masaさん
関数の機能をいう時に、「○○を返します」と表現します。
この「返す」とは、その値が関数値として得られるという意味です。
別の言い方をすると、
#is数字(&文章,0)は、&文章の文字列の先頭から順に文字種を調べ、
その位置で文字が数字だったら、その桁数の数値が関数の値として得られるわけです。
この時に、関数がその値を返して来る(戻して来る)
から、式がそれを受け取れるわけです。関数は値を返すので、上記のように
「○○を返します」と表現します。

ですから、表などの上でカーソルがその位置に戻ったりするわけではありません

佐田守弘(KS-00119)
14869 Re:ありがとうございました。 masa 2002/01/25-09:29
記事番号14868へのコメント
悲しげさん 佐田 守弘さん おはよう御座います

詳しい説明ありがとうございました。おかげさまで式の意味も理解できました。
何かありましたら、又よろしくお願いします。

戻る