最近のアクセス:
File データタイプ: テキストファイルの処理

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) が使用されます。

例 I

この例では、html 拡張子を持つファイルを検索し、その内容をデータベースにロードします。ファイルをスキャンするため、&File 変数 (File データタイプに基づく) および &Directory 変数 (Directory データタイプに基づく) を使用し、その後 ReadAllText メソッドを使用してファイルの内容をデータベースにダンプします。
For &File in &Directory.GetFiles("*.html")
   New
      ContentHtml = &File.ReadAllText()
   EndNew
​EndFor

例 II

この例では、ビジネスコンポーネントからのデータを使用してログファイルが書き出されます。
&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。このプロパティを使用する前に、ファイルが読み取り権限で開かれている必要があります。

例 III

ファイルを行単位で処理します。
&File.Source = "C:\Files\Data.txt" //&File は File データタイプ&File.OpenRead()
do while not &File.EOF
    ProcessLine(&File.ReadLine())
enddo
&File.Close()

FromJsonFile メソッドおよび FromXMLFile メソッド 

次のメソッドを使用すると、ファイルの内容を JSON または XML 形式にして、SDT または XML 変数として返したり、ロードしたりすることができます。
メソッド 説明
FromJsonFile(File) JSON ファイルを開き、内容をパースし、SDT をロードして、ファイルを閉じます。
FromXMLFile(File) XML ファイルを開き、内容をパースし、SDT をロードして、ファイルを閉じます。

例 IV

次の例では、ファイルの内容は 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)

適用範囲

オブジェクト: Procedure オブジェクトTransaction オブジェクトWeb Panel オブジェクト
言語 .NET、Java、Ruby
適用対象 Web、スマートデバイス
これらのメソッドはオフライン ネイティブ モバイル アプリケーション上で実行されます。

参考情報

File データタイプ
Directory データタイプ
   


サブページ
Created: 15/01/07 22:49 by Admin Last update: 23/02/19 15:54 by Admin
カテゴリ
Powered by GXwiki 3.0