ファイルの読み込みのしかたについて質問があります。
Do while Not Eof(FileNo)
という記述をよく見るのでが下記方法は目にしません。
Do until Eof(fno)では、なにか問題があるのでしょうか?
記述も後者の方が短いので楽なような気がするのですが、あまり見ないので
なんか使わない意味があるのかな?なんて思いました。
すいません記述ミスです。
FnoはFileNoです。
Do while Not Eof(FileNo)
Do Unitil Eof(FileNo)
です。
どちらを使用しても構いません。
どちらも同じ意味です。
EOFはご存知かと思いますが、End Of Fileで、ファイルの最後という意味です。
Do While Not EOF(FileNo)
これは、ファイルの最後でない(Not EOF)間(While)繰り返す(Do Loop)。
Do Until EOF(FileNo)
これは、ファイルの最後(EOF)まで(Until)繰り返す(Do Loop)という意味です。
(^^)/
VB以外の言語ではDo UntilよりDo Whileが多用されていますので、
(他の言語ってDo Untilってあるのかな?)
Whileの記述の方が多いのだと思います。
(汎用性を上げるためだと思われます)
> Do until Eof(fno)では、なにか問題があるのでしょうか?
フォレストさんも書かれていますが、どちらでもOKです。
あるいは、While Not Eof(FileNo) 〜 Wend の構文を使うこともできます。
ちなみに私は、Do Until派です。(^^;)
Do While Not すなわち「〜の条件を満たしていない間」よりも、
Do Until すなわち「〜の条件を満たすまで」とした方が、
(英語としての)意味が素直な気がしているので。
> (他の言語ってDo Untilってあるのかな?)
例えば、パスカル系言語(Turbo Pascal や Delphi など)も
『Until』相当の構文を持っていますよ。
repeat
WriteLn('N=', n);
n:=n+1;
until n>500;
あとは、MySQL
SET @x = 0;
REPEAT SET @x = @x + 1; UNTIL @x > p1 END REPEAT;
とか、BASH
COUNTER=20
until [ $COUNTER -lt 10 ]; do
echo COUNTER $COUNTER
let COUNTER-=1
done
のような物があるようです。
フォレストさん魔界の仮面弁士さん疑問に答えて頂きありがとうございました。
またくだらない質問をするかも知れませんが、その時もよろしくお願いします。
解決ボタンをわすれた・・・
ツイート | ![]() |