--------------------- 第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でした。
----------------------------------------------------------------------