ผู้เขียน หัวข้อ: // String \\  (อ่าน 5387 ครั้ง)

0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้

ออฟไลน์ Svl2Nuk3

  • Hero Member
  • *****
  • กระทู้: 793
  • Respect: 0
    • ดูรายละเอียด
// String \\
« เมื่อ: สิงหาคม 31, 2009, 16:23:36 PM »
0
เมื่อก่อนเคยใช้ฟังก์ชันพวก  sub string   หรือ  split string 
แต่พอมาเขียน  report บางครั้งจะใช้พวกนี้  แต่ผมหาฟังก์ชันมันไม่เจออ่ะครับ
พอดีไปอ่านเจอกระทู้  ของ อ.นาจ   เกี่ยวกับการเขียนฟังก์ชัน  ก็เลยลองดูครับ Function

อาจเอาไปประยุกต์ใช้กับ report ได้ครับ
เช่น  - การแยกเอาอำเภอ  หรือ  ตำบล  มาแสดง
        - query ข้อมูลโดยการ Concat  แล้วมาแยกสตริง  (ไม่รู้ว่าจะเร็วขึ้นหรือเปล่า)  กำลังจะลองครับ
        - pack  คำสั่งสำหรับ query ใหม่

ฟังก์ชัน Sub str
รับค่า  String  กับตำแหน่งเริ่มต้นกับสุดท้ามา   แล้วก็รีเทิน  sub string 
โค๊ด: [Select]
function substr(str:String;s_index:Integer;e_index:Integer):String;
begin
    result:=  Copy(str,s_index,e_index-s_index);
end;

ฟังก์ชันแยกสตริง  เรียกใช้ฟังก์ชัน  substr อีกทีครับ
รับค่าสตริง  แล้วอักขระที่ใช้ในการแยก
ตัวอย่างนี้ผมแยกแล้ว pack string  ใหม่  จาก  123,456 
แยก  123  กับ  456  ออกจากกัน  แล้วเปลี่ยนรูปแบบให้เป็น  "123","456"
เวลาเอาไปใช้ต้องแก้ในฟังก์ชันนี้ก่อนนะครับว่าต้องการผลลัพธ์แบบไหน
เพราะผมยังหาวิธีใช้ array  มารับค่าไม่ได้เลยครับ
โค๊ด: [Select]
function splitstr(str,split:String):String;
var i_start,i_end,index:Integer;
    temp,return:String;
begin
i_start:=1;
i_end := Length(str);
return:='';
       for index := 1 to i_end do
       begin
           temp:=substr(str,index,index+1);
           if CompareText(temp,split)=0 then
           begin
                   return := return +'"' + substr(str,i_start,index)+'",';
                   i_start := index +1;
           end;

       end;
       return := return +'"' +substr(str,i_start,i_end+1)+'"';
       
  Result:=return;
       
end;


ปล.  แต่ถ้ามีฟังก์ชันพวกนี้อยู่แล้วก็แนะนำด้วยนะครับ  หาไม่เจอจริง ๆ
ปล.2  ขอบคุณ อ. naj  สำหรับสอนเขียนฟังก์ชันครับ
I'm nuke (นุ๊ก)
My Blog  : http://www.codenuke.net
อดีต นวก.คอมฯ รพช.พรหมพิราม => 1 พ.ค. 52 - 30 ก.ย. 54
ปัจจุบัน : Software Engineer บริษัทแห่งหนึ่ง

ออฟไลน์ thannawe

  • Hero Member
  • *****
  • กระทู้: 2,904
  • Respect: +8
    • ดูรายละเอียด
Re: // String \\
« ตอบกลับ #1 เมื่อ: สิงหาคม 31, 2009, 19:48:07 PM »
0
เก่งจังครับ  ;) เยี่ยมครับ
กิจจา ชาญธัญกรรม
นักวิชาการคอมพิวเตอร์ชำนาญการ รพ.โพธาราม จ.ราชบุรี
็HOSxP XE

ออฟไลน์ naj

  • Hero Member
  • *****
  • กระทู้: 2,449
  • Respect: +8
    • ดูรายละเอียด
    • http://www.luangphopern-hospital.com
Re: // String \\
« ตอบกลับ #2 เมื่อ: กันยายน 01, 2009, 06:26:28 AM »
0
 :) :) :) :) :)
Yindee And Tan

ออฟไลน์ asawincyber

  • Hero Member
  • *****
  • กระทู้: 1,011
  • สู้ต่อไป ทาเกชิ
  • Respect: 0
    • ดูรายละเอียด
    • http://www.okhospital.net
Re: // String \\
« ตอบกลับ #3 เมื่อ: กันยายน 01, 2009, 07:27:45 AM »
0
ความรู้ใหม่  ;D
เสน่ห์  คงมูล (เอก)
โรงพยาบาลองครักษ์ อ.องครักษ์ จ.นครนายก
HOSxP  3.56.2.26  Activate License
Server : DELL T710 Xeon 5500 Ram 64Gb (16 X 4GB) 10600R Centos 5.5 64 bit MySQL 5.5.11 percona By อ.อ็อด
Server : IBM X3400 2.4 Ghz. Ram 4Gb. Centos 5.5 64 bit MySQL 5.5.11 percona By อ.อ็อด

ออฟไลน์ yord

  • Hero Member
  • *****
  • กระทู้: 1,952
  • PATTANI HOSPITAL
  • Respect: +2
    • ดูรายละเอียด
    • http://www.pattanihos.com
Re: // String \\
« ตอบกลับ #4 เมื่อ: กันยายน 16, 2009, 22:30:07 PM »
0
เก่งจังครับ  ;) เยี่ยมครับ
;D ;D ;D
Mr.Yordying Kongkachan (yord02@gmail.com)
ADMIN PATTANI HOSPITAL  http://www.pattanihos.com
เริ่มใช้ HOSxP พฤศจิกายน 2549
(Master)IBM X3650 M3 QuardCord 3.06 1 CPU 20 GBs. of Ram (up to 68 GBs 29/06/56)
Linux 64bit MySQL 5.5.21 64bit (ด้วยความช่วยเหลือของ อ.บอยครับ)
(Slave1)HP ProLiant ML350 G6 Xeon E5530 2.04 20 GBs. Ram (up to 54 GBs 27/06/56)
Linux 64bit MySQL 5.1.30 64bit Database v.3.56.4.9 (29/06/56) client v.3.56.3.19

ออฟไลน์ Knott

  • Hero Member
  • *****
  • กระทู้: 883
  • Respect: +1
    • ดูรายละเอียด
Re: // String \\
« ตอบกลับ #5 เมื่อ: กันยายน 17, 2009, 09:52:20 AM »
0
String ไม่ค่อยถนัดเท่าไร แต่ถ้า G String ก้ ok  ;D ;D ;D ;D
รพช.วัดโบสถ์ จ.พิษณุโลก
ขึ้นระบบ 1 เมษายน 2551 (ขึ้นระบบเอง)
Server : IBM x3250 M2, RAM 4 GB, FreeBSD 7.2, Mysql 5.1.30
HOSxP Version 3.56.1.15