全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1703
推到 Plurk!
推到 Facebook!

小写转大写

答題得分者是:Stallion
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-07-30 21:09:37 IP:222.184.xxx.xxx 訂閱
function Changdx2(mmje: Double): String;
const s1: String = '零壹贰叁肆伍陆柒捌玖';
s2: String = '分角元拾佰仟万拾佰仟亿拾佰仟万';

function StrTran(const S, S1, S2: String): String;
begin
Result := StringReplace(S, S1, S2, [rfReplaceAll]);
end;
var s, dx: String;
i, Len: Integer;
begin
if mmje < 0 then
begin dx := '负';
mmje := -mmje;
end;
s := Format('%.0f', [mmje*100]);
Len := Length(s);
for i := 1 to Len do
dx := dx Copy(s1, (Ord(s[i]) - Ord('0'))*2 1, 2) Copy(s2, (Len - i)*2 1, 2);
dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零仟', '零'), '零佰', '零'), '零拾', '零'), '零角', '零'), '零分', '整');
dx := StrTran(StrTran(StrTran(StrTran(StrTran(dx, '零零', '零'), '零零', '零'), '零亿', '亿'), '零万', '万'), '零元', '元');
if dx = '整' then Result := '零元整'
else Result := StrTran(StrTran(dx, '亿万', '亿零'), '零整', '整');
end;


这是一段小写转大写函数,直接放到单元中就好用了,但我在想,按常规应该放在 private { Private declarations } 中,比如我的FORM叫 printform 那么如何放呢,这个函数怎么有两个的。
------
我的编程起步于ktop,我将永远支持ktop
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-07-30 21:43:16 IP:211.22.xxx.xxx 未訂閱
何必一定要成為類別的成員函式?跟類別有關係的才放在類別裡,類別可以提供給外部使用的放在public下,提供類別內部使用的放在private下,提供內部以及friend使用的放在protected下!
強制把不是很有關的函式放在類別裡面是不必要的!況且用起來只有那個類別本身好用,其他地方用起來不好用就不好了~成為獨立的函式又有何妨!為賦新詞強說愁會很累。
ntjrr
高階會員


發表:240
回覆:312
積分:110
註冊:2005-04-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-07-30 21:56:46 IP:222.184.xxx.xxx 訂閱
前辈,我本想是其它单元要调用一下这个,当然再在其它单元放一下这个函数也一样,但如果用的单元多了,就要放好几个,呵呵
本来按常规
public
{ Public declarations }
function Changdx2(mmje: Double): String;
但他还有一个函数,有两个了,都写在上面又不好运行。


------
我的编程起步于ktop,我将永远支持ktop
Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-07-30 22:03:16 IP:211.22.xxx.xxx 未訂閱
1.不是兩個,是inline函數。
2.將該函數寫成獨立的檔案後,要用到這個函數的類別直接uses不就得了!
===================引 用 ntjrr 文 章===================
前辈,我本想是其它单元要调用一下这个,当然再在其它单元放一下这个函数也一样,但如果用的单元多了,就要放好几个,呵呵
本来按常规
public
{ Public declarations }
function Changdx2(mmje: Double): String;
但他还有一个函数,有两个了,都写在上面又不好运行。


系統時間:2024-05-18 22:56:00
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!