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     
..      ......    ......  ......   ..   .......

ユーザーからの入力を受け取る2つのテキストボックス(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
 ......  ......

これらの値を使用して、XおよびYテキストボックスから入力を取得し、これらの値に追加したいと思います。したがって、ユーザーが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

私が解決したいもう1つの問題は、行に重複する「RD」値があるかどうかに関係しています。したがって、上記の例では、変更が必要な「L5」で始まる2つの行があります。2番目の値が見つかると、最初に見つかった値がL5-1に変更され、2番目の値が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列に表示される回数として指定できます。最後に割り当てられた番号を追跡することを除いて、同じタイプの別の辞書を持つことができます。アイテムのリストを調べてそれらを表示するときは、ディクショナリをチェックし、最初のディクショナリの値から1を減算し、2番目のディクショナリの値に1を加算して、結果をRD値(item.RD += "-"+number)に連結できます。

于 2011-07-18T19:24:29.350 に答える
0

@marksの回答に加えて、特定のケースではデータ構造を使用できますが、浮動小数点数にも十分注意する必要があります。どれだけ高い精度が必要かはわかりませんが、たとえばファイルに整数のように格納できるため、現在の値に1000を掛けます。ユーザーが浮動小数点数を挿入すると、1000を掛けてadd/の後に減算など。ユーザーに表示する場合は、1000で割ります。

お役に立てれば。

よろしく。

于 2011-07-18T19:36:44.687 に答える