2013-05-31 131 views
0

我有一个字符串被读入,然后输出到一个CSV文件,里面有一个逗号。该字符串是CSV文件分隔

美国,B & w^1-25

所有我想要的是该字符串停留在一个特定的细胞,而不是被分成两个不同的细胞。这可能有一个简单的答案,但是我很难完成此任务。任何帮助将非常感激。这里是我的输出代码,如果需要任何人想看看它...

public void printAll() 
    { 
     output2.WriteLine("All companies in order of sequence number, THIS IS OUTPUT 2!"); 
     output2.WriteLine("___________________________________________________________________________________________"); 
     int i = listHead2; 

     //Loops until the end of the list, printing out info 
     while (i != -1) 
     { 
      output2.WriteLine("{0}" + ", {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}, {12}, {13}, {14}, {15}, {16}, {17}, {18}, {19}, {20}, {21}, {22}, {23}, {24}, {25}, {26}, {27}, {28}, {29}, {30}, {31}, {32}, {33}, {34}, {35}", 
       leaseName2[i], fieldName2[i],reservoir2[i], operator2[i], county2[i], state2[i], majo2[i], resvCatgory2[i], disRate2[i], netOil2Int2[i], netGas2Int2[i], workingInt2[i], grossWells2[i] 
       ,ultOil2[i], ultGas2[i], grossOil2[i], grossNGL2[i], grossGas2[i], netOil2[i], netGas2[i], netNGL2[i], revToInt2[i], operExpense2[i], totInvest2[i], revOil2[i], revGas2[i], operatingProfit2[i], 
      revNGL2[i], discNetIncome2[i], seqNum2[i], wellID2[i], incASN2[i], lifeYears2[i], ownQual2[i], prodTax2[i], AdValorem2Tax2[i]); 
      i = pointers2[i]; 
     } 
    } 

谢谢。

回答

3

你可以创建一个小方法,所列的字符串:

public string QuoteString(string input) 
{ 
    return "\"" + input.Replace("\"", "\"\"") + "\""; 
} 

然后,您可以使用此类似:

QuoteString(leaseName2[i]), QuoteString(fieldName2[i]),... 

祝您的代码。

+0

这很好,非常感谢。 – Stock

+0

对不起,也许你也可以帮忙。如果一个字符串有多个逗号,比如BROMIDE,HUNTON,MIS怎么办? – Stock

+0

引号处理逗号,它只是一个字段中的“BROMIDE,HUNTON,MIS” – Casperah

3

您可以尝试用双引号括住该字段:“USA,B & W 1-25”这应该会导致字符串被视为一列。

+0

+1这是正确的。请参阅[此答案](http://stackoverflow.com/a/769713/4525)以获得更完整的解决方案。 – harpo

+0

@Erik Schierboom对不起,我不清楚,这是从一个文件和许多不同的字符串中读入的,就像这个可能有逗号的我不想分开的字符串。 – Stock

+0

@Stock那就意味着问题出在你的源文件中。源文件没有围绕该字段的引号? –

0

CSV文件不一定需要用逗号分隔。如果有帮助,你可以使用分号分隔。