从 .Net parm 方法获取数组
Getting array from .Net parm method
我正在尝试使用 .Net class Microsoft.VisualBasic.FileIO.TextFieldParser 读取 csv。我遇到的问题是变量 netArray 的值似乎被设置为单个字符串,而没有将值拆分为单独的数组条目。知道为什么会发生这种情况吗?
int counter, xppArrayLength;
str xppValue;
str arr[];
System.String[] netArray;
System.String[] delimeters = new System.String[1]();
Microsoft.VisualBasic.FileIO.TextFieldParser parser = new Microsoft.VisualBasic.FileIO.TextFieldParser(myPath);
delimeters.SetValue(",",0);
parser.set_Delimiters(delimeters);
parser.set_HasFieldsEnclosedInQuotes(true);
netArray = parser.ReadLine();
while(netArray.get_Length())
{
xppArrayLength = netArray.get_Length();
for(counter = 1; counter <= xppArrayLength; counter++)
{
xppValue = netArray.GetValue(counter-1);
arr[counter] = xppValue;
}
netArray = parser.ReadLine();
}
}
因为 TextFieldParser.ReadLine()
应该 return 一个字符串(如此处记录 https://msdn.microsoft.com/en-us/library/6a8fts4w%28v=vs.90%29.aspx)
你应该做 parser.ReadFields()
(https://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.readfields%28v=vs.110%29.aspx)
您还没有设置 TextFieldType = FieldType.Delimited
(如此处记录 https://msdn.microsoft.com/en-us/library/63k8k5sx%28v=vs.90%29.aspx) TextFieldType
默认值为 FieldType.Delimited
,所以不需要设置。
我正在尝试使用 .Net class Microsoft.VisualBasic.FileIO.TextFieldParser 读取 csv。我遇到的问题是变量 netArray 的值似乎被设置为单个字符串,而没有将值拆分为单独的数组条目。知道为什么会发生这种情况吗?
int counter, xppArrayLength;
str xppValue;
str arr[];
System.String[] netArray;
System.String[] delimeters = new System.String[1]();
Microsoft.VisualBasic.FileIO.TextFieldParser parser = new Microsoft.VisualBasic.FileIO.TextFieldParser(myPath);
delimeters.SetValue(",",0);
parser.set_Delimiters(delimeters);
parser.set_HasFieldsEnclosedInQuotes(true);
netArray = parser.ReadLine();
while(netArray.get_Length())
{
xppArrayLength = netArray.get_Length();
for(counter = 1; counter <= xppArrayLength; counter++)
{
xppValue = netArray.GetValue(counter-1);
arr[counter] = xppValue;
}
netArray = parser.ReadLine();
} }
因为 TextFieldParser.ReadLine()
应该 return 一个字符串(如此处记录 https://msdn.microsoft.com/en-us/library/6a8fts4w%28v=vs.90%29.aspx)
你应该做 parser.ReadFields()
(https://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.readfields%28v=vs.110%29.aspx)
您还没有设置 TextFieldType = FieldType.Delimited
(如此处记录 https://msdn.microsoft.com/en-us/library/63k8k5sx%28v=vs.90%29.aspx)TextFieldType
默认值为 FieldType.Delimited
,所以不需要设置。