File データタイプは、テキストファイルの処理に使用できます。ファイルのコピー、削除などの基本的なファイル操作だけでなく、テキストファイルの内容を管理 (ファイルの内容の読み取りや書き込み) することもできます。
ファイルの内容をメモリ変数に直接ダンプする必要がある場合、または文字列変数の内容をログファイルに書き込む場合に大変便利です。
File データタイプでテキストファイルの読み取りまたは書き込みに使用できるメソッドを次に示します。
次のメソッドは、テキストファイルの読み取りまたは書き込みのために使用します。操作は一括で実行されます。ファイルが開かれた後に、ファイルに対して内容の読み取りや書き込みが行われ、その後ファイルが閉じられます。
この方法は、ファイルが小さい場合に特に便利です。大きなファイルでは、行単位で読み取りと書き込みを行うメソッドが提供されています。
メソッド |
説明 |
ReadAllText( [ encoding ] ):String |
テキストファイルを開き、ファイル内のすべてのテキストを読み取り、ファイルを閉じます。このとき、オプションで指定されるエンコード方式 (未指定の場合は UTF-8) が使用されます。 |
ReadAllLines( [ encoding ] ):StringCollection |
テキストファイルを開き、ファイル内のすべての行を読み取り、ファイルを閉じます。コレクション内の各項目にファイルの行が設定され、これらにはオプションで指定されるエンコード方式 (未指定の場合は UTF-8) が使用されます。返される値は文字コレクションです。 |
WriteAllText(String [ , encoding ] ) |
ファイルを開き、文字列をファイルに書き込み、ファイルを閉じます。ファイルが存在する場合、オプションで指定されるエンコード方式 (未指定の場合は UTF-8) を使用して上書きされます。 |
WriteAllLines(StringCollection [ , encoding ] ) |
ファイルを開き、文字列コレクションをファイルに書き込みます。このとき、各アイテムの末尾に行末記号を追加します。それからファイルを閉じます。ファイルが存在する場合、オプションで指定されるエンコード方式 (未指定の場合は UTF-8) を使用して上書きされます。 |
AppendAllText(String [ , encoding ] ) |
ファイルを開き、指定した文字列をファイルの末尾に追加し、ファイルを閉じます。このとき、オプションで指定されるエンコード方式 (未指定の場合は UTF-8) が使用されます。 |
AppendAllLines(StringCollection [ , encoding ] ) |
ファイルを開き、指定した文字列コレクションをファイルの末尾に追加します。このとき、各文字列の末尾に行末記号を追加します。それからファイルを閉じます。オプションで指定されるエンコード方式 (未指定の場合は UTF-8) が使用されます。 |
この例では、html 拡張子を持つファイルを検索し、その内容をデータベースにロードします。ファイルをスキャンするため、&File 変数 (
File データタイプに基づく) および &Directory 変数 (
Directory データタイプに基づく) を使用し、その後 ReadAllText メソッドを使用してファイルの内容をデータベースにダンプします。
For &File in &Directory.GetFiles("*.html")
New
ContentHtml = &File.ReadAllText()
EndNew
EndFor
この例では、ビジネスコンポーネントからのデータを使用してログファイルが書き出されます。
&LogLines = new() //&LogLines は文字列コレクション。&LogLines.Add(Format(" [ %1 ] Error updating Customer", Now()))
&LogLines.Add(&CustomerBC.ToJson())
&LogFile.AppendAllLines(&LogLines) //&LogFile は File データタイプ。
次のメソッドは、ファイルの行単位での読み取りまたは書き込みに使用されます。
メソッド |
説明 |
ReadLine(): String |
ファイルから文字列を 1 行読み取ります。返される文字列には、行末の改行コードは含まれません。ファイルはこのメソッドを使用する前に開かれている必要があります (OpenRead または Open メソッドを使用)。 |
WriteLine(String) |
指定した文字列を、行末記号を追加して書き込みます。ファイルはこのメソッドを使用する前に開かれている必要があります (OpenWrite または Open メソッドを使用)。 |
この場合、操作を実行する前にファイルを開いておく必要があります。ファイルを開くために使用されるメソッドの詳細は、次のとおりです。
メソッド |
説明 |
Open( [ encoding ] ) |
読み取り/書き込み権限でファイルを開きます。このとき、オプションで指定されるエンコード方式 (未指定の場合は UTF-8) が使用されます。ファイルが存在する場合、ファイルに内容が追記されます。ファイルが存在しない場合、新しいファイルが作成されます。 |
OpenWrite( [ encoding ] ) |
内容を追加するために、書き込みでファイルを開きます。ファイルが存在しない場合、オプションで指定されるエンコード方式 (未指定の場合は UTF-8) を使用して、新しいファイルが作成されます。 |
OpenRead( [ encoding ] ) |
読み取りでファイルを開きます。このとき、オプションで指定されるエンコード方式 (未指定の場合は UTF-8) が使用されます。 |
メソッド |
説明 |
Create() |
[ Source ] プロパティで指定されたパスにファイルを作成します。ファイルは開きません。 ファイルが既に存在している場合は、ErrCode = 1 が設定され、ファイルの作成および切り捨ては行われません。 |
Close() |
ファイルを閉じます。 |
名前 |
説明 |
EOF |
ファイルの末尾に到達した場合は True。このプロパティを使用する前に、ファイルが読み取り権限で開かれている必要があります。 |
ファイルを行単位で処理します。
&File.Source = "C:\Files\Data.txt" //&File は File データタイプ&File.OpenRead()
do while not &File.EOF
ProcessLine(&File.ReadLine())
enddo
&File.Close()
次のメソッドを使用すると、ファイルの内容を JSON または XML 形式にして、SDT または XML 変数として返したり、ロードしたりすることができます。
メソッド |
説明 |
FromJsonFile(File) |
JSON ファイルを開き、内容をパースし、SDT をロードして、ファイルを閉じます。 |
FromXMLFile(File) |
XML ファイルを開き、内容をパースし、SDT をロードして、ファイルを閉じます。 |
次の例では、ファイルの内容は JSON 形式であり、CustomerSDT 変数の構造と互換性があります。
&File.Source = "C:\Files\data.json" //&File は File データタイプ
&CustomerSDT.FromJsonFile(&File) //&CustomerSDT は SDT 変数
注:
Since GeneXus 15 Release 以降のバージョンでは、FromJsonFile と FromXMLFile を使用してエラーチェックの際にオプションでブール値と可変メッセージを返すことができます。
例:
&File.Source = "C:\Files\data.json" //&File は File データタイプ
&Boolean = &CustomerSDT.FromJsonFile(&File, &Message) //&CustomerSDT は SDT 変数
Genexus Tilo RC (X Ev3)
これらのメソッドは
オフライン ネイティブ モバイル アプリケーション上で実行されます。
File データタイプ
Directory データタイプ