2

実行時に動的に作成される文字列がいくつかあります。

値は、アンダースコア、先頭のゼロ、シーケンス番号の順で生成されます。フォーマットは次のようになります。

_00001  
_00002  
_00003  
_00004

_00098  
_00099  
_00100  
_00101

アンダースコアと先行ゼロを無視して、数値部分を整数として抽出したいと思います。

StringReplaceアンダースコア部分は簡単に削除できますが、値が何であるかを知る方法がないため、数値部分を抽出するにはどうすればよいですか?

そのような関数がどのように機能するかのいくつかの出力例:

_00003= 3
_00098= 98
_00482= 482
_07218= 7218
_14005= 14005
_37585= 37585
_69732=69732

StringReplacePos私が考えていることですが、 を完全に使用する方法について常に確信があるとは限らずPosStringReplaceメソッドが面倒になる可能性があります。

私がする必要があるのは、0ではない最初の数字をチェックすることだけだと思いますが、おそらく私は再び自分自身を混乱させているので、本当にどんなポインタでも大歓迎です.

4

2 に答える 2

13

使用する必要があります

StrToInt(Copy(S, 2))

実際、最初Copy(S, 2)の文字を除くすべての文字を返すSため000030009800482、 などになります。これらは、 を使用して対応する整数に簡単に変換できますStrToInt

于 2013-09-25T17:13:04.027 に答える