轉特殊日期與取值的方法 |
尚未結案
|
starbox520
一般會員 發表:1 回覆:0 積分:0 註冊:2017-03-13 發送簡訊給我 |
問題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 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
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.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
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(....) 等等, 你可以自行試試看 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |