Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 将空格分隔的字符串导入整数_Arrays_Xml_String_Delphi_Integer - Fatal编程技术网

Arrays 将空格分隔的字符串导入整数

Arrays 将空格分隔的字符串导入整数,arrays,xml,string,delphi,integer,Arrays,Xml,String,Delphi,Integer,我有一个XML文件,可以从中提取一个字符串到备忘录中。字符串由空格分隔,例如“1 2 3 4 5 1223 2334 34 2 1”,但可以是作为单个字符串存储的数万个数字。 XML文件是使用XML数据绑定wiz导入的 我已经尝试了以下代码 这部分似乎可以把字符串写进备忘录 var Joint: IXMLJointType; Torques: MyArrayType; begin Joint := GetJoint(XMLDocument1); Memo1.Lin

我有一个XML文件,可以从中提取一个字符串到备忘录中。字符串由空格分隔,例如“1 2 3 4 5 1223 2334 34 2 1”,但可以是作为单个字符串存储的数万个数字。 XML文件是使用XML数据绑定wiz导入的

我已经尝试了以下代码

这部分似乎可以把字符串写进备忘录

var
    Joint: IXMLJointType;
    Torques: MyArrayType;
begin
    Joint := GetJoint(XMLDocument1);
    Memo1.Lines.DelimitedText := (Joint.Torquearray[0]); //import xml string to memo
这部分我似乎无法工作。。。将字符串拆分为整数

    for I := 1 to Memo1.Lines.Count do
    begin
      Torques[I] := (strtoint(Memo1.Lines.Text)); //import strings to array as ints
  end;
编辑:这会引发一个错误,显示以“不是有效整数”结尾的字符串的垂直列表,例如


这些整数是我想用于绘图的传感器输出。

除了Ken提到的范围问题之外,您正在尝试转换备忘录中的整个文本,而不是每一行。这应该起作用:

for I := 0 to Memo1.Lines.Count - 1 do
begin
  Torques[I+1] := (strtoint(Memo1.Lines[I])); //import strings to array as ints
end;

你至少应该说明当它“不起作用”时它会做什么。至少,您需要将I:=0的
更改为Memo1.Lines.Count-1 do
谢谢Ken,我的问题已经修改。Ken,关于范围错误,您是正确的。谢谢。为了获得更好的性能,请使用
TStringList
而不是
TMemo
来拆分整数。如果要显示它们,可以在之后将
TStringList
分配给
TMemo
。您尝试转换备忘录中的整个文本是正确的。谢谢你的帮助。
for I := 0 to Memo1.Lines.Count - 1 do
begin
  Torques[I+1] := (strtoint(Memo1.Lines[I])); //import strings to array as ints
end;