0

我有一个与此类似的文本文档:

R.D.    P.N.      X       Y        Rot  Pkg
L5      120910    64.770  98.425   180  SOP8                    
L4      120911   -69.850  98.425   180  SOIC12                    
L10     120911   -19.685  83.820   180  SOIC10                    
L9      120911    25.400  83.820   180  0603                    
L5      120910    62.484  98.425   180  SOP8     
..      ......    ......  ......   ..   .......

我想要两个文本框(标记为XY)从用户那里获取输入(只有正数或负数,可以是小数。例如 -124.893

使用这些文本框,我想在使用后找到字符串中第 3 和第 4 点下的值line.Split(" ");。我想要的值以上的数据集的含义是:

 64.770  98.425 
-69.850  98.425
-19.685  83.820
 25.400  83.820
 62.484  98.425
 ......  ......

有了这些值,我想从XY文本框中获取输入并将其添加到这些值中。因此,如果用户在 X 文本框中输入“10.552”,在 Y 文本框中输入“-140.123”,则新值将是:

 75.322  -41.698
-59.298  -41.698
-9.133   -56.303
 35.952  -56.303
 73.036  -41.698

我想解决的另一个问题与该行是否具有重复的“RD”值有关。因此,在上面的示例中,有行以“L5”开头,需要更改。当找到第二个值时,它将第一个找到的值更改为L5-1,将第二个值更改为L5-2。这不仅限于 2 个值,而是无限量的“-#”。

所以最终的文本看起来像这样(加上和连接在一起)

R.D.    P.N.      X       Y         Rot  Pkg
L5-1    120910    75.322  -41.698   180  SOP8                    
L4      120911   -59.298  -41.698   180  SOIC12                    
L10     120911   -9.133   -56.303   180  SOIC10                    
L9      120911    35.952  -56.303   180  0603                    
L5-2    120910    73.036  -41.698   180  SOP8     
..      ......    ......  ......   ..   .......

问题:

  • 如何从文本框中获取输入(仅负数、正数、小数、数字)并将其添加到字符串中的值,然后将该新值放回字符串中的同一位置?
  • 如何找到已经以相同值开始的行?
    • 找到此行后,如何将“-1”、“-2”、“-3”等连接到值?
4

2 回答 2

1

无需处理文本数据并始终转换数据类型,您可以拥有一个对象,该对象具有从文本文档中解析的强类型数值数据,使用数值数据类型在内存中进行所有计算,然后再次将它们转换为文本以显示值.

对于重复值的编号,您可以Dictionary<string,int>将 RD 值作为键,将值作为它在 RD 列中出现的次数。您可以拥有另一个相同类型的字典,但它会跟踪分配的最后一个数字。当您浏览项目列表以显示它们时,您可以检查字典,从第一个字典中的值中减去一个,将第二个字典中的值加一个,然后将结果连接到 RD 值 ( item.RD += "-"+number)。

于 2011-07-18T19:24:29.350 回答
0

除了@marks 回答我想说的是,在你的具体情况下,你可以有一个数据结构,但你也应该非常注意浮点数。我不知道您需要多高的精度,但是例如在文件中您可以将它们像整数一样存储,因此您的当前值乘以 1000。当用户插入浮点数时,将其乘以 1000,然后添加/减法什么的。当您要向用户显示时,将其除以 1000。

希望这可以帮助。

问候。

于 2011-07-18T19:36:44.687 回答