線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1537
推到 Plurk!
推到 Facebook!

轉出文字檔時如何指定起始位置與長度

尚未結案
Paicaso
中階會員


發表:140
回覆:124
積分:52
註冊:2002-09-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-27 18:00:49 IP:61.59.xxx.xxx 未訂閱
請問我育轉出許多內容於文字檔,且每一內容由用戶指定起始位置與長度 如 字串STR1,STR2... 起始位置S1,S2... 長度L1,L2...    Writeln(TF,STR1,????這裡不知該如何寫,STR2....) 請教各位先進
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-27 18:13:44 IP:202.39.xxx.xxx 未訂閱
用 Copy 函式 自 STR1 字串的 S1 開置開始取出 L1 長度: Copy(STR1, S1, L1); --- Everything I say is a lie.
flyinwuhan
一般會員


發表:0
回覆:1
積分:0
註冊:2003-10-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-27 22:47:45 IP:211.98.xxx.xxx 未訂閱
Writeln( TF,Copy(STR1, min(S1,1), min(L1,Length(STR1-S1) ) ); 用min是为了防止用户输入的数值不符合规范。例如S1或L1大于STR1的长度。
Paicaso
中階會員


發表:140
回覆:124
積分:52
註冊:2002-09-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-28 00:00:20 IP:61.59.xxx.xxx 未訂閱
Sorry!可能我表達有些錯誤 我的意思是 如欲寫入 字串ABC,起始位置=1,長度=4 字串DEFG,起始位置=6,長度=4 字串HIJKL,起始位置=11,長度=10 結果如 ABC DEFG HIJKL 12345678901234567890 用Writeln不知該如何寫
Skyer
高階會員


發表:43
回覆:111
積分:120
註冊:2002-04-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-28 03:18:07 IP:61.219.xxx.xxx 未訂閱
感覺您的問題是像格式化字串. 在 Delphi 可用 Format 這個 function fstr = Format("%4s%5s%6s", "aaa", "bbb", "ccc); 因為手邊沒 Delphi, 沒法試 有錯,請各位幫忙改正 ^^b -- Regards, Skyer
------
--
Regards,
Skyer
Paicaso
中階會員


發表:140
回覆:124
積分:52
註冊:2002-09-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-29 00:43:07 IP:61.59.xxx.xxx 未訂閱
再請問 1.用write如何在最後換行 2.有無關於Format("%4s%5s%6s",這一段之參考資訊 因為我想可能需要Skyer所提及之方式 thanks
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-10-29 03:56:03 IP:203.222.xxx.xxx 未訂閱
1.用 writeln 就是會自動換行, 會在最後加上換行符號 2. 先將你的字串, 依照格式串起來, 全部存到同一個 string 中, 然後 writeln(UrFile,UrString); UrString = Str1 Str2 Str3 = 'ABC ' 'DEFG ' 'HIJKL ' = 'ABC DEFG HIJKL ' 發表人 - syntax 於 2003/10/29 03:59:16
Paicaso
中階會員


發表:140
回覆:124
積分:52
註冊:2002-09-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-10-29 20:16:53 IP:61.59.xxx.xxx 未訂閱
我主要是做一個設定有轉出欄位,,起始位置,長度之轉出文字檔,如 以前在VB上我是用Print
hungyulin
一般會員


發表:36
回覆:33
積分:13
註冊:2003-10-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-10-30 10:52:25 IP:203.70.xxx.xxx 未訂閱
提供一個自己寫的小函數給你參考,在組合字串時還算好用: {*********************************************************************   FixStr 可傳回一個固定長度的字串,並可設定填充的字元及填充的方向(頭、尾)。   備註 1.xStr  傳入之原字串。        2.xChar 欲填充之字元。        3.atFirst 填充方向之判斷。(True 頭、False 尾)        4.xLen  長度。   Example        FixStr('BB','0',False,10)        回傳值為  'BB00000000'        FixStr('BB',' ',False,10)        回傳值為  'BB        ' *********************************************************************} Function FixStr(xStr,xChar:String;atFirst:Boolean;xLen:Integer):String; var   tmpStr:String;   i:Integer; begin   if atFirst then   begin     for i:=Length(xStr) to (xLen-1) do       xStr:=xChar+xStr;   end   else   begin     for i:=Length(xStr) to (xLen-1) do       xStr:=xStr+xChar;   end;   Result:=xStr; end;    希望這對你有所幫助
Paicaso
中階會員


發表:140
回覆:124
積分:52
註冊:2002-09-04

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-11-05 02:12:40 IP:61.59.xxx.xxx 未訂閱
感謝各位不吝指教 埠過這些應該都只能單一字串 如我亦用過hungyulin所提及之填補起始字元與往後補滿長度 但應還有第二等字串, 所以我還必須想想法子 不過還是謝謝各位 如果有更好之方式希望能不吝指教 為避免該問提懸掛太久,只好先與結案 每一位提供小弟想法理應都與給分 還是謝謝各位
系統時間:2024-05-04 17:34:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!