Sub MakeAgtFromData(filepath As String) {
Dim buf As String
Dim count_line As Integer
Dim new_agt As Agt
// ファイルからの読み出し
if (OpenFile( filepath,101,1)) then
count_line = 0
print("オブジェクトデータの読み込み中")
buf = ReadFile(101)
Do While (IsEofFile(101) == false)
buf = ReadFile(101)
if (Len(buf) > 1) then // 空行対策
new_agt = CreateAgt(Universe.sky.tori)
new_agt.X = GetToken(buf, 0)
new_agt.Y = GetToken(buf, 1)
end if
if ((count_line Mod 10000) == 0) then
print("・")
end if
count_line = count_line + 1
Loop
println("Done.(" & count_line & ")")
CloseFile(101)
else
println("オブジェクトデータが読み込めませんでした。")
end if
}
エージェントの初期値を記述した外部ファイルを読み込み、初期値を設定しつつエージェントを作成します。
①外部ファイルを作成します各エージェントのX座標とY座標をCSVで作成します。(例)1,5 //X座標が「1」、Y座標が「5」のエージェントを作成します7,2 //X座標が「7」、Y座標が「2」のエージェントを作成します・・
②Univ_Initにて外部ファイルから初期値を設定しつつエージェントを作成します
(例)
Sub MakeAgtFromData(filepath As String) { Dim buf As String Dim count_line As Integer Dim new_agt As Agt // ファイルからの読み出し if (OpenFile( filepath,101,1)) then count_line = 0 print("オブジェクトデータの読み込み中") buf = ReadFile(101) Do While (IsEofFile(101) == false) buf = ReadFile(101) if (Len(buf) > 1) then // 空行対策 new_agt = CreateAgt(Universe.sky.tori) new_agt.X = GetToken(buf, 0) new_agt.Y = GetToken(buf, 1) end if if ((count_line Mod 10000) == 0) then print("・") end if count_line = count_line + 1 Loop println("Done.(" & count_line & ")") CloseFile(101) else println("オブジェクトデータが読み込めませんでした。") end if }
サンプルモデルの「テキストファイル入出力モデル」もご参考にしてください。・サンプルモデルのページ