テキストファイルからランダムで1行読み込む方法

テキストファイルから1行読み出す応用で、ランダムな1行を読み出すことが可能です。

特に難しいことはしていませんのでサンプルで確認してみてください。

 

テキストファイルからランダムで1行読み込むサンプル

fileID = FOPEN("sample.txt", F_READ) // 読み込みモードでファイルを開く
maxLine = FGET(fileID, F_LINECOUNT)	 // 全部で何行あるかを数値で取得
str = FGET(fileID, RANDOM(maxLine) + 1) // どの行を読み出すかランダムにする
FCLOSE(fileID)
PRINT str

 

FGET関数リファレンス

FGET関数のリファレンスをマニュアルから転載します。

戻値 = FGET( ファイルID, 行, [列, ダブルコーテイション] )
引数
 ファイルID: オープン時に返されたID
 行: 取出したい行 (1から指定)
     F_LINECOUNT  を指定した場合はファイルの行数を返す
     F_ALLTEXT   を指定した場合はファイルの全内容を返す
 列: 取出したい列 (1から指定:,カンマ区切りのCSVファイルに対応)
 ダブルコーテイション:
   FALSE: 両端のダブルコーテイションは削除する (デフォルト)
   TRUE: 削除しない
   2:   CSV処理にて2つ連続ダブルコーティションを1つに (Excel同等処理)
戻値
 取出された値

 

ランダムな数値を取得する方法

ランダムな数値を取得する場合はRANDOM関数を利用します。

RANDOM関数は0から引数で指定した数値より1少ない範囲でランダムな整数を返します。 例えば10を指定すれば0~9の値が返ってきます。

 

ランダムな数値を取得するサンプル

r = RANDOM(10) // 0から9までの値を取得

 

ランダムな数値に定数を加算するサンプル

10から19の範囲を取得したい場合はRANDOM関数で取得した数値に10を加算します。これはRANDOM関数が0から始まる数値しか取得できないためです。

r = RANDOM(10) + 10 // 10から19までの値を取得

 

RANDOM関数リファレンス

RANDOM関数のリファレンスをマニュアルから転載します。

RANDOM(Range)      // 0 <=X <Range の範囲にある乱数を返す