Xojoの文法は、VBAに近い
Xojoの文法は、VBAに近いので関数を探すときなどに助かっています。
作成中の単語帳アプリ(XojoWordBook)ですが、問題テキストのデータを変えることにしました。今までは、日本語、英語と1行ずつのデータでしたが、日本語と英語をカンマ(,)で区切ったデータに変更しました。
Xojoでの読込は、qt = input.ReadLine で1行読込、カンマ(,)で読み込んだデータを分割することしました。
jp = Left(qt, qt.IndexOf(","))
en = Mid(qt, qt.IndexOf(",")+2,999)
VBAでは文字列検索は、InStr関数ですが、Xojoでは、変数.IndexOf(検索文字)となっています。InStrの返り値は、1からですが、IndexOfは0が先頭文字なので注意が必要です。
見直したコードは、以下のとおりです。
// 問題テキストファイルを読み込む
Var f As FolderItem
f = FolderItem.ShowOpenFileDialog("text;txt")
if f <> Nil And f.Exists Then
Var input As TextInputStream
input = TextInputStream.Open(f)
Var qt, jp, en As String '問題テキスト、日本語、英語
While Not input.EndOfFile
qt = input.ReadLine
jp = Left(qt, qt.IndexOf(","))
en = Mid(qt, qt.IndexOf(",")+2,999)
ListBox1.AddRow("", jp, en)
Wend
input.Close
End if
Return True
Var f As FolderItem
f = FolderItem.ShowOpenFileDialog("text;txt")
if f <> Nil And f.Exists Then
Var input As TextInputStream
input = TextInputStream.Open(f)
Var qt, jp, en As String '問題テキスト、日本語、英語
While Not input.EndOfFile
qt = input.ReadLine
jp = Left(qt, qt.IndexOf(","))
en = Mid(qt, qt.IndexOf(",")+2,999)
ListBox1.AddRow("", jp, en)
Wend
input.Close
End if
Return True
結局、また画面作成ができませんでした。明日頑張ることにします。
コメント
コメントを投稿