便乗して、AB5 CP5のサンプルを載せようと思います。
まず、テキストに対して1行ずつ処理する方法。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード:
#console
Dim string = "処理したい文字列" As String
Dim reader = New System.IO.StringReader(string)
Dim s = reader.ReadLine()
While Not ActiveBasic.IsNothing(s)
System.Console.WriteLine(s)
s = reader.ReadLine()
Wend
System.Console.ReadLine()
簡単な解説:
StringReaderを利用して、テキストを1行ずつ読み取ります。StringReaderに読み取るStringを渡して初期化します。StringReaderからReadLineで次々に1行ずつ読み取っていくことが出来ます。読み込む文字列がなくなったとき、ReadLine()はNothingを返すので、ActiveBasic.IsNothing関数を使って、読み込みの終了を判定することが出来ます。
次に、ファイルから読み取った文字列を1行ずつ処理する方法。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード:
Imports System
Imports System.IO
Imports System.Collections.Generic
#console
Console.Write("ファイル名 : ")
Dim filename = Console.ReadLine() As String
Dim lines = File.ReadAllLines(filename) As List<String>
Dim s As String
Foreach s In lines
Console.WriteLine(s)
Next
/* Foreachはこれと一緒
Dim i As Long
For i = 0 To ELM(lines.Count)
Console.WriteLine(lines)
Next
*/
Console.ReadLine()
簡単な解説:
System.IO.File.ReadAllLinesを使うことで、ファイルの内容の各行を配列に入れることが出来ます。ReadAllLinesにファイル名を渡すことで、そのファイルの各行を配列にしたListが返ってきます。あとは普通に添え字を使って任意の行数の文字列を読み取ることが出来ます。
ちなみに、ForeachはABCP5で追加された文法です。
AB開発Wikiにリファレンスがあるものもありますが、ablib/src/Classes/内のソースコード上のコメントにしか使い方が載っていないものもあります。