0

これまでの私のコードは次のとおりです。

string _nextLine;
string[] _columns;
char[] delimiters;

delimiters = "|".ToCharArray();

using (StreamReader _reader = ...)
{
    _nextLine = _reader.ReadLine();

    while (_nextLine != null)
    {
        _columns = _nextLine.Split(delimiters);
        JazzORBuffer.AddRow();
        JazzORBuffer.Server = _columns[0];
        JazzORBuffer.Country = _columns[1];
        JazzORBuffer.QuoteNumber = _columns[2];
        _nextLine = _reader.ReadLine();
    }
}

ファイルの最初の 5 行は次のようになります。

x と y の間に作成された PRODUCTS

列 1 ヘッダー | 列 2 ヘッダー | カラム 3 ヘッダー | 列 4 ヘッダー |

ウェンディ Z| デイブ | ジョン | ジョン | スティーブ |

最後の 3 行は次のようになります。

ウェンディ Z| デイブ | ジョン | ジョン | スティーブ |

製品の総数| 49545

ファイルの最初の 3 行と最後の行が無視されるようにするには、コードで何を変更する必要がありますか?

4

1 に答える 1

4

この質問を100%理解できるかどうかはわかりませんが、次のことを試してください。

string[] lines = File.ReadAllLines("FilePath");
string[] _columns;

//Start at index 2 - and keep looping until index Length - 2
for (int i = 2; i < lines.Length - 2; i++)
{
    _columns = lines[i].Split('|');
    JazzORBuffer.AddRow();
    JazzORBuffer.Server = _columns[0];
    JazzORBuffer.Country = _columns[1];
    JazzORBuffer.QuoteNumber = _columns[2];
}

注-これにより、ファイル全体を一度にメモリに読み込むことで、実行しているパフォーマンスが変わります。非常に大きなファイルの場合、パフォーマンスが低下する可能性があります。もしそうなら、そう言ってください:)

于 2012-05-14T14:39:57.800 に答える