【问题标题】:Getting array from .Net parm method从.Net parm 方法获取数组
【发布时间】:2015-05-15 11:02:08
【问题描述】:

我正在尝试使用 .Net 类 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();

} }

【问题讨论】:

标签: .net axapta dynamics-ax-2012


【解决方案1】:

因为TextFieldParser.ReadLine() 应该返回单个字符串(如此处所述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.aspxTextFieldType默认值是FieldType.Delimited,所以不需要设置。

【讨论】:

  • 谢谢。顺便说一句,set_TextFieldType 方法要求一个 AX FieldType 枚举,这似乎不正确
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-29
  • 1970-01-01
  • 1970-01-01
  • 2015-03-02
  • 1970-01-01
  • 1970-01-01
  • 2018-11-19
相关资源
最近更新 更多