如何拆分给定的文本 [英] How to split the given text

查看:48
本文介绍了如何拆分给定的文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

更快,WW0011,CTR,REURN,ALT TUBING HELIUM LEAK,DEFAULT测试,1,3.81,测试



我需要得到结果以下行为

Arr(0)=更快

Arr(1)= WW0011

Arr(2)= CTR,REURN,ALT TUBING氦气泄漏

Arr(3)=默认测试

Arr(4)=更快

Arr(5)= 1

Arr(6)= 3.81

Arr(7)=测试

我尝试使用拆分,但问题出在Arr(2)任何人都可以请给我解决方案

解决方案

从这里开始: http://stackoverflow.com/questions/736629/parse-delimited-csv-in-net [ ^ ]


使用 Microsoft.VisualBasic.FileIO.TextFieldParser class:



 TextFieldParser解析器=  new  TextFieldParser( new  StringReader(csvAsString)); 

// 或从文件中读取
// TextFieldParser parser = new TextFieldParser(mycsvfile.csv);

解析器。 HasFieldsEnclosedInQuotes = true ;
parser.SetDelimiters( );

string [] splitStrings;

while (!parser.EndOfData)
{
fields = parser.ReadFields();
foreach (splitString in splitStrings)
{
Console.WriteLine (splitString);
}
}
// 不要忘记清理
parser.Close();


 私人 功能 splitQuotedLine( ByVal  line  As  字符串 ByVal  delimeter  As   Char  As   String ()
Dim 列表作为 列表( Of String

< span class =code-keyword> while line.IndexOf(delimeter)<> -1
如果 line.StartsWith( 然后
line = line.Substring( 1
Dim idx 作为 整数 = line.IndexOf(
while line.IndexOf( ,idx)= line.IndexOf( < span class =code-string> ,idx)
idx = line.IndexOf( < span class =code-string> ,idx)+ 2
结束
idx = line.IndexOf( ,idx)
list.Add(line.Substring( 0 ,idx))
line = line.Substring(idx + 2
否则
list.Add(line.Substring( 0 ,Math.Max(line.IndexOf(delimeter), 0 )))
line = line .Substring(line.IndexOf(delimeter)+ 1
结束 如果
循环
list.Add(line)
返回 list.ToArray
结束 功能


FASTER,WW0011,"CTR ,REURN,ALT TUBING HELIUM LEAK",DEFAULT test,1,3.81,test

I need to get the result of the following line as
Arr(0) =faster
Arr(1) =WW0011
Arr(2) =CTR ,REURN,ALT TUBING HELIUM LEAK
Arr(3) =DEFAULT test
Arr(4) =faster
Arr(5) = 1
Arr(6)=3.81
Arr(7) = test
I tried using split, but the problem is on Arr(2) could anyone please give me a solution

解决方案

Start here : http://stackoverflow.com/questions/736629/parse-delimited-csv-in-net[^]


Use the Microsoft.VisualBasic.FileIO.TextFieldParser class:

TextFieldParser parser = new TextFieldParser(new StringReader(csvAsString));

// or read from the file
// TextFieldParser parser = new TextFieldParser("mycsvfile.csv");

parser.HasFieldsEnclosedInQuotes = true;
parser.SetDelimiters(",");

string[] splitStrings;

while (!parser.EndOfData)
{
    fields = parser.ReadFields();
    foreach (splitString in splitStrings)
    {
        Console.WriteLine(splitString);
    }
} 
//Don't forget cleanup
parser.Close();


Private Function splitQuotedLine(ByVal line As String, ByVal delimeter As Char) As String()
Dim list As New List(Of String)

    Do While line.IndexOf(delimeter) <> -1
        If line.StartsWith("""") Then
            line = line.Substring(1)
            Dim idx As Integer = line.IndexOf("""")
            While line.IndexOf("""", idx) = line.IndexOf("""""", idx)
                idx = line.IndexOf("""""", idx) + 2
            End While
            idx = line.IndexOf("""", idx)
            list.Add(line.Substring(0, idx))
            line = line.Substring(idx + 2)
        Else
            list.Add(line.Substring(0, Math.Max(line.IndexOf(delimeter), 0)))
            line = line.Substring(line.IndexOf(delimeter) + 1)
        End If
    Loop
    list.Add(line)
    Return list.ToArray
End Function


这篇关于如何拆分给定的文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆