เก็บเฉพาะชื่อไฟล์ .dbf (และอื่นๆ) โดยไม่เอา path

ปกติเรามีคำสั่ง dbf() ที่ใช้เก็บชื่อไฟล์ dbf และมันให้ path มาด้วย  ซึ่งบางครั้งไม่ใช่สิ่งที่เราต้องการ เราจึงอยากจะแยกมันเอามาเฉพาะชื่อไฟล์ และทำได้ 2 ขั้นตอนคือ

1. หาตำแหน่งที่เป็นจุดแบ่งระหว่างสิ่งที่จะตัดออกและสิ่งที่จะเอาไว้ ซึ่งอาจใช้ฟังก็ชั่น AT หรือ RAT ก็ได้ครับ (แต่งานนี้ผมใช้ RAT) คือ
- ใช้ฟังก์ชั่น AT ร่วมกับประโยค do ... while เพื่อวนหา / ตัวสุดท้าย
- ใช้ฟังก์ชั่น RAT ค้นหา / ตัวสุดท้ายซะเลย

ทั้ง AT และ RAT เป็นฟังก์ชั่นที่ใช้ไล่หาตัวอักษรที่เราระบุ แล้วคืนค่ากลับมาว่าเป็นตัวอักษรที่เท่าไหร่ เราจะได้ตัดมันออกได้ตรงประเด็น ซึ่งจะเห็นว่างานนี้ AT จะยุ่งยากกว่า RAT มากเพราะว่า AT มันไล่หาจากด้านซ้ายไปด้านขวาครับ ส่วน RAT นั้นจะทำสลับกัน

2. เมื่อหาเจอจุดแบ่งของสิ่งที่จะตัดออก หรือจะเอาไว้แล้วก็ใช้ฟังก์ชั่น LEFT , RIGHT หรือ SUBST ในการดึงมันออกมาครับ (ในงานนี้ผมใช้ RIGHT เพราะดึงจากด้านขวาเข้าไปโดยไม่ต้องระบุความยาว

จากหลักการข้างต้นเขียนเป็นคำสั่งได้ว่า...
fname = RIGHT(dbf(), LEN(dbf())-RAT("\", dbf()))

สำหรับท่านที่จะเอาเฉพาะชื่อไฟล์ โดยไม่เอานามสกุล หรือเอาเฉพาะส่วนใดส่วนหนึ่งของชื่อไฟล์ ก็พิจารณาเลือกฟังก์ชั่น SUBST มาปรับแต่งเอานะครับ หรือเขียนมาถามกันก็ได้ครับ

จบแค่นี้ก่อนครับ สวัสดีครับ

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

เมื่อ VFP Table พัง

VFP SQL UPDATE ปรับปรุงค่าในฟิลด์ด้วยค่าจากตารางอื่น

การใช้ Array ร่วมกับ Function