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

轉特殊日期與取值的方法

尚未結案
starbox520
一般會員


發表:1
回覆:0
積分:0
註冊:2017-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2017-03-13 17:40:39 IP:60.249.xxx.xxx 未訂閱
問題1 : Fri Mar 10 02:42:09 2016 這個日期我想轉成 2016-03-10 02:42:09
有找過資料,好像是 dddd*mmm*dd*hh**nn*ss*yyyy 就會變成這種樣子
但因為目前是字串要轉成dddd*mmm*dd*hh**nn*ss*yyyy 在轉成yyyy-mm-dd hh:nn:ss
不曉得要怎麼做才好...

問題2 : 下面字串分割
1 7 DDR033-16 1 0 21000 671-0000-11 CR= 6. 2. 1 Lew 6300 00000005 總長度為105
已找到我發現的規則格式區分為3, 4, 11, 8, 9, 9, 14, 16, 9, 8, 14 <- 這裡指長度,ex:長度0-3 為 1 , 3-7為 7...以此類推

這邊分割結果會變成A=1, B=7, C=DDR033-16, D=1, E=0,F=21000,G=671-0000-11 ,H=CR= 6. 2. 1,I=Lew,J= 6300,K=00000005
總共會用A - K去取代分割出來的值
PS:這邊有想過直接用空格去判斷下一格,但後來發現資料會出現欄位是空格的,若以此方法去分割,會lose掉


------
新手上路請多指教
pedro
尊榮會員


發表:152
回覆:1176
積分:865
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2017-03-14 09:19:26 IP:211.75.xxx.xxx 未訂閱
Hi starbox520,

底下提供你思路方向
1. 把前面日期先轉成存在"日期型態"的變數, 之後再以後面那個格式化輸出日期。
2.把字串先整理成可以用空白去切割,也就是那些不想在使用切割功能時被切掉的空白都替換成非空格

===================引 用 starbox520 文 章===================
問題1 : Fri Mar 10 02:42:09 2016 這個日期我想轉成 2016-03-10 02:42:09
有找過資料,好像是 dddd*mmm*dd*hh**nn*ss*yyyy 就會變成這種樣子
但因為目前是字串要轉成dddd*mmm*dd*hh**nn*ss*yyyy 在轉成yyyy-mm-dd hh:nn:ss
不曉得要怎麼做才好...

問題2 : 下面字串分割
1 7 DDR033-16 1 0 21000 671-0000-11 CR= 6. 2. 1 Lew 6300 00000005 總長度為105
已找到我發現的規則格式區分為3, 4, 11, 8, 9, 9, 14, 16, 9, 8, 14 <- 這裡指長度,ex:長度0-3 為 1 , 3-7為 7...以此類推

這邊分割結果會變成A=1, B=7, C=DDR033-16, D=1, E=0,F=21000,G=671-0000-11 ,H=CR= 6. 2. 1,I=Lew,J= 6300,K=00000005
總共會用A - K去取代分割出來的值
PS:這邊有想過直接用空格去判斷下一格,但後來發現資料會出現欄位是空格的,若以此方法去分割,會lose掉


P.D.
版主


發表:571
回覆:3878
積分:3665
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2017-03-14 11:31:15 IP:118.160.xxx.xxx 未訂閱
1. 不管系統日期格式如何,
透過指令改變成如下, 取出來的都是 "2017/03/14", 再來取日期就方便多
(以下語法適用 Delphi版本, XE版本另有其他寫法)
// 設定日期格式
LongTimeFormat:= 'HH:mm:ss';
ShortDateFormat:='yyyy/MM/dd';
DateSeparator:='/';

2. 取到的 105Bytes 字串, 已知每一段落的截止點的話(1,4,11...)
不妨在第一組字串取完後, 即把該已取字串刪除, 這樣取法就會變簡單多
例如s:= 'aaa bbb ccc ddd' 要 1, 5, 8
s1 := copy(s, 1, 3) 結果 s1 := 'aaa'
s:= delete(s, 1, 4) => 4是含 333 後的一組空白, 結果 s:= 'bbb ccc ddd'
再來取其他值
有很多做法, 這只是其中一種, 還有用 copy(....) 等等, 你可以自行試試看

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