BMS-HOSxP Community

HOSxP => Report Exchange => ข้อความที่เริ่มโดย: Svl2Nuk3 ที่ สิงหาคม 31, 2009, 16:23:36 PM

หัวข้อ: // String \\
เริ่มหัวข้อโดย: Svl2Nuk3 ที่ สิงหาคม 31, 2009, 16:23:36 PM
เมื่อก่อนเคยใช้ฟังก์ชันพวก  sub string   หรือ  split string 
แต่พอมาเขียน  report บางครั้งจะใช้พวกนี้  แต่ผมหาฟังก์ชันมันไม่เจออ่ะครับ
พอดีไปอ่านเจอกระทู้  ของ อ.นาจ   เกี่ยวกับการเขียนฟังก์ชัน  ก็เลยลองดูครับ Function (http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=8582.0)

อาจเอาไปประยุกต์ใช้กับ 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  สำหรับสอนเขียนฟังก์ชันครับ
หัวข้อ: Re: // String \\
เริ่มหัวข้อโดย: thannawe ที่ สิงหาคม 31, 2009, 19:48:07 PM
เก่งจังครับ  ;) เยี่ยมครับ
หัวข้อ: Re: // String \\
เริ่มหัวข้อโดย: naj ที่ กันยายน 01, 2009, 06:26:28 AM
 :) :) :) :) :)
หัวข้อ: Re: // String \\
เริ่มหัวข้อโดย: asawincyber ที่ กันยายน 01, 2009, 07:27:45 AM
ความรู้ใหม่  ;D
หัวข้อ: Re: // String \\
เริ่มหัวข้อโดย: yord ที่ กันยายน 16, 2009, 22:30:07 PM
เก่งจังครับ  ;) เยี่ยมครับ
;D ;D ;D
หัวข้อ: Re: // String \\
เริ่มหัวข้อโดย: Knott ที่ กันยายน 17, 2009, 09:52:20 AM
String ไม่ค่อยถนัดเท่าไร แต่ถ้า G String ก้ ok  ;D ;D ;D ;D