第7話 ファイル処理の応用

--------------------- 第7話 ファイル処理の応用 --------------------------


はじまり、はじまり~。


<で、応用編では何をホザク?>
オイオイっ。

<こうナンツーか、もっと刺激のあるスクリプトが欲しいわね。>
勉強しているんだから無理言いなさんな。

<じゃあ続けて>
ハイハイ。 ファイル処理の応用にはコノ後のINIファイルや連想配列とのコンビネーションなどもあるが、もっと身近な所に
今回はスポットを当てよう。

<と言うと?>
実際のケースでは基本的な内容に手間取ることが多い。

<それじゃあ基礎編でしょ?>
いや、それらに柔軟に対応できてこそ"応用"になるんだね。

<具体的にはどうゆう事?>
それこそケース・バイ・ケースだね。

<そんなんじゃワカンナイ!>
仕方ないな~それじゃ例を挙げるけど、コレは無限分の1だからね・・・
やっぱヤメタ!

<ど~してよ!>
自分で考えないと意味が無いから。

<少しは考えるからオセーテ Liners様♪>
では一緒に考えて見よう。

CSVファイルには項目名が付いているものも多い。そこでその項目数を取得する問題だ。
<項目数?そんなのワカンナイし、決まっているんじゃないの?>

多くの場合は決まっているが、中には、可変型や多すぎて数えるのが面倒な場合も結構あるよ。
君なら下記の場合、項目数をどう求める?

№, 氏名, 電話番, メールアドレス, 住所   // 一行目(項目名)

<う~ん。カンマを数えたいだけなのに結構面倒なことになるわね>
<posで見つけてソコまでを削除して繰り返すか、tokenでカウンターを設けて繰り返す?>
<それにコレってファイル処理の応用なの?>

やっぱりハマってるね。もちろん応用で実際に出くわしたケースだ。
アンタの方法でも出来なくはないが面倒だね。それでも今回はPOS版を書いてみようか

s = "№, 氏名, 電話番, メールアドレス, 住所"
c = 0

while pos("," , s)
c = c + 1
s = copy(s ,POS(",", s) + 1)
wend
msgbox(c + 1)

<す、すっきりしてるジャン。コレで良いじゃん!>
じゃあコレは?

s = "№, 氏名, 電話番, メールアドレス, 住所"
msgbox(length(s) - length(replace(s, ",", "")) + 1)

<なっなんと2行ですか!>
<なるほどぉ。カンマを消して減った分だけかぞえるのかぁ。>
こんなのいっぱいあるからね。

<も、もっとぉ~~~>
だから自分で考えなきゃダメでしょ!


----------------------------------------------------------------------

提供は: 本人は何も考えていない。 Linersでした。

----------------------------------------------------------------------