-2

ここで多くの投稿を見ましたが、すべてがテキストファイルを行ごとに読み取る方法について語っています..しかし、行ごとに読みたくないので、フィールドごとに行を読みたいです。

私のテキストファイルの例は次のとおりです

受理, 2013/02/22, 20:12, ss123, 1234,1234,1234,失敗*何らかの理由 ,20,500
拒否, 2013/02/22, 20:12, ss123, 1234,1234,1234,失敗*何らかの理由,20,500

私が欲しい出力テキストファイル:

受理, 2013/02/22, 20:12, ss123, 1234,1234,1234,受理,20,500

却下, 2013/02/22, 20:12, ss123, 1234,1234,1234,何らかの理由で,20,500

上記の出力例では、最初に行に Accepted が含まれているかどうかを確認する必要があります。Accepted が含まれている場合は、8 列目 (Failed*Some reason) を Accepted に置き換える必要があります。そうでない場合は、8 列目に理由のみを書き込む必要があります (Some理由) 拒否された理由.. 私の問題を解決できる場合は、事前に感謝します...

次のコードのように考えています..anybuddy plz help me.. enter code here

try

{

 System.IO.TextReader ReadFile = new StreamReader("c:\\ATMLOG.txt");

 System.IO.TextWriter writeFile = new StreamWriter("c:\\DeatailReport.txt");

string line = ReadFile.ReadLine()

while(line!=null)
{

if(line.contains("Accepted")
{

string[] strArr = line.Split(',');
strArr[8]="Accepted";//i wanted to replace 8th column of comma separated text file line with Accepted 
TextWrite.writeln(line);
}
else

{

switch(strArr[8])
{
case "some reasson" : //which reason will be mached that should be write on 8th column of comma separated text file

case "some reasson":

; 
;
;



}

            }
            catch (IOException ex)
            {
                MessageBox.Show(ex.ToString());
            }
4

2 に答える 2

2

フィールドの配列を取得できますString.Split()

string[] strArr = myStr.Split(',');
于 2013-06-03T16:50:01.307 に答える
2

スプリットを実行することさえ気にしません。すべてがそのままでFailed*Some Reason、単に消える必要があるように見えるのでFailed*、置換を実行します。

line = line.Replace("Failed*", "");

もう少し効率的にするには、Accepted.

if (!line.Contains("Accepted"))
{
    line = line.Replace("Failed*", "");
}
于 2013-06-03T16:53:12.433 に答える