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

向右對齊不足補空格

 
MidasFan
一般會員


發表:41
回覆:22
積分:12
註冊:2004-06-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-12-26 16:34:24 IP:60.248.xxx.xxx 訂閱
請教各位先進!
我現在有一個資料格式長度為32的字串
用來存我的訂單編號
格式為訂單編號要向右對齊,剩下不足的部份
補上0
ex: 訂單編號:112233
=>0000 0000 0000 0000 0000 0000 0000 112233
當然訂單編號長度並非均為4碼
不知道各位先進有什麼好方式....
Tks


Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-12-26 17:37:36 IP:220.130.xxx.xxx 訂閱
如果確定空間一定為32,
那麼...
利用Length取得整個字串長度,
將32-長度就是前面要補多少空白或零
再省事一點..用format格式化..
要快速也是有快速的方法啦..(略)
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
Stallion
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-12-26 23:40:14 IP:211.22.xxx.xxx 未訂閱
笨方法,直接快速!

var
aTotal,aNumber,aString:String;
begin
aTotal := '00000000000000000000000000000000';
aNumber := '112233';
aString := LeftBStr(aTotal,Length(aTotal)-Length(aNumber)) aNumber;
ShowMessage(aString);
end;
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-12-26 23:43:10 IP:203.73.xxx.xxx 訂閱
先敗啊..什麼都戳破就不好玩了..XD
我是用StrMove作出跟你一樣的效果..XD
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-12-27 08:18:29 IP:210.65.xxx.xxx 未訂閱
插一下花!另一種方法:
不管三七二十一,在原字串前加上長度 32 內容皆為 0 的字串後,取右邊 32 個字元
使用函數
StringOfChar --> uses System
RightStr --> uses StrUtils


Fishman
------
Fishman
MidasFan
一般會員


發表:41
回覆:22
積分:12
註冊:2004-06-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-12-27 12:34:47 IP:61.222.xxx.xxx 訂閱
謝謝各位的回答,那想請教填0用各位所說的方式,如果填入的是空格也可以這樣做嗎?謝謝喔

Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2006-12-27 12:39:19 IP:220.130.xxx.xxx 訂閱
把0換成你要的字元就好了,這應該不是什麼大問題。
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
MidasFan
一般會員


發表:41
回覆:22
積分:12
註冊:2004-06-03

發送簡訊給我
#8 引用回覆 回覆 發表時間:2006-12-27 13:57:16 IP:61.222.xxx.xxx 訂閱
我是用Delphi5好像沒有LeftBStr這一個Fuction耶
那我應該怎麼做
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2006-12-27 14:30:03 IP:220.130.xxx.xxx 訂閱
StrMove應該有吧
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
MidasFan
一般會員


發表:41
回覆:22
積分:12
註冊:2004-06-03

發送簡訊給我
#10 引用回覆 回覆 發表時間:2006-12-27 14:48:48 IP:61.222.xxx.xxx 訂閱
有呀!你可以給我完整的程式碼嗎? 謝謝喔
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#11 引用回覆 回覆 發表時間:2006-12-27 14:56:06 IP:220.130.xxx.xxx 訂閱
程式不難,為什麼不試著自己寫寫看?help也告訴你StrMove該怎麼用了
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
MidasFan
一般會員


發表:41
回覆:22
積分:12
註冊:2004-06-03

發送簡訊給我
#12 引用回覆 回覆 發表時間:2006-12-27 15:00:17 IP:61.222.xxx.xxx 訂閱
function StrMove(Dest: PChar; const Source: PChar; Count: Cardinal): PChar;
Help我看的懂,只是我寫出時有錯誤,因為在help中傳入值是PChar而我的程式要傳入的是字串
所以我不懂你的意思是要怎麼要用strMove去做,才會要妳寫出你的程式碼,並非我懶不想去試
謝謝
Coffee
版主


發表:31
回覆:878
積分:561
註冊:2006-11-15

發送簡訊給我
#13 引用回覆 回覆 發表時間:2006-12-27 15:03:12 IP:220.130.xxx.xxx 訂閱
typecast it?
PChar(aString)
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。
為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。
在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
MidasFan
一般會員


發表:41
回覆:22
積分:12
註冊:2004-06-03

發送簡訊給我
#14 引用回覆 回覆 發表時間:2006-12-27 15:16:42 IP:61.222.xxx.xxx 訂閱
Fishman你的方法好用多了!謝了
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#15 引用回覆 回覆 發表時間:2006-12-27 18:25:00 IP:218.170.xxx.xxx 訂閱
如果是以C來寫的話。
wsprintf(buffer, "2d", i);
這樣就做到你要的功能了。
edwardloh717
一般會員


發表:0
回覆:1
積分:0
註冊:2006-12-28

發送簡訊給我
#16 引用回覆 回覆 發表時間:2006-12-28 07:29:59 IP:211.21.xxx.xxx 訂閱
Function Strz(num:integer;len:integer):String;
begin
result:=IntToStr(num);
result:=copy(repl('0',len),1,len-Length(Result)) result;
end;

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