「アンマネージ」になることなく、この疑似コードを実装する C# の例:
dataRec = dataRec.Key [5] + dataRec.Ptr [5] + CrLf [2];
recSize = sizeof (dataRec); // recSize = 12
aCrLf = CarriageReturn (ASCII 13) + LineFeed (ASCII 10); // define CrLf constant
fs = Open (textFile);
dataRec = "A " + "00001" + aCrLf; // initialize 1st Row
Write (fs, dataRec, recSize * (1 - 1), recsize); // write 1st row at offset 0
dataRec = "AB " + "00002" + aCrLf; // initialize 2nd Row
Write (fs, dataRec, recSize * (2 - 1), recsize); // write 2nd row at offset 12
dataRec = "ABC " + "00003" + aCrLf; // initialize 3rd Row
Write (fs, dataRec, recSize * (3 - 1), recsize); // write 3rd row at offset 24
//
Read (fs, dataRec, recSize * (1 - 1), recsize); // Read 1st row at offset 0
sWork = dataRec; // convert to string.
Console.WriteLine(sWork); // show 1st row
Read (fs, dataRec, recSize * (2 - 1), recsize); // Read 2nd row at offset 12
sWork = dataRec; // convert to string.
Console.WriteLine(sWork); // show 2nd row
Read (fs, dataRec, recSize * (3 - 1), recsize); // Read 3rd row at offset 24
sWork = dataRec; // convert to string.
Console.WriteLine(sWork); // show 3rd row
Close (fs);
DBL、C、または VBA を使用すると、オフセットでの固定長テキスト行の読み取り/書き込み、つまりランダム アクセスが非常に簡単になります。しかし、私が見たバイナリ読み取り/書き込みの C# の例では、「アンマネージ コード」が使用されており、オフセットで CrLf 行ターミネータを使用して読み取り/書き込みテキスト/フラット ファイルを確認した例はありません。