สํา หรับ ข้อมูล เพิ่มเติม เกี่ยวกับ ภาษา การเขียน โปรแกรม สคริปต์ Lua โปรด ไป ที่เว็บไซต์ Lua。
ดับเบิ้ล คอมมานเดอร์ สามารถทําได้โดยซม. _ ExecuteScript คำสั่งให้ประมวลผลสคริปต์ลูอา
อาร์กิวเมนต์สคริปต์จะต้องผ่านไปตามที่เป็นอยู่โดยไม่มีการหลบหนี (ไม่มีเครื่องหมายใบเสนอราคาหรือ "\") ซึ่งเราต้องใช้ % "0 ตัวแปร: ตัวอย่างเช่น สําหรับแฟ้มที่อยู่ใต้เคอร์เซอร์ ให้ใช้%"0%p0 แ ล ะ ไ ม่ ไ ด้ รั บ ก า ร%p0, ใช้สําหรับไดเรกทอรีปัจจุบัน%"0%D แ ล ะ ไ ม่ ไ ด้ รั บ ก า ร%D。มิฉะนั้นหากผู้บัญชาการคู่เพิ่มใบเสนอราคาโดยอัตโนมัติพวกเขาจะผ่านไปเป็นส่วนหนึ่งของพารามิเตอร์และคุณจะต้องพิจารณาสิ่งนี้
ใน การ รับ รายการ ของ ไฟล์ ที่ เลือก ทั้งหมด เรา สามารถ ใช้ตัวแปร(%LU、%FU หรื อ%RU) หรือ คํา สั่ง ภายใน (หน้า หลัก / แท็ค SaveSelectionToFile、ซม. _ SaveFileDetailsToFile、ซม. _ CopyFullNamesToClip หรื ออีเมล : @ .)。
ตัวอย่างเช่น เราสามารถใช้%p: ในกรณีนี้ Double Commander จะผ่านชื่อของไฟล์ที่เลือกทั้งหมดในบรรทัดเดียวโดยแยกชื่อด้วยช่องว่าง
นอกจากนี้ คุณ ยัง สามารถ เขียน ปลั๊ก อิน เนื้อหา โดย ใช้ สคริปต์ Lua ตัวอย่าง สามารถ พบ ได้ ใน โฟลเดอร์ โปรแกรม (ปลั๊ก อิน / wdx / สคริปต์)。 มี เ รื่ อ งหน้า เพจ。 ข้อ จํากัด: รองรับเฉพาะประเภทข้อมูลต่อไปนี้เท่านั้น
รายการข้างต้นมีชื่อในไฟล์ส่วนหัวและในสคริปต์ Lua เราต้องใช้ค่าที่ระบุไว้ในวงเล็บ
เกี่ยวกับการเขียนโค้ดข้อความ
ฟังก์ชัน เพิ่มเติม ทั้งหมด ที่ อธิบาย ไว้ ด้านล่าง ยอมรับ อาร์กิวเมนต์ สตริง ที่ เข้ารหัส UTF- 8 และ ส่งกลับ สตริง ที่ เข้ารหัส นี้ (LazUtf8.ConvertEncoding ยกเว้น ฟังก์ชัน)
ฟังก์ชันในไลบรารี Lua มาตรฐานบางฟังก์ชันถูกแทนที่ (หรือเขียนฟังก์ชันใหม่) ด้วยฟังก์ชันของ Double Commander หรือ Free Pascal/Lazarus ซึ่งให้การสนับสนุน UTF-8
เมื่อ เขียน ปลั๊ก อิน เรา ควร ใช้ UTF- 8 สํา หรับ ข้อมูล ข้อความ (ft _ multiplechoice - เ พ ร า ะ เ ป็ น เ รื่ อ ง เ รื่ อ ง、ft _ string เป็น บริการ ที่ ได้รับ การ ออกแบบ มา เพื่อ ตอบ สนองความต้องการ ของ ลูกค้าและ ft _ fulltext _ เ ดิ น ไ ป เ รื่ อ ย)。
เมื่อคุณบันทึกสคริปต์ของคุณให้ใช้การเข้ารหัส UTF-8 โดยไม่มี BOM
ข้อควรระวัง
มีความเป็นไปได้สูงที่จะใช้ Lua สําหรับระบบอัตโนมัติ แต่อาจมีรายละเอียดบางอย่างที่ต้องให้ความสนใจในบางกรณีให้เราพยายามที่จะรวบรวมสิ่งเหล่านี้ในส่วนนี้
1.ถ้ า เ ป็ น เ พื่ อ น ที่ เ ป็ น เ พื่ อ นรีเฟรชอัตโนมัติและกำลังโหลดรายการของแฟ้มในเธรดที่แยกต่างหากตัวเลือก, ฟังก์ชั่นรีเฟรชจะทํางานแบบอะซิงโครนัสในขณะเดียวกันสคริปต์จะดําเนินการในหัวข้อหลักของผู้บัญชาการคู่ดังนั้นในบางกรณีทั้งหมดนี้อาจส่งผลกระทบต่อการทํางานของสคริปต์ของคุณเช่น บางครั้ง ก็ ดําเนิน การ อย่าง ต่อ เนื่องคําสั่งการนําทางอาจไม่ทํางาน (เช่นไดเรกทอรีขนาดใหญ่ดิสก์ช้า) ในกรณีนี้ให้ลองปิดใช้งานกำลังโหลดรายการของแฟ้มในเธรดที่แยกต่างหากหรือมองหาทางเลือกอื่น
หากสคริปต์ของคุณสร้างไฟล์ใหม่หรือเปลี่ยนชื่อไฟล์ที่มีอยู่ในแผงปัจจุบัน แต่ไม่เสร็จสมบูรณ์ในภายหลังและดําเนินการเพิ่มเติมบางอย่าง (เช่นการเลือกไฟล์หรือการย้ายเคอร์เซอร์) ในบางกรณีการดําเนินการเหล่านี้จะไม่มีผล: ไฟล์ทั้งหมดอาจไม่ได้อยู่ในแผงแล้วคุณต้องเรียกก่อนซม. _ เ ห มื อ น เ ดิ น ท า งคําสั่งภายใต้เงื่อนไขที่อธิบายไว้ซม. _ เ ห มื อ น เ ดิ น ท า งนอกจากนี้ยังจะดําเนินการแบบอะซิงโครนัสผู้บัญชาการคู่อาจไม่มีเวลาในการรีเฟรชรายการไฟล์อย่างสมบูรณ์หลังจากการเปลี่ยนแปลงของคุณ
การรีเฟรชอัตโนมัติและการโหลดรายการไฟล์ในเธรดที่แยกต่างหากเป็นคุณลักษณะที่มีประโยชน์ของตัวจัดการไฟล์ดังนั้นจึงพบวิธีการทํางานที่มั่นคงโดยการทดลองซึ่งจะคืนการควบคุมให้กับโปรแกรมชั่วคราวและอนุญาตให้รายการไฟล์รีเฟรชอย่างสมบูรณ์:
DC.ExecuteCommand("cm_Refresh") i = 10 while i > 0 do SysUtils.Sleep(10) DC.ExecuteCommand("") i = i - 1 end
2.ฟังก์ชั่น Luaio.open ใช้ฟังก์ชัน C มาตรฐานfopen: ในโหมดข้อความ ฟังก์ชันนี้สามารถแปลงชนิดท้ายบรรทัด (CRLF, LF หรือ CR) เมื่ออ่านและเขียน ซึ่งอาจทําให้เกิดผลลัพธ์ที่ไม่คาดคิดหากคุณพบไฟล์ที่มีประเภทหางบรรทัดที่แตกต่างกันหรือกําลังเขียนสคริปต์ข้ามแพลตฟอร์มคุณต้องพิจารณาสิ่งนี้หรือในทางปฏิบัติมากขึ้นคือการตั้งค่าโหมดไบนารี
3.ใน Linux และระบบปฏิบัติการอื่น ๆ ที่คล้ายกับ Unix สําหรับคุณสมบัติของไฟล์กล่องเรียกContentGetValue ฟังก์ชัน เมื่อมีCONTENT_DELAYIFSLOW ธง (อาร์กิวเมนต์ที่สี่ค่าเป็น 1) ซึ่งหลีกเลี่ยงความล่าช้าเมื่อเปิดหน้าต่าง: หากการดึงข้อมูลช้าเราสามารถตรวจสอบและส่งกลับสําหรับเขตข้อมูลหรือปลั๊กอินเหล่านี้ได้โดยเพียงแค่เพิ่มค่าธงnil เพื่อกําจัดข้อมูลเหล่านี้
4.หากปลั๊กอินควรส่งคืนสตริงที่ว่างเปล่าให้ส่งผ่านnil กว่าจะผ่าน"" เร็วขึ้น
เพื่อให้สามารถตีความไฟล์สคริปต์ Lua ได้ เราจําเป็นต้องมีไฟล์ Lua DLL ซึ่ง Double Commander รองรับเวอร์ชัน 5.1-5.4
เราสามารถใช้ข้อมูลจากโครงการ LuaJIT ของไฟล์ DLL LuaJIT รวมล่ามความเร็วสูงที่เขียนในแอสเซมบลีและคอมไพเลอร์ JIT ขั้นสูงนอกจากนี้เรายังได้รับไลบรารี FFI ซึ่งช่วยให้สามารถเรียกใช้ฟังก์ชัน C ภายนอกและใช้โครงสร้างข้อมูล C จากรหัส Lua บริสุทธิ์
รุ่น Windows ของ DC มี Lua DLL ตามค่าเริ่มต้น (จากโครงการ LuaJIT ใน DC 0.9.7 และสูงกว่า) ในกรณีอื่น ๆ เราสามารถค้นหาและติดตั้งผ่านทางตัวจัดการแพคเกจหรือคอมไพล์เองถ้าเราใช้ DC รุ่น 64 บิต DLL ก็ต้องเป็นรุ่น 64 บิตด้วย
โดย ค่า เริ่มต้น DC จะ ค้นหา ใน ไดเรกทอรี และ ไดเรกทอรี ระบบ ที่ เรียก ว่า lua5.1.dll (Windows), ดาวน์โหลด liblua 5.1 . so . 0 -(Unix หรือ GNU / Linux) หรือ liblua5.1.dylib ไฟล์ สํา หรับ (macOS)เรา สามารถ ทํา ให้ เ ป็ น การ เ รี ย นแฟ้มไลบรารี Lua ที่จะใช้เปลี่ยนชื่อแฟ้ม (และพาธ) ในพารามิเตอร์
ผู้บัญชาการคู่ให้ห้องสมุดบางส่วนของฟังก์ชั่นสําหรับสคริปต์ Lua ของเรา
นี่คือรายการของไลบรารีเหล่านี้
| รายการห้องสมุด | ||
|---|---|---|
| ชื่อห้องสมุด | ชื่อของสคริปต์ | คําอธิบายโดยย่อ |
| DC (ดีซี) | ฟังก์ชั่นเฉพาะผู้บัญชาการคู่ | |
| SysUtils เป็นผลิตภัณฑ์ที่มีคุณภาพสูงในราคาที่แข่งขันได้ | ฟังก์ชั่นระบบต่างๆ | |
| Clipbrd วิดีโอ | มีฟังก์ชั่นคลิปบอร์ดภายนอก | |
| Dialogs และ | การมีปฏิสัมพันธ์กับผู้ใช้ | |
| LazUtf8 เป็นผลิตภัณฑ์ที่ได้รับความนิยมมากที่สุดในโลก | ฟังก์ชั่นสตริง UTF-8 | |
| ชาร์ (Char) | รับข้อมูลตัวละคร | |
| โอเอส | ฟังก์ชั่นที่เกี่ยวข้องกับระบบปฏิบัติการ | |
ไลบรารีนี้มีฟังก์ชันเฉพาะของผู้บัญชาการคู่
มันอยู่ในนั้นDC ฟังก์ชันทั้งหมดมีให้ในตาราง
| ห้องสมุด DC | |
|---|---|
| ชื่อฟังก์ชัน | คําอธิบาย |
|
DC. LogWrite (iMessage, iMsgType, bForce, bLogFile) - ดาวน์โหลด เขียนจดหมายไปยังหน้าต่างปูมบันทึก:
|
|
|
iPanel = DC. CurrentPanel () รับแผงที่ใช้งานอยู่: ส่งกลับ 0 ถ้าแผงด้านซ้ายมีการใช้งาน หรือ 1 ถ้าไม่ DC. CurentPanel (iPanel) ตั้งค่าแผงควบคุมที่ใช้งานอยู่: iPanel และเท่ากับ 0 คือ แผงด้านซ้าย เท่ากับ 1 คือ แผงด้านขวา |
|
|
DC. ExecuteCommand (sCommand, Param1, Param2, ..., ...., ....., ......, ...., ..... ParamX) ซึ่งเป็นบริษัทที่ดําเนินธุรกิจด้านการขาย นี้ จะ ช่วย ให้ สคริปต์ ที่จะ เรียก ใช้ ผู้บัญชาการ คู่คํา สั่ง ภายใน。 คําสั่ง sCommand มันเป็นชื่อของคําสั่งภายในที่แท้จริง เราสามารถให้คําสั่งสนับสนุนได้มากเท่าที่เราต้องการพาราม ... พารามิเตอร์. |
|
นอกจากคำสั่งภายในแล้ว ในสคริปต์เรายังสามารถใช้คำสั่งพิเศษซม. _ ExecuteToolBarItem คำสั่งนี้ช่วยให้ปุ่มแถบเครื่องมือสามารถเรียกใช้ผ่านตัวระบุ (ในโปรแกรมคุณลักษณะนี้มีความสามารถในการใช้ทางลัดสำหรับปุ่มแถบเครื่องมือ)คำสั่งนี้จะถูกใช้ในลักษณะที่คล้ายกับคำสั่งภายในทั่วไป (ดูตัวอย่างด้านล่าง) และมีพารามิเตอร์ต่อไปนี้:
| พารามิเตอร์ | ค่า | คําอธิบาย |
|---|---|---|
| ToolBarID (ทูลบาร์ ไอดี) | TfrmOptionsToolbar - ร้าน ร้านจักรยานทัวริ่ง และอุปกรณ์เกี่ยวกับทัวริ่ง แบรนชั้นนําทั่วโลก: . | ปุ่มสำหรับแถบเครื่องมือหลัก |
| TfrmOptionsToolbar กลาง | ปุ่มบนแถบเครื่องมือกลาง | |
| (ไม่มี) | ปุ่มสำหรับแถบเครื่องมือหลัก | |
| ToolItemID (ทูล ไอเท็ม ไอดี) | ตัวระบุ | ตัวระบุที่ไม่ซ้ํากันสําหรับปุ่ม |
ตัวระบุที่ไม่ซ้ํากันจะถูกเก็บไว้ที่ID ใน ส่วน ของ นั้น เรา สามารถ เข้าถึง ได้ หลาย วิธี คือ สามารถ หา ได้ จาก doublecmd.xml ค้นหา ปุ่ม ใน ไฟล์ สํา รอง ข้อมูล แถบ เครื่องมือ หรือ เพียงแค่ คัดลอก ปุ่ม ไป ยัง คลิป บอร์ด และ วาง โค้ด ใน ตัว แก้ไข ข้อความ
หมายเหตุ: ตัวระบุจะถูกสร้างขึ้นโดยอัตโนมัติและไม่จําเป็นต้องตรงกับตัวระบุของปุ่มที่คล้ายกันในสําเนาอื่นของโปรแกรม แต่เราสามารถตั้งค่าของเราเองถ้าจําเป็น
ในตัวอย่างนี้ เราได้เขียนสคริปต์อย่างง่าย ซึ่งจะทำดังนี้
-- 1. 聚焦到右侧面板。 DC.ExecuteCommand("cm_FocusSwap", "side=right") -- 2. 关闭所有标签页。 DC.ExecuteCommand("cm_CloseAllTabs") -- 3. 切换到特定目录。 DC.ExecuteCommand("cm_ChangeDir", "E:\\FakeKey\\Documents\\Music") -- 4. 聚焦到左侧面板。 DC.ExecuteCommand("cm_FocusSwap", "side=left") -- 5. 关闭所有标签页。 DC.ExecuteCommand("cm_CloseAllTabs") -- 6. 切换到特定目录。 DC.ExecuteCommand("cm_ChangeDir", "C:\\Users\\Public\\Music") -- 7. 打开新标签页。 DC.ExecuteCommand("cm_NewTab") -- 8. 切换到特定目录。 DC.ExecuteCommand("cm_ChangeDir", "E:\\VirtualMachines\\ShareFolder")
การใช้คำสั่งภายในซม. _ ExecuteScript เราสามารถกําหนดค่าปุ่มแถบเครื่องมือเพื่อดําเนินการสคริปต์ของเรา
สมมติว่าไฟล์สคริปต์นี้เป็นE:\scripts\lua\music.lua, เราสามารถกําหนดค่าปุ่มเช่นนี้:

นอกจากนี้ เรายังสามารถใช้ Double Commander ในการแก้ไขสคริปต์ได้อีกด้วยถ้ า เ ป็ น เ รื่ อ ง เ รื่ อ ง ที่ มี.lua ส่วนขยาย ซึ่งตัวแก้ไขภายในจะจดจำและให้การเน้นไวยากรณ์สำหรับภาษาลัวะ:

ไลบรารีนี้มีฟังก์ชันของระบบที่หลากหลาย
มันอยู่ในนั้นSysUtils ฟังก์ชันทั้งหมดมีให้ในตาราง
| ห้องสมุดระบบ | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| ชื่อฟังก์ชั่น | คําอธิบาย | ||||||||||
|
SysUtils.Sleep (iMilliseconds) - ดาวน์โหลด หยุด การประมวลผล ของ สคริปต์ เป็นเวลา มิ ล ลิ วินาที ตามที่ ระบุ iMilliseconds คือ อะไร。 |
|||||||||||
|
SysUtils.GetTickCount () คืนค่าการนับเวลาที่เพิ่มขึ้นมันสามารถใช้สําหรับการวัดเวลา แต่ไม่ควรสันนิษฐานว่าช่วงเวลาระหว่างเห็บ |
|||||||||||
|
bExists = SysUtils FileExists (sFileName) (ไฟล์เสียง) ตรวจสอบระบบไฟล์สําหรับการมีไฟล์ที่เฉพาะเจาะจง ถ้ า มี ก า ร เ ป็ น เ รื่ อ ง ที่ เ ป็ น เ รื่ อ ง sFileName ของเอกสารที่มีอยู่ใน bExists วิดีโอค่าผลตอบแทนปานกลาง |
|||||||||||
|
bExists = SysUtils. DirectoryExists (sDirectory) การตรวจสอบ sDirectory (เอส ไดเร็คทอรี่) รถมอเตอร์ไซค์ซูซูกิ รถจักรยานยนต์ซูซูกิว่ามีอยู่ในระบบไฟล์และเป็นไดเรกทอรีจริงๆ หรือไม่ ถ้ า เ ป็ น เ รื่ อ ง นี้ เ ป็ น เ รื่ อ ง เ ห มื อ น bExists วิดีโอค่าผลตอบแทนปานกลาง |
|||||||||||
|
iAttr = SysUtils FileGetAttr (sFileName) ใน iAttr คืออะไร? แฟ้มที่ถูกส่งกลับโดเมนการตั้งค่าคุณสมบัติของ สํา หรับ คํา อธิบาย โดยละเอียด ของ ค่า ผลตอบแทน โปรด ดู ที่นี่ คือ。 |
|||||||||||
|
จัดการ, FindData = SysUtils. FindFirst (sPath) ค้นหา ด้วย sPath - เ ธ อ เ ป็ น เ ธ อ เ ธ อแฟ้มที่เข้าคู่กัน โดยปกติจะใช้ไวลด์การ์ด หากไม่พบไฟล์มือจับจะ เ ป็ น เมื่อพบรายการอย่างน้อยหนึ่งรายการจะถูกส่งกลับมือจับสามารถนํามาใช้ในภายหลังได้ ค้นหาข้อมูลตารางมีข้อมูลเกี่ยวกับไฟล์หรือไดเรกทอรีที่พบ FindData ช่องสําหรับตารางมีดังนี้:
|
|||||||||||
|
ผลลัพธ์, FindData = SysUtils. FindNext (จัดการ) โดยการนํากลับมาใช้ใหม่แฮนด์, ค้นหาโดย หากพบไฟล์หรือไดเรกทอรี จะถูกส่งกลับผล ต อ น เ ห มื อ น กั บ เ ร าจะ ไ ม่ ไ ด้ เ ป็ น เ รื่ อ ง เ ห มื อ น เ ห มื อ น ด้วย หมายเหตุ: ครั้งสุดท้าย |
|||||||||||
|
SysUtils.FindClose (จับ) จบ ก า ร เ รี ย น เ รี ย น เ รี ย น ปลดปล่อยหน่วยความจําใด ๆ ที่ใช้โดยการโทรเหล่านี้ มันเป็นสิ่งจําเป็นอย่างยิ่งที่จะทําให้การโทรนี้, มิฉะนั้นมันอาจทําให้เกิดการรั่วไหลของหน่วยความจํา. |
|||||||||||
|
bResult = SysUtils สร้างไดเรกทอรี (sDirectory) การสร้างแคตตาล็อก sDirectory (เอส ไดเร็คทอรี่) รถมอเตอร์ไซค์ซูซูกิ รถจักรยานยนต์ซูซูกิเป็นเส้นทางที่สมบูรณ์ไปยังไดเรกทอรี ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั น sDirectory (เอส ไดเร็คทอรี่) รถมอเตอร์ไซค์ซูซูกิ รถจักรยานยนต์ซูซูกิมีอยู่หรือสร้างเสร็จแล้ว ให้ส่งกลับ |
|||||||||||
|
bResult = SysUtils สร้างฮาร์ดลิงค์ (sFileName, sLinkName) สํา หรับ เอกสารโดเมนสร้าง ลิงค์ ยาก sLinkName。 คืน ถ้า สําเร็จ แล้ว นะ ครับ |
|||||||||||
|
bResult = SysUtils. สร้างสัญลักษณ์ลิงค์ (sFileName, sLinkName) สํา หรับ แฟ้ม หรือ ไดเรกทอรีโดเมนการ สร้าง ลิงก์ สัญลักษณ์ sLinkName (เอส ลิงค์ เนม)。 คืน ถ้า สําเร็จ แล้ว นะ ครับ |
|||||||||||
|
sTarget = SysUtils. ReadSymbolicLink (sLinkName, bRecursive) อ่านลิงก์สัญลักษณ์ sLinkName (เอส ลิ้งค์ เนม) เป้าหมายของ ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั น bRecursive คืออะไรเ พื่ อ น เ ห มื อ น กั น กลับไปที่ลิงก์สัญลักษณ์ sLinkName (เอส ลิ้งค์ เนม) พาธที่ชี้ไป หรือในกรณีที่ลิงก์ไม่ถูกต้อง หรือไฟล์ที่ชี้ไปไม่มีอยู่จริง และ bRecursive คืออะไรเ พื่ อ น เ ห มื อ น กั น |
|||||||||||
|
sName = SysUtils. สารสกัดจากไฟล์ (sFileName) แยกส่วนของชื่อไฟล์จากชื่อไฟล์สำหรับเส้นทางแบบเต็ม ชื่อไฟล์ประกอบด้วยอักขระตัวคั่นไดเรกทอรีตัวสุดท้าย ("/" หรือ "\") หรืออักขระทั้งหมดที่อยู่เบื้องหลังตัวอักษรไดรฟ์ |
|||||||||||
|
sExt = SysUtils. ExtractFileExt (sFileName) คืนค่านามสกุลของชื่อแฟ้ม ('.' ล่าสุดตัวอักษรทั้งหมดหลัง (จุด) รวมถึง "... "ตัวอักษร) |
|||||||||||
|
sysUtils. ExtractFilePath (sFileName) - ไฟล์เสียง แยกพาธ (รวมถึงตัวอักษรของไดรฟ์) จากชื่อไฟล์ พาธประกอบด้วยอักขระทั้งหมดก่อนอักขระตัวคั่นไดเรกทอรีตัวสุดท้าย ("/" หรือ "\") รวมถึงตัวคั่นไดเรกทอรีเอง |
|||||||||||
|
sDir = SysUtils. ExtractFileDir (sFileName) สกัด เ พี ย ง เ พี ย งโดเมนส่วนไดเรกทอรี่ รวมถึงตัวอักษรของไดรฟ์ ไม่มีตัวคั่นไดเรกทอรีที่ลงท้ายด้วยชื่อไดเรกทอรีซึ่งเป็นเหมือน |
|||||||||||
|
sDrive = SysUtils. ExtractFileDrive (sFileName) (ไฟล์เสียง) แยกส่วนของไดรฟ์จากชื่อไฟล์ โปรดทราบว่าตัวอักษรไดรฟ์ไม่ได้รับการสนับสนุนในบางระบบปฏิบัติการ |
|||||||||||
|
sName=SysUtils.GetAbsolutePath (sFileName, sBaseDirectory) - ดาวน์โหลด กลับไปยังตำแหน่งพาธแบบสมบูรณ์ (เต็ม) ของแฟ้ม:
ถ้า ไม่ สามารถ ได้ ฟังก์ชัน จะ กลับ มา sFileName มูลค่าของมัน |
|||||||||||
|
sName=SysUtils.GetRelativePath (sFileName, sBaseDirectory) ส่งกลับชื่อแฟ้มที่สัมพันธ์กับไดเรกทอรีที่ระบุ:
ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั น sFileName และ sBaseDirectory เป็นโปรแกรมที่ช่วยให้คุณสามารถค้นหาข้อมูลได้อย่างง่ายดายมีค่าที่เหมือนกันและฟังก์ชันจะส่งกลับสตริงว่าง ("")ถ้าคุณไม่สามารถรับชื่อไฟล์ที่มีเส้นทางสัมพัทธ์ได้ ฟังก์ชันจะส่งกลับโดเมนมูลค่าของมัน |
|||||||||||
|
bResult = SysUtils. MatchesMask (sFileName, sMask, iMaskOptions) ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั น sFileName แ ล ะ จ ง อ ย่ า ใ ห้ เ ป็ นผู้ ป ฏิ เ ส ธ ศ รั ท ธ า sMask เป็นผลิตภัณฑ์ที่ได้รับการออกแบบมาสําหรับตรง แล้ว กลับ มา เลย ครับ ๆ iMaskOptions ตัวเลือก (อาร์กิวเมนต์ที่เลือกได้ ค่าเริ่มต้นคือ 0) ถูกตั้งค่าให้เป็นผลรวมของค่าต่อไปนี้:
|
|||||||||||
|
bResult = SysUtils. MatchesMaskList (sFileName, sMaskList, sSeparator, iMaskOptions) ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั น sFileName กับ ก า ร เ รี ย น เ รี ย น เ รี ย น เ รี ย น sSeparator คืออะไร (ค่าปริยายคือ ';') หน้ากากสำหรับการส่งผ่านที่แยกออกจากกัน sMaskList (s MaskList) - แอพพลิเคชั่นเพื่อความบันเทิงอย่างน้อย 1 รายการ ที่ ตรงกัน ก็ จะ ได้ รับ การ คืน sSeparator คืออะไรและ iMaskOptions ตัวเลือก (ดูด้านบน) เป็นตัวแปรเสริม |
|||||||||||
|
sTempFileName = SysUtils GetTempName () ชื่อ ไฟล์ ที่ ใช้ เป็น ชื่อ ไฟล์ ชั่วคราว (ใน ไดเรกทอรี ไฟล์ ชั่วคราว ของ ระบบ) จะ ถูก ส่งกลับ คล้าย กับ os.tmpname ฟังก์ชัน แต่ ไฟล์ จะ ถูก สร้าง ขึ้น ใน ไดเรกทอรี ย่อย ที่ ถู กลบ โดยอัตโนมัติ เมื่อ ปิด Double Commander |
|||||||||||
|
SysUtils.PathDelim ระบบปฏิบัติการปัจจุบันใช้เพื่อแยกอักขระของชื่อไดเรกทอรีในชื่อไฟล์เต็ม ในระบบ Unix / Linux ตัวคั่นไดเรกทอรีจะเป็น "/" และใน Windows จะเป็น "\" |
|||||||||||
FileGetAttr กลับไปยังแฟ้ม sFileName การตั้งค่าคุณสมบัติของ
แอตทริบิวต์เป็นค่าคงที่ของหรือรวม:
| SysUtils.FileGetAttr คืนค่าคงที่ที่ใช้ในค่า | |
|---|---|
| มูลค่า | ความหมาย |
0x00000001 - ขายโมเดลกันดั้ม ของแท้จากประเทศญี่ปุ่น คลิ๊กเลย: . faReadOnly เพียง |
แฟ้มเป็นแบบอ่านอย่างเดียว |
0x00000002 (0x0000002) เ พื่ อ น เ ห มื อ น กั บ เ ร า ฟ้าซ่อน |
ไฟล์ถูกซ่อนไว้ ในระบบ Unix/Linux นั่นหมายความว่า ชื่อไฟล์จะขึ้นต้นด้วยจุด |
0x00000004 (0x0000004) เ พื่ อ น เ ห มื อ น กั บ เ ร า faSysFile เป็นไฟล์ที่มีความละเอียดสูง |
ไฟล์เป็นไฟล์ระบบ ในระบบ Unix/Linux นั้น หมายถึง ไฟล์ที่เป็นตัวอักษร หรือ อุปกรณ์บล็อค ที่มีชื่อเรียกว่า (FIFO) |
0x00000008 - ขายโมเดลกันดั้ม ของแท้จากประเทศญี่ปุ่น คลิ๊กเลย: . faVolumeId (ฟาโวลุ่มไอดี) |
ฉลากปริมาตร. ใช้ได้กับระบบไฟล์ FAT ปกติ (ไม่ใช่ VFAT หรือ FAT32) บน DOS/Windows เท่านั้น |
0x00000010 (0x0000010) เ พื่ อ น เ ห มื อ น กั บ เ ร า faDirectory - เว็บพนันออนไลน์ เกมส์คาสิโน บาคาร่า ไฮโล แทงหวยจับยี่กี แทงพนันบอลออนไลน์ |
แฟ้มเป็นไดเรกทอรี |
0x00000020 (0x00000020) เ พื่ อ น เ ห มื อ น กั น faArchive - เ พื่ อ น เ ห มื อ น กั บ เ ร า |
เอกสารถูกยื่น เป็นไปไม่ได้ใน Unix / Linux |
0x00000400 (0x00000400) เ ห มื อ น กั บ เ ร า faSymLink คืออะไร |
ไฟล์เป็นลิงก์สัญลักษณ์ |
| หมายเหตุ: หากมีข้อผิดพลาดเกิดขึ้น -1 จะถูกส่งกลับ | |
โปรดดูส่วนถัดไปตัวอย่างใน
สคริปต่อไปนี้SysUtils.FileGetAttr ตัวอย่างของการใช้งาน
เมื่อตรวจพบว่าอาร์กิวเมนต์เป็นไดเรกทอรี จะเปิดแท็บใหม่ในแผงที่ใช้งานอยู่ และสลับไปยังไดเรกทอรี
local params = {...} local iAttr if #params == 1 then -- 我们至少得到了一个参数? iAttr = SysUtils.FileGetAttr(params[1]) if iAttr > 0 then -- 我们得到了一个有效的属性? if math.floor(iAttr / 0x00000010) % 2 ~= 0 then -- 第4位被设置?所以它是一个目录。 DC.ExecuteCommand("cm_NewTab") DC.ExecuteCommand("cm_ChangeDir", params[1]) end end end
ในตัวอย่างข้างต้นหน้าหลัก / แท็ค [1] มันเป็นอาร์กิวเมนต์แรกที่ถูกส่งผ่านไปยังสคริปต์
เมื่อใช้คำสั่งภายในซม. _ ExecuteScript มันจะเป็นอาร์กิวเมนต์แรกที่ส่งผ่านหลังจากชื่อไฟล์สคริปต์
ดังนั้นในตัวอย่างของเราเราสามารถกําหนดค่าปุ่มแถบเครื่องมือเช่นนี้:

ในตัวอย่างนี้ อาร์กิวเมนต์%"0%p มันจะถูกส่งต่อไปยังสคริปต์นี่จะเป็นชื่อไฟล์ของรายการที่เลือกไว้ในแผงที่ใช้งานอยู่ในปัจจุบันโดยไม่มีเครื่องหมายใบเสนอราคา
ในตัวอย่างสคริปต์ต่อไปนี้เราจะสแกนเนื้อหาไดเรกทอรีที่ได้รับในพารามิเตอร์และเก็บข้อมูลผลลัพธ์ลงในไฟล์ข้อความของชื่อไฟล์ที่ส่งผ่านด้วยพารามิเตอร์ที่สอง
มันจะทําให้เรามีความคิดที่ดีFindFirst、FindNext และFindClose การใช้ ง าน .
local params = {...} if #params == 2 then -- 我们得到了两个参数? local Result = nil local hOutputFile = nil hOutputFile = io.output(params[2]) local Handle, FindData = SysUtils.FindFirst(params[1] .. "\\*") if Handle ~= nil then repeat io.write(FindData.Name .. "\r") io.write(FindData.Size .. "\r") io.write("---------------\r") Result, FindData = SysUtils.FindNext(Handle) until Result == nil SysUtils.FindClose(Handle) io.close(hOutputFile) end end
ในตัวอย่างข้างต้น เราต้องส่งผ่านอาร์กิวเมนต์สองตัวไปยังสคริปต์:
ดังนั้น การใช้คําสั่งภายในซม. _ ExecuteScript มันเป็นเรื่องง่ายที่จะกําหนดค่าปุ่มแถบเครื่องมือและผ่านพารามิเตอร์ที่จะทํามันทั้งหมด

ในตัวอย่างนี้ อาร์กิวเมนต์%"0%Ds จะถูกส่งผ่านไปยังสคริปต์เป็นอาร์กิวเมนต์แรกนี่จะแสดงถึงไดเรกทอรีที่แสดงในแผงที่ใช้งานอยู่โดยไม่มีเครื่องหมายใบเสนอราคา
ผู้บัญชาการคู่สามารถให้ฟังก์ชั่นคลิปบอร์ดภายนอกสําหรับสคริปต์ Lua ของเรา.
ตารางต่อไปนี้แสดงฟังก์ชันที่เกี่ยวข้อง:
| แกลลอรี่คลิปบอร์ด | |
|---|---|
| ชื่อฟังก์ชั่น | คําอธิบาย |
|
Clipbrd ชัดเจน () ล้างเนื้อหาของคลิปบอร์ด |
|
|
sVar = Clipbrd.GetAsText () - เ ธ อ เ ป็ น เ ธ อ รับ เนื้อหา ข้อความ ปัจจุบัน ของ คลิป บอร์ด และ กําหนด ให้ กับ sVar เป็ น ตั ว อย่ า ง ไร ก็ ต าม。ถ้าคลิปบอร์ดไม่มีข้อความ ฟังก์ชันจะส่งกลับสตริงว่าง |
|
|
Clipbrd.SetAsText (sVar) - ดาวน์โหลด เก็บไว้ในคลิปบอร์ด sVar เป็ น ตั ว อย่ า งไรก็ ต ามเนื้อหาของข้อความ. |
|
|
Clipbrd.SetAsHtml (sHtml) การแปลงข้อความเป็น html sHtml (เอส เอช ที เอ็ม) เพิ่มไปยังคลิปบอร์ด ( เนื้อหาเหล่านี้จะถูกแทรกลงไปในแอพพลิเคชั่นที่รองรับรูปแบบคลิปบอร์ดนี้ เช่น MS Word, LO Writer เป็นต้น การใช้ ตัวอย่างเช่น เราอาจมีสิ่งต่อไปนี้:
ถ้าเราเปลี่ยนมาใช้ เพื่อลองวางอะไรสักอย่าง มันจะวางเป็นข้อความธรรมดา โดยเราใช้ |
|
ตัวอย่างต่อไปนี้ใช้ฟังก์ชันสามฟังก์ชันที่เกี่ยวข้องกับคลิปบอร์ด:Clear、GetAsText และSetAsText。
นี่เป็นสคริปต์ที่ค่อนข้างยาว แต่ก็รวมฟังก์ชั่นบางอย่างที่เห็นข้างต้นเข้าด้วยกันได้ดี
มันสันนิษฐานว่าแผงที่ใช้งานอยู่ของเราอยู่ในไดเรกทอรีที่มีไฟล์ข้อความต้นฉบับจํานวนมาก
นอกจากนี้ยังสมมติว่าเรามีคําในคลิปบอร์ดในขณะนี้และจะได้รับโฟลเดอร์ที่ใช้งานอยู่ในปัจจุบันเป็นพารามิเตอร์เดียว
สคริปต์จะสแกนไฟล์ในระดับไดเรกทอรีปัจจุบันและอ่านเนื้อหาของพวกเขาหนึ่งโดยหนึ่งในการตรวจสอบบรรทัดของข้อความที่มีคำจากคลิปบอร์ด
จากนั้นชื่อไฟล์ที่มีคำนั้นอย่างน้อยหนึ่งบรรทัดจะถูกนำไปวางไว้ในคลิปบอร์ด
จากนั้นสคริปต์จะใช้คําสั่งภายในดาวน์โหลด -, จะมีการเลือกแฟ้มที่มีคำนี้
นอกจากนี้ในตอนท้ายเราจะใส่คําต้นฉบับที่เราต้องการค้นหากลับเข้าไปในคลิปบอร์ด
local params = {...} local Result = nil local iAttr local bFound = false local sCompleteFilename = "" local hInputFile = nil local sLine = "" local iPosS local iPosE local sFileToSelect = "" local sSearchString = "" if #params == 1 then -- 我们得到了参数? sSearchString = Clipbrd.GetAsText() -- 获取要搜索的表达式。 Clipbrd.Clear() -- 确保剪贴板中没有任何内容。 DC.ExecuteCommand("cm_MarkUnmarkAll") -- 确保没有选中任何内容。 -- 让我们逐个扫描目录中的所有文件。 local Handle, FindData = SysUtils.FindFirst(params[1] .. "\\*") if Handle ~= nil then repeat sCompleteFilename = params[1] .. "\\" .. FindData.Name iAttr = SysUtils.FileGetAttr(sCompleteFilename) if iAttr > 0 then -- 我们得到了一个有效的属性? -- 我们需要文件,而不是目录! if math.floor(iAttr / 0x00000010) % 2 == 0 then -- 现在让我们逐行读取文件,直到结束或找到。 hInputFile = io.open(sCompleteFilename, "r") bFound = false while bFound == false do sLine = hInputFile:read() if sLine == nil then break end iPosS, iPosE = string.find(sLine, sSearchString) if iPosS ~= nil then bFound = true end end if bFound == true then sFileToSelect = sFileToSelect .. FindData.Name .. "\n" end io.close(hInputFile) end end Result, FindData = SysUtils.FindNext(Handle) until Result == nil SysUtils.FindClose(Handle) end -- 如果我们找到了什么,就选中它! if sFileToSelect ~= "" then Clipbrd.SetAsText(sFileToSelect) DC.ExecuteCommand("cm_LoadSelectionFromClip") end Clipbrd.SetAsText(sSearchString) -- 恢复我们在剪贴板中的内容。 end
ไลบรารีช่วยให้สคริปต์ของเราสามารถโต้ตอบกับผู้ใช้ แสดงข้อความ พร้อมท์ให้ใส่คำตอบ และอื่นๆ
ตารางต่อไปนี้แสดงรายการฟังก์ชันที่เกี่ยวข้อง:
| ห้องสมุดกล่องโต้ตอบ | |
|---|---|
| ชื่อฟังก์ชั่น | คําอธิบาย |
|
iButton = Dialogs. กล่องข้อความ (sMessage, sTitle, iFlags) กล่องข้อความจะปรากฏขึ้นพร้อมท์ให้ผู้ใช้คลิกที่ปุ่มซึ่งจะถูกส่งกลับโดยฟังก์ชัน:
|
|
|
bResult, sAnswer = Dialogs InputQuery (sTitle, smage, bMask, sdefault) - คําตอบที่ถูกต้อง แสดงกล่องคำขอที่ผู้ใช้สามารถป้อนสตริง:
|
|
|
sItem, iItem = Dialogs InputListBox (sTitle, sMessage, aItem, sdefault) - การตั้งค่า แสดงกล่องโต้ตอบที่อนุญาตให้ผู้ใช้เลือกจากรายการ:
|
|
Dialogs.MessageBox ปุ่มที่แสดงโดยฟังก์ชันจะถูกควบคุมโดยบิตหรือค่าของค่าคงที่ต่อไปนี้:
| Dialogs. MessageBox แสดงค่าคงที่ ButFlags ของปุ่ม | |
|---|---|
| ค่าคงที่ | ปุ่มที่แสดงจากซ้ายไปขวา |
0x0000 (0x0000) - ร้านมหาโฟน ขายสมาร์ทโฟน แบรนด์ชั้นนําของจีน ประกันศูนย์จีน 1 ปี: . MB _ OK (เอ็มบี _ โอเค) |
|
0 x 0001 MB _ OKCANCEL - โรงแรม |
|
0x0002 (0x0002) MB _ ABORTRETRYIGNORE - เว็บพนันออนไลน์ เกมส์คาสิโน บาคาร่า ไฮโล รูเล็ต แทงหวยจับยี่กี แทงพนันบอลออนไลน์ |
|
0x0003 (0x0003) MB _ เยสโนคาเซล |
|
0x0004 (0x0004) MB _ เยสโน |
|
0x0005 (0x0005) MB _ RETRYCANCEL - โรงแรม เรด สกาย รีสอร์ท |
|
Dialogs.MessageBox รูปแบบของหน้าต่างที่แสดงโดยฟังก์ชันจะถูกควบคุมโดยบิตหรือค่าของค่าคงที่ต่อไปนี้:
| Dialogs คง ButFlags สําหรับไอคอนกล่องข้อความและรูปแบบ | |
|---|---|
| ค่าคงที่ | รูปแบบของหน้าต่าง |
0x0040 (0x0040) MB _ ไอคอนฟอร์เมชั่น |
|
0x0030 (0x0030) MB _ ไอคอน วอร์นิ่ง |
|
0x0020 (0x0020) MB _ ไอคอนเควสท์ |
|
0x0010 (0x0010) MB _ ไอคอน ERROR |
|
Dialogs.MessageBox ปุ่มที่ใช้งานเริ่มต้นที่แสดงโดยฟังก์ชันจะถูกควบคุมโดยบิตหรือค่าของค่าคงที่ต่อไปนี้:
| Dialogs. ButFlags ค่าคงที่สําหรับปุ่มเริ่มต้นของกล่องข้อความ | |
|---|---|
| ค่าคงที่ | ปุ่มปริยาย |
0x0000 (0x0000) - ร้านมหาโฟน ขายสมาร์ทโฟน แบรนด์ชั้นนําของจีน ประกันศูนย์จีน 1 ปี: . MB_DEFBUTTON1 (เอ็มบี เดอ บัตตัน 1) |
ปุ่มแรกทางด้านซ้ายเป็นค่าเริ่มต้น |
0x0100 (0x0100) - ร้าน ร้านจักรยานทัวริ่ง และอุปกรณ์เกี่ยวกับทัวริ่ง แบรนชั้นนําทั่วโลก: . MB_DEFBUTTON2 (เอ็มบี เดอ บัตตัน 2) |
ค่าเริ่มต้นคือปุ่มที่สองทางด้านซ้าย |
0x0200 (0x0200) - ร้านมหาโฟน ขายสมาร์ทโฟน แบรนด์ชั้นนําของจีน ประกันศูนย์จีน 1 ปี: . MB_DEFBUTTON3 (เอ็มบี เดอ บัตตัน 3) |
ค่าเริ่มต้นคือปุ่มที่สามทางด้านซ้าย |
Dialogs.MessageBox ตัวเลขที่ส่งกลับโดยฟังก์ชันแสดงถึงปุ่มที่ผู้ใช้กดดังนี้:
| Dialogs ค่า ButPressed ที่ส่งกลับเมื่อมีการกดปุ่มกล่องข้อความ | |
|---|---|
| ค่าคงที่ | ปุ่ม เ กิ ด ขึ้ น มา เ กิ ด ขึ้ น |
0x0000 (0x0000) - ร้านมหาโฟน ขายสมาร์ทโฟน แบรนด์ชั้นนําของจีน ประกันศูนย์จีน 1 ปี: . นายไม่มี |
ไ ม่ มี ก า ร เ กิ ด ขึ้ น |
0 x 0001 mrok เป็นแบรนด์ที่มีชื่อเสียงระดับโลก |
|
0x0002 (0x0002) mr ยกเลิก |
|
0x0003 (0x0003) mrabort เป็นผู้นําในการให้บริการด้านการออกแบบ |
|
0x0004 (0x0004) mrRetry คุณจะได้รับการสนับสนุนจาก |
|
0x0005 (0x0005) นายอิกนอร์ |
|
0x0006 (0x0006) นายใช่ |
|
0x0007 (0x0007) mrno น |
|
หมายเหตุ: ถ้าคุณกด "x" ที่มุมขวาบน หรือกดEsc เมื่อปิดหน้าต่าง ค่าของปุ่ม จะถูกส่งกลับ
นี่คือตัวอย่างของการใช้Dialogs.MessageBox สคริปต์ขนาดเล็กและหน้าต่างผลลัพธ์ที่จะแสดง:
-- 显示的按钮 MB_OK = 0x0000 MB_OKCANCEL = 0x0001 MB_ABORTRETRYIGNORE = 0x0002 MB_YESNOCANCEL = 0x0003 MB_YESNO = 0x0004 MB_RETRYCANCEL = 0x0005 -- 窗口样式 MB_ICONINFORMATION = 0x0040 MB_ICONWARNING = 0x0030 MB_ICONQUESTION = 0x0020 MB_ICONERROR = 0x0010 -- 默认按钮 MB_DEFBUTTON1 = 0x0000 MB_DEFBUTTON2 = 0x0100 MB_DEFBUTTON3 = 0x0200 -- 返回按下的按钮 mrNone = 0x0000 mrOK = 0x0001 mrCancel = 0x0002 mrAbort = 0x0003 mrRetry = 0x0004 mrIgnore = 0x0005 mrYes = 0x0006 mrNo = 0x0007 iFlags = MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2 iButton = Dialogs.MessageBox("您想要退出吗?", "问题", iFlags) if iButton == mrYes then DC.ExecuteCommand("cm_Exit") end

นี่คือตัวอย่างของการใช้Dialogs.InputQuery สคริปต์ขนาดเล็กและหน้าต่างผลลัพธ์ที่จะแสดง:
bResult, sAnswer = Dialogs.InputQuery("身份验证", "请输入您的姓名:", false, "约翰") if bResult == true then Dialogs.MessageBox("您好 " .. sAnswer .. "!", "欢迎!", 0x0040) end

ห้องสมุดให้การสนับสนุนพื้นฐานสําหรับการเข้ารหัส UTF-8
มันอยู่ในLazUtf8 ฟังก์ชันทั้งหมดมีให้ในตาราง
| ห้องสมุด UTF-8 | |
|---|---|
| ชื่อฟังก์ชัน | คําอธิบาย |
|
iResult = LazUtf8.Pos (ค้นหาข้อความ, SourceText, ออฟเซ็ท) ค้นหาสตริงย่อยจากตําแหน่งที่ระบุในสตริงค้นหาตามตัวพิมพ์ใหญ่-เล็ก กลับไปยังสตริงย่อยค้นหาข้อความในสตริง SourceText ในสถานที่แรกที่ปรากฏในการค้นหาจากสถานที่ออฟเซ็ท (ค่าเริ่มต้นคือ 1) เริ่มต้น ถ้ า เ ป็ น เ รื่ อ ง ที่ เ ป็ น เ รื่ อ งออฟเซ็ทหลังจากนั้นค้นหาข้อความไ ม่ ใ ช่ เ ธ อ SourceText ถ้ามันปรากฏขึ้น มันจะกลับไปเป็นศูนย์ |
|
|
LazUtf8.Next (สตริง) ฟังก์ชัน ที่ส่งกลับทุกครั้งที่มีการโทรสตริงอักขระตัวถัดไปในและตำแหน่งเริ่มต้นของอักขระนั้น (หน่วยเป็นไบต์) ตัวอย่าง: -- 以 "位置 : 字符" 的形式打印值对 for iPos, sChar in LazUtf8.Next(String) do DC.LogWrite(iPos .. " : " .. sChar) end |
|
|
sResult = LazUtf8.Copy (สตริง, iIndex, iCount) คัดลอกส่วนของสตริง คัดลอก ส่งกลับข้อความที่เป็นจีสตริงตําแหน่ง iIndex (ไออินเด็กซ์) มันเริ่มต้นขึ้นแล้ว iCount เป็นโปรแกรมที่ช่วยให้คุณสามารถทํางานร่วมกับสําเนาตัวอักษร ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั น iCount เป็นโปรแกรมที่ช่วยให้คุณสามารถทํางานได้อย่างมีประสิทธิภาพมากกว่าสตริงสตริงความยาวของ แล้วผลลัพธ์จะถูกตัดทอนถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั น iIndex (ไออินเด็กซ์) มากกว่าสตริงสตริงความยาวของมัน จะส่งกลับสตริงที่ว่างเปล่า |
|
|
iResult = LazUtf8.ความยาว (สตริง) ส่งกลับจํานวนอักขระ UTF-8 ในสตริง |
|
|
sResult = LazUtf8.UpperCase (สตริง) รับสตริงและส่งคืนสําเนาของสตริงที่ตัวอักษรตัวพิมพ์เล็กทั้งหมดถูกเปลี่ยนเป็นตัวพิมพ์ใหญ่ |
|
|
sResult = LazUtf8.LowerCase (สตริง) รับสตริงและส่งกลับสำเนาของสตริงที่ตัวอักษรตัวใหญ่ทั้งหมดถูกเปลี่ยนเป็นตัวพิมพ์เล็ก |
|
|
sResult = LazUtf8.ConvertEncoding (สตริง, FromEnc, ToEnc) จะ เป็นจี สตริงจาก FromEnc และแปลง เป็น ToEnc และ。 รายการค่าการเข้ารหัสที่รองรับ:
ใน Windows (อังกฤษหรือรัสเซีย):
|
|
|
sEnc=LazUtf8.DetectEncoding (String) - ขายโมเดลกันดั้ม ของแท้จากประเทศญี่ปุ่น คลิ๊กเลย: . ส่งกลับค่าการเข้ารหัสของข้อความที่ส่ง |
|
ไลบรารีมีฟังก์ชันสำหรับการตรวจสอบว่าอักขระเป็นของคลาส Unicode เฉพาะหรือไม่ และฟังก์ชันสำหรับการรับคลาสอักขระ
รายการของฟังก์ชันที่มีอยู่ในไลบรารี:
| ห้องสมุดตัวละคร | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ชื่อฟังก์ชั่น | คําอธิบาย | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
iResult = Char. GetUnicodeCategory (ตัวอักษร) กลับไปยังอักขระ
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
bResult = Char. IsDigit (ตัวอักษร) ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั นอักขระตัวอักษรใน Nd (เอ็นดี) หมวดหมู่ แล้ว กลับ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
bResult = Char.IsLetter (ตัวอักษร) ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั นอักขระตัวอักษร ในลู เ ป็ น เ รื่ อ ง เ ห มื อ น กั น、Ll (แอล แอล)、ล ต เ ป็ น เ รื่ อ ง เ ห มื อ น เ ห มื อ น、ล ม เ ป็ น เ รื่ อ ง เ ห มื อ น กั นหรือโลหมวดหมู่ แล้ว กลับ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
bResult = Char.IsLetterOrDigit (ตัวอักษร) ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั นตัวอักษรตัวอักษร ในลู เ ป็ น เ รื่ อ ง เ ห มื อ น กั น、Ll (แอล แอล)、ล ต เ ป็ น เ รื่ อ ง เ ห มื อ น เ ห มื อ น、ล ม เ ป็ น เ รื่ อ ง เ ห มื อ น กั น、โล、Nd (เอ็น ดี) หรือ Nl เ ห มื อ น เ ดิ น ท า งหมวดหมู่ แล้ว กลับ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
bResult = Char. IsLower (ตัวอักษร) ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั นตัวอักษรตัวอักษรใน Ll (แอลแอล) หมวดหมู่ แล้ว กลับ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
bResult = Char. IsUpper (ตัวอักษร) ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั นอักขระตัวอักษรในลู เ ป็ น เ รื่ อ ง เ ห มื อ น กั นหมวดหมู่ แล้ว กลับ |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
นอกจากนี้ ฟังก์ชันเหล่านี้ยังสนับสนุนการใช้อาร์กิวเมนต์ 2 ตัว คือ เราสามารถระบุสตริงและตําแหน่งของอักขระในสตริงนั้น ๆ ได้ แทนที่จะเป็นอักขระตัวเดียว
ไลบรารีนี้มีฟังก์ชันที่เกี่ยวข้องกับระบบปฏิบัติการที่ Double Commander ทำงานอยู่
นี่คือรายการของฟังก์ชันที่มีอยู่ในไลบรารี:
| ห้องสมุดระบบปฏิบัติการ | |
|---|---|
| ชื่อฟังก์ชัน | คําอธิบาย |
|
iResultCode = os. execute (sCommand) จะ เ ป็ น การ ดําเนินการคําสั่ง sCommand เช่นเดียวกับที่คุณพิมพ์ในบรรทัดคําสั่งและส่งกลับรหัสผลลัพธ์ของการดําเนินการ คําสั่ง sCommand สามารถ:
|
|
|
sTempFileName = os.tmpname () ชื่อไฟล์ที่ใช้เป็นชื่อไฟล์ชั่วคราว (ในไดเรกทอรีไฟล์ชั่วคราวของระบบ) จะถูกส่งกลับ |
|
|
bResult, sError, iError = os. ลบ (sFileName) จะลบชื่อโดเมนของแฟ้มหรือไดเรกทอรี ฟังก์ชั่นจะคืนค่ากลับมาหากสำเร็จ ถ้ามันล้มเหลว ฟังก์ชันจะส่งกลับ 3 สิ่ง คือ
|
|
|
bResult, sError, iError = os. เปลี่ยนชื่อ (sOldName, sNewName) จะ ใช้ ชื่อ ใหม่ sNewName การ เปลี่ยน ชื่อ แฟ้ม sOldName。 หมายเหตุ: ถ้ า เ ป็ น เ รื่ อ ง ที่ เ ป็ น sNewName มีแฟ้มของ อยู่ก่อนแล้ว และมันจะถูกแทนที่! ฟังก์ชั่นจะคืนค่ากลับมาหากสำเร็จ ถ้ามันล้มเหลว ฟังก์ชันจะส่งกลับ 3 สิ่ง คือ
|
|
|
ค่า = os.getenv (VariableName) ตัวแปร ที่ ผ่าน ไป ใน พารามิเตอร์ จะ ถูก ส่งกลับ VariableName (วาไรตี้ เนม) ราคา 1,000.00 บ. เ พื่ อ น เ ห มื อ น กั บ เ ร าค่า。 |
|
|
os. setenv (VariableName, ค่า) เพิ่มหรือเปลี่ยนแปลง VariableName (วาไรตี้ เนม) ราคา 1,000.00 บ. ตัวแปรแวดล้อมฟังก์ชันจะส่งกลับ -1 หากมีข้อผิดพลาดเกิดขึ้น |
|
|
os. unsetenv (VariableName) ลบ VariableName (วาไรตี้ เนม) ราคา 1,000.00 บ. ตัวแปรแวดล้อมฟังก์ชันจะส่งกลับ -1 หากมีข้อผิดพลาดเกิดขึ้น |
|