文字に1を足すときの処理

解決


よーじ  2010-01-28 16:48:18  No: 37324  IP: 192.*.*.*

Hoge.text が'10'とします。

このHoge.textに1を足す場合
文字型 := IntToStr(StrtoInt(Hoge.text) + 1);
とするしかありませんか?

Str→Int→Srtが無駄に思えてしまうので。

編集 削除
monaa  2010-01-28 18:18:48  No: 37325  IP: 192.*.*.*

無駄かもしれませんが、
それが労力や汎用性を考えるとかなり良い選択になると思います。
速度を求めるならまだまだ改善の余地は有りますが、
汎用性や労力に見合ったものをこれ以上だすのは至難の業だと思います。

編集 削除
Quest  2010-01-28 18:32:41  No: 37326  IP: 192.*.*.*

無理やりやるとするなら
HogeNum: integer;
HogeNum := 10;
HogeNum := HogeNum + 1;
Hoge.Text ;= IntToStr(HogeNum);
のように、数値保存用の変数を用意して計算はそれに対して行い
表示の時にInt→Srtを行うとか。
ただこれも、HogeNumというある意味無駄な変数を使い
その管理をしなければならないので50歩100歩ですけど。
monaaさんの言うとおり、これ以外の状況や仕様などさまざまな要因により
効率の良い方法はいろいろ変わってくるでしょう。

編集 削除
よーじ  2010-01-29 09:06:51  No: 37327  IP: 192.*.*.*

了解しました。

その時々によって良い方法を使用していきたいと思います。

ありがとうございます。

編集 削除
数値専用Edit  2010-01-30 08:32:34  No: 37328  IP: 192.*.*.*

こんなのもあるけど...

http://rakasaka.fc2web.com/delphi/nedit.html

もう解決済なので不要かな?

編集 削除
スパムちゃん  2010-01-30 14:25:30  No: 37329  IP: 192.*.*.*

文字と文字を引数にして、文字を帰す、関数を作るってのは?

Memo1.Lines.Add( MojiCala(Hoge.text,'1') );

ってかんじに。

まぁ、作った関数内で、文字を数値に変換して、足して、戻り値にしているだけですが。

編集 削除