Double Commander

2.15.สคริปต์ Lua

เนื้อหา

1. บทนํา
2. DLL ที่ต้องการ
3. ห้องสมุดฟังก์ชั่นผู้บัญชาการคู่
3.1. ห้องสมุด DC
3.1.1. ตัวอย่างการใช้ DC. ExecuteCommand
3.2. ระบบห้องสมุด
3.2.1. SysUtils.FileGetAttr รายละเอียดผลตอบแทนค่า
3.2.2. SysUtils ตัวอย่างการใช้งาน FileGetAttr
3.2.3. ตัวอย่างการใช้ FindFirst, FindNext, และ FindClose
3.3. แกลลอรี่คลิปบอร์ด
3.3.1. ตัวอย่างการใช้ไลบรารีคลิปบอร์ด
3.4. ห้องสมุดกล่องโต้ตอบ
3.4.1. Dialogs ปุ่มที่แสดงในกล่องข้อความ
3.4.2. Dialogs รูปแบบหน้าต่างสําหรับกล่องข้อความ
3.4.3. Dialogs. ปุ่มที่ใช้งานเริ่มต้นสําหรับกล่องข้อความ
3.4.4. Dialogs. ค่าผลตอบแทนสําหรับกล่องข้อความ
3.4.5. Dialogs ตัวอย่างการใช้กล่องข้อความ
3.4.6. Dialogs ตัวอย่างการใช้งาน InputQuery
3.5. ห้องสมุด UTF-8
3.6. ห้องสมุดของตัวละคร
3.7. ไลบรารีระบบปฏิบัติการ
4. ดรรชนี

1.บทนํา

สํา หรับ ข้อมูล เพิ่มเติม เกี่ยวกับ ภาษา การเขียน โปรแกรม สคริปต์ 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 กว่าจะผ่าน"" เร็วขึ้น

2. DLL ที่ต้องการ

เพื่อให้สามารถตีความไฟล์สคริปต์ 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 ที่จะใช้เปลี่ยนชื่อแฟ้ม (และพาธ) ในพารามิเตอร์

3.ห้องสมุดฟังก์ชั่นผู้บัญชาการคู่

ผู้บัญชาการคู่ให้ห้องสมุดบางส่วนของฟังก์ชั่นสําหรับสคริปต์ Lua ของเรา

นี่คือรายการของไลบรารีเหล่านี้

รายการห้องสมุด
ชื่อห้องสมุดชื่อของสคริปต์คําอธิบายโดยย่อ
DC (ดีซี)ฟังก์ชั่นเฉพาะผู้บัญชาการคู่
SysUtils เป็นผลิตภัณฑ์ที่มีคุณภาพสูงในราคาที่แข่งขันได้ฟังก์ชั่นระบบต่างๆ
Clipbrd วิดีโอมีฟังก์ชั่นคลิปบอร์ดภายนอก
Dialogs และการมีปฏิสัมพันธ์กับผู้ใช้
LazUtf8 เป็นผลิตภัณฑ์ที่ได้รับความนิยมมากที่สุดในโลกฟังก์ชั่นสตริง UTF-8
ชาร์ (Char)รับข้อมูลตัวละคร
โอเอสฟังก์ชั่นที่เกี่ยวข้องกับระบบปฏิบัติการ

3.1.ห้องสมุด DC

ไลบรารีนี้มีฟังก์ชันเฉพาะของผู้บัญชาการคู่

มันอยู่ในนั้นDC ฟังก์ชันทั้งหมดมีให้ในตาราง

ห้องสมุด DC
ชื่อฟังก์ชันคําอธิบาย

DC. LogWrite (iMessage, iMsgType, bForce, bLogFile) - ดาวน์โหลด

เขียนจดหมายไปยังหน้าต่างปูมบันทึก:

  • sMessage คืออะไร: ข้อความ
  • iMsgType เป็นโปรแกรมที่ช่วยให้คุณสามารถค้นหาข้อมูลที่เกี่ยวข้องกับ: ประเภทข้อความ: 0 - ข้อมูล, 1 - สําเร็จ, 2 - ข้อผิดพลาด
  • 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 ค้นหา ปุ่ม ใน ไฟล์ สํา รอง ข้อมูล แถบ เครื่องมือ หรือ เพียงแค่ คัดลอก ปุ่ม ไป ยัง คลิป บอร์ด และ วาง โค้ด ใน ตัว แก้ไข ข้อความ

หมายเหตุ: ตัวระบุจะถูกสร้างขึ้นโดยอัตโนมัติและไม่จําเป็นต้องตรงกับตัวระบุของปุ่มที่คล้ายกันในสําเนาอื่นของโปรแกรม แต่เราสามารถตั้งค่าของเราเองถ้าจําเป็น

3.1.1.ตัวอย่างการใช้ DC. ExecuteCommand

ในตัวอย่างนี้ เราได้เขียนสคริปต์อย่างง่าย ซึ่งจะทำดังนี้

  1. โฟกัสไปยังแผงด้านขวา
  2. ปิดแท็บที่เปิดอยู่ทั้งหมด
  3. สลับไปยังโฟลเดอร์เฉพาะ
  4. โฟกัสไปที่แผงด้านซ้าย
  5. ปิดแท็บที่เปิดอยู่ทั้งหมด
  6. สลับไปยังโฟลเดอร์เฉพาะ
  7. เปิดแท็บใหม่
  8. สลับไปยังโฟลเดอร์ที่กำหนด
-- 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, เราสามารถกําหนดค่าปุ่มเช่นนี้:

从工具栏调用 Lua 脚本

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

使用内部编辑器进行 Lua 语法高亮显示

3.2.ห้องสมุดระบบ

ไลบรารีนี้มีฟังก์ชันของระบบที่หลากหลาย

มันอยู่ในนั้นSysUtils ฟังก์ชันทั้งหมดมีให้ในตาราง

ห้องสมุดระบบ
ชื่อฟังก์ชั่นคําอธิบาย

SysUtils.Sleep (iMilliseconds) - ดาวน์โหลด

หยุด การประมวลผล ของ สคริปต์ เป็นเวลา มิ ล ลิ วินาที ตามที่ ระบุ iMilliseconds คือ อะไร
การประมวลผลสคริปต์จะดําเนินต่อไปหลังจากเวลาที่กําหนด

SysUtils.GetTickCount ()

คืนค่าการนับเวลาที่เพิ่มขึ้นมันสามารถใช้สําหรับการวัดเวลา แต่ไม่ควรสันนิษฐานว่าช่วงเวลาระหว่างเห็บ

bExists = SysUtils FileExists (sFileName) (ไฟล์เสียง)

ตรวจสอบระบบไฟล์สําหรับการมีไฟล์ที่เฉพาะเจาะจง

ถ้ า มี ก า ร เ ป็ น เ รื่ อ ง ที่ เ ป็ น เ รื่ อ ง sFileName ของเอกสารที่มีอยู่ใน bExists วิดีโอค่าผลตอบแทนปานกลางtrue, กลับไปเป็นอย่างอื่นfalse

bExists = SysUtils. DirectoryExists (sDirectory)

การตรวจสอบ sDirectory (เอส ไดเร็คทอรี่) รถมอเตอร์ไซค์ซูซูกิ รถจักรยานยนต์ซูซูกิว่ามีอยู่ในระบบไฟล์และเป็นไดเรกทอรีจริงๆ หรือไม่

ถ้ า เ ป็ น เ รื่ อ ง นี้ เ ป็ น เ รื่ อ ง เ ห มื อ น bExists วิดีโอค่าผลตอบแทนปานกลางtrue, กลับไปเป็นอย่างอื่นfalse

iAttr = SysUtils FileGetAttr (sFileName)

ใน iAttr คืออะไร? แฟ้มที่ถูกส่งกลับโดเมนการตั้งค่าคุณสมบัติของ

สํา หรับ คํา อธิบาย โดยละเอียด ของ ค่า ผลตอบแทน โปรด ดู ที่นี่ คือ

จัดการ, FindData = SysUtils. FindFirst (sPath)

ค้นหา ด้วย sPath - เ ธ อ เ ป็ น เ ธ อ เ ธ อแฟ้มที่เข้าคู่กัน โดยปกติจะใช้ไวลด์การ์ด

หากไม่พบไฟล์มือจับจะ เ ป็ นnil

เมื่อพบรายการอย่างน้อยหนึ่งรายการจะถูกส่งกลับมือจับสามารถนํามาใช้ในภายหลังได้SysUtils.FindNext โทรหาเพื่อค้นหาการแข่งขันอื่น ๆ ในรูปแบบเดียวกัน

ค้นหาข้อมูลตารางมีข้อมูลเกี่ยวกับไฟล์หรือไดเรกทอรีที่พบ

FindData ช่องสําหรับตารางมีดังนี้:

  • เ พื่ อ น เ ห มื อ น กั น: ชื่อไฟล์ (ไม่รวมพาธ)
  • Attr คือ อะไร ?: คุณสมบัติ ของ ไฟล์ (ดู รายละเอียด เพิ่มเติม ที่นี่ คือ)。
  • ขนาด: ขนาดไฟล์เป็นไบต์
  • เวลา เ ป็ น เ รื่ อ ง เ ห มื อ น กั น: การประทับเวลาของไฟล์ (วินาทีตั้งแต่ 1 มกราคม 1970)

ผลลัพธ์, FindData = SysUtils. FindNext (จัดการ)

โดยการนํากลับมาใช้ใหม่แฮนด์, ค้นหาโดยFindFirst คู่ต่อไปของลําดับการค้นหาที่เริ่มต้น

หากพบไฟล์หรือไดเรกทอรี จะถูกส่งกลับผล ต อ น เ ห มื อ น กั บ เ ร าจะ ไ ม่ ไ ด้ เ ป็ น เ รื่ อ ง เ ห มื อ น เ ห มื อ นnil

ด้วยSysUtils.FindFirst ข้อควรระวังเดียวกันนี้ นําไปใช้ที่นี่

หมายเหตุ: ครั้งสุดท้ายSysUtils.FindNext การโทรจะต้องเป็นไปตามการใช้เดียวกันเสมอแฮนด์เ พื่ อ น เ ห มื อ น กั บ เ ร าSysUtils.FindClose โทรออกการทําเช่นนั้นจะทําให้เกิดการรั่วไหลของหน่วยความจํา

SysUtils.FindClose (จับ)

จบ ก า ร เ รี ย น เ รี ย น เ รี ย นSysUtils.FindFirst/SysUtils.FindNext โทรออก

ปลดปล่อยหน่วยความจําใด ๆ ที่ใช้โดยการโทรเหล่านี้

มันเป็นสิ่งจําเป็นอย่างยิ่งที่จะทําให้การโทรนี้, มิฉะนั้นมันอาจทําให้เกิดการรั่วไหลของหน่วยความจํา.

bResult = SysUtils สร้างไดเรกทอรี (sDirectory)

การสร้างแคตตาล็อก sDirectory (เอส ไดเร็คทอรี่) รถมอเตอร์ไซค์ซูซูกิ รถจักรยานยนต์ซูซูกิเป็นเส้นทางที่สมบูรณ์ไปยังไดเรกทอรี

ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั น sDirectory (เอส ไดเร็คทอรี่) รถมอเตอร์ไซค์ซูซูกิ รถจักรยานยนต์ซูซูกิมีอยู่หรือสร้างเสร็จแล้ว ให้ส่งกลับtrue。หากการสร้างส่วนใดส่วนหนึ่งล้มเหลว ให้ส่งกลับfalse

bResult = SysUtils สร้างฮาร์ดลิงค์ (sFileName, sLinkName)

สํา หรับ เอกสารโดเมนสร้าง ลิงค์ ยาก sLinkName

คืน ถ้า สําเร็จ แล้ว นะ ครับtrue, กลับไปเป็นอย่างอื่นfalse

bResult = SysUtils. สร้างสัญลักษณ์ลิงค์ (sFileName, sLinkName)

สํา หรับ แฟ้ม หรือ ไดเรกทอรีโดเมนการ สร้าง ลิงก์ สัญลักษณ์ sLinkName (เอส ลิงค์ เนม)

คืน ถ้า สําเร็จ แล้ว นะ ครับtrue, กลับไปเป็นอย่างอื่นfalse

sTarget = SysUtils. ReadSymbolicLink (sLinkName, bRecursive)

อ่านลิงก์สัญลักษณ์ sLinkName (เอส ลิ้งค์ เนม) เป้าหมายของ

ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั น bRecursive คืออะไรเ พื่ อ น เ ห มื อ น กั นtrue และการเชื่อมโยงไปยังการเชื่อมโยงอื่น, การวิเคราะห์ จนกว่าจะพบชื่อไฟล์ที่ไม่ใช่การเชื่อมโยงที่ถูกต้อง.

กลับไปที่ลิงก์สัญลักษณ์ sLinkName (เอส ลิ้งค์ เนม) พาธที่ชี้ไป หรือในกรณีที่ลิงก์ไม่ถูกต้อง หรือไฟล์ที่ชี้ไปไม่มีอยู่จริง และ bRecursive คืออะไรเ พื่ อ น เ ห มื อ น กั นtrue จะคืนค่าสตริงว่างกลับมา

sName = SysUtils. สารสกัดจากไฟล์ (sFileName)

แยกส่วนของชื่อไฟล์จากชื่อไฟล์สำหรับเส้นทางแบบเต็ม

ชื่อไฟล์ประกอบด้วยอักขระตัวคั่นไดเรกทอรีตัวสุดท้าย ("/" หรือ "\") หรืออักขระทั้งหมดที่อยู่เบื้องหลังตัวอักษรไดรฟ์

sExt = SysUtils. ExtractFileExt (sFileName)

คืนค่านามสกุลของชื่อแฟ้ม ('.' ล่าสุดตัวอักษรทั้งหมดหลัง (จุด) รวมถึง "... "ตัวอักษร)

sysUtils. ExtractFilePath (sFileName) - ไฟล์เสียง

แยกพาธ (รวมถึงตัวอักษรของไดรฟ์) จากชื่อไฟล์

พาธประกอบด้วยอักขระทั้งหมดก่อนอักขระตัวคั่นไดเรกทอรีตัวสุดท้าย ("/" หรือ "\") รวมถึงตัวคั่นไดเรกทอรีเอง

sDir = SysUtils. ExtractFileDir (sFileName)

สกัด เ พี ย ง เ พี ย งโดเมนส่วนไดเรกทอรี่ รวมถึงตัวอักษรของไดรฟ์

ไม่มีตัวคั่นไดเรกทอรีที่ลงท้ายด้วยชื่อไดเรกทอรีซึ่งเป็นเหมือนSysUtils.ExtractFilePath ต่างออกไป

sDrive = SysUtils. ExtractFileDrive (sFileName) (ไฟล์เสียง)

แยกส่วนของไดรฟ์จากชื่อไฟล์

โปรดทราบว่าตัวอักษรไดรฟ์ไม่ได้รับการสนับสนุนในบางระบบปฏิบัติการ

sName=SysUtils.GetAbsolutePath (sFileName, sBaseDirectory) - ดาวน์โหลด

กลับไปยังตำแหน่งพาธแบบสมบูรณ์ (เต็ม) ของแฟ้ม:

  • sFileName: ชื่อไฟล์ที่มีเส้นทางสัมพัทธ์
  • sBaseDirectory เป็นโปรแกรมที่ช่วยให้คุณสามารถค้นหาข้อมูลได้อย่างง่ายดาย: ใช้เป็นโดเมนไดเรกทอรีของไดเรกทอรีฐาน

ถ้า ไม่ สามารถ ได้ ฟังก์ชัน จะ กลับ มา sFileName มูลค่าของมัน

sName=SysUtils.GetRelativePath (sFileName, sBaseDirectory)

ส่งกลับชื่อแฟ้มที่สัมพันธ์กับไดเรกทอรีที่ระบุ:

  • โดเมน: ชื่อไฟล์เต็ม (สมบูรณ์)
  • sBaseDirectory เป็นโปรแกรมที่ช่วยให้คุณสามารถค้นหาข้อมูลได้อย่างง่ายดาย: ใช้เป็นโดเมนไดเรกทอรีของไดเรกทอรีฐาน

ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั น sFileName และ sBaseDirectory เป็นโปรแกรมที่ช่วยให้คุณสามารถค้นหาข้อมูลได้อย่างง่ายดายมีค่าที่เหมือนกันและฟังก์ชันจะส่งกลับสตริงว่าง ("")ถ้าคุณไม่สามารถรับชื่อไฟล์ที่มีเส้นทางสัมพัทธ์ได้ ฟังก์ชันจะส่งกลับโดเมนมูลค่าของมัน

bResult = SysUtils. MatchesMask (sFileName, sMask, iMaskOptions)

ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั น sFileName แ ล ะ จ ง อ ย่ า ใ ห้ เ ป็ นผู้ ป ฏิ เ ส ธ ศ รั ท ธ า sMask เป็นผลิตภัณฑ์ที่ได้รับการออกแบบมาสําหรับตรง แล้ว กลับ มา เลย ครับ ๆtrue

iMaskOptions ตัวเลือก (อาร์กิวเมนต์ที่เลือกได้ ค่าเริ่มต้นคือ 0) ถูกตั้งค่าให้เป็นผลรวมของค่าต่อไปนี้:

ค่า คําอธิบาย
1
กรณีที่มีความละเอียดอ่อน
2
ไม่สนใจสําเนียงและการเชื่อมโยง
4
ตัวกรองสไตล์ Windows: "*.*"นอกจากนี้ยังตรงกับไฟล์ที่ไม่มีส่วนขยาย ฯลฯ
8
เปิด ใช้ งานการ สนับสนุน พินอิน (แฟ้ม จะ ถูก ใช้ pinyin.tbl

bResult = SysUtils. MatchesMaskList (sFileName, sMaskList, sSeparator, iMaskOptions)

ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั น sFileName กับ ก า ร เ รี ย น เ รี ย น เ รี ย น เ รี ย น sSeparator คืออะไร (ค่าปริยายคือ ';') หน้ากากสำหรับการส่งผ่านที่แยกออกจากกัน sMaskList (s MaskList) - แอพพลิเคชั่นเพื่อความบันเทิงอย่างน้อย 1 รายการ ที่ ตรงกัน ก็ จะ ได้ รับ การ คืนtrue

sSeparator คืออะไรและ iMaskOptions ตัวเลือก (ดูด้านบน) เป็นตัวแปรเสริม

sTempFileName = SysUtils GetTempName ()

ชื่อ ไฟล์ ที่ ใช้ เป็น ชื่อ ไฟล์ ชั่วคราว (ใน ไดเรกทอรี ไฟล์ ชั่วคราว ของ ระบบ) จะ ถูก ส่งกลับ คล้าย กับ os.tmpname ฟังก์ชัน แต่ ไฟล์ จะ ถูก สร้าง ขึ้น ใน ไดเรกทอรี ย่อย ที่ ถู กลบ โดยอัตโนมัติ เมื่อ ปิด Double Commander
ถ้าฟังก์ชันไม่สามารถสร้างชื่อที่ไม่ซ้ำกันได้ ฟังก์ชันจะส่งกลับสตริงว่าง

SysUtils.PathDelim

ระบบปฏิบัติการปัจจุบันใช้เพื่อแยกอักขระของชื่อไดเรกทอรีในชื่อไฟล์เต็ม

ในระบบ Unix / Linux ตัวคั่นไดเรกทอรีจะเป็น "/" และใน Windows จะเป็น "\"

3.2.1. SysUtils.FileGetAttr รายละเอียดผลตอบแทนค่า

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 จะถูกส่งกลับ

โปรดดูส่วนถัดไปตัวอย่างใน

3.2.2. SysUtils ตัวอย่างการใช้งาน FileGetAttr

สคริปต่อไปนี้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 มันจะเป็นอาร์กิวเมนต์แรกที่ส่งผ่านหลังจากชื่อไฟล์สคริปต์

ดังนั้นในตัวอย่างของเราเราสามารถกําหนดค่าปุ่มแถบเครื่องมือเช่นนี้:

使用 cm_ExecuteScript 的参数

ในตัวอย่างนี้ อาร์กิวเมนต์%"0%p มันจะถูกส่งต่อไปยังสคริปต์นี่จะเป็นชื่อไฟล์ของรายการที่เลือกไว้ในแผงที่ใช้งานอยู่ในปัจจุบันโดยไม่มีเครื่องหมายใบเสนอราคา

3.2.3.ตัวอย่างการใช้ FindFirst, FindNext, และ FindClose

ในตัวอย่างสคริปต์ต่อไปนี้เราจะสแกนเนื้อหาไดเรกทอรีที่ได้รับในพารามิเตอร์และเก็บข้อมูลผลลัพธ์ลงในไฟล์ข้อความของชื่อไฟล์ที่ส่งผ่านด้วยพารามิเตอร์ที่สอง

มันจะทําให้เรามีความคิดที่ดีFindFirstFindNext และ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

ในตัวอย่างข้างต้น เราต้องส่งผ่านอาร์กิวเมนต์สองตัวไปยังสคริปต์:

  1. หน้าหลัก / แท็ค [1]- แคตตาล็อกที่เราต้องการเนื้อหา
  2. หน้าหลัก / แท็ค [2]- ชื่อไฟล์ผลลัพธ์ที่ใช้ในการจัดเก็บผลลัพธ์

ดังนั้น การใช้คําสั่งภายในซม. _ ExecuteScript มันเป็นเรื่องง่ายที่จะกําหนดค่าปุ่มแถบเครื่องมือและผ่านพารามิเตอร์ที่จะทํามันทั้งหมด

使用 cm_ExecuteScript 的参数

ในตัวอย่างนี้ อาร์กิวเมนต์%"0%Ds จะถูกส่งผ่านไปยังสคริปต์เป็นอาร์กิวเมนต์แรกนี่จะแสดงถึงไดเรกทอรีที่แสดงในแผงที่ใช้งานอยู่โดยไม่มีเครื่องหมายใบเสนอราคา

3.3.แกลลอรี่คลิปบอร์ด

ผู้บัญชาการคู่สามารถให้ฟังก์ชั่นคลิปบอร์ดภายนอกสําหรับสคริปต์ Lua ของเรา.

ตารางต่อไปนี้แสดงฟังก์ชันที่เกี่ยวข้อง:

แกลลอรี่คลิปบอร์ด
ชื่อฟังก์ชั่นคําอธิบาย

Clipbrd ชัดเจน ()

ล้างเนื้อหาของคลิปบอร์ด

sVar = Clipbrd.GetAsText () - เ ธ อ เ ป็ น เ ธ อ

รับ เนื้อหา ข้อความ ปัจจุบัน ของ คลิป บอร์ด และ กําหนด ให้ กับ sVar เป็ น ตั ว อย่ า ง ไร ก็ ต าม。ถ้าคลิปบอร์ดไม่มีข้อความ ฟังก์ชันจะส่งกลับสตริงว่าง

Clipbrd.SetAsText (sVar) - ดาวน์โหลด

เก็บไว้ในคลิปบอร์ด sVar เป็ น ตั ว อย่ า งไรก็ ต ามเนื้อหาของข้อความ.

Clipbrd.SetAsHtml (sHtml)

การแปลงข้อความเป็น html sHtml (เอส เอช ที เอ็ม) เพิ่มไปยังคลิปบอร์ด (CF_HTML รูปแบบคลิปบอร์ด)

เนื้อหาเหล่านี้จะถูกแทรกลงไปในแอพพลิเคชั่นที่รองรับรูปแบบคลิปบอร์ดนี้ เช่น MS Word, LO Writer เป็นต้น

การใช้Clipbrd.SetAsText และClipbrd.SetAsHtml ข้อมูลที่เก็บไว้นั้นถูกต้องเมื่อเราวาง แอปจะใช้รูปแบบที่ดีที่สุดที่สนับสนุน

ตัวอย่างเช่น เราอาจมีสิ่งต่อไปนี้:

  • Clipbrd.SetAsText("欢迎使用 Double Commander!")
  • Clipbrd.SetAsHtml("欢迎使用 <b>Double Commander</b>!")

ถ้าเราเปลี่ยนมาใช้ เพื่อลองวางอะไรสักอย่าง มันจะวางเป็นข้อความธรรมดา โดยเราใช้Clipbrd.SetAsText คัดลอกข้อความแต่ถ้าเราเปลี่ยนมาใช้ Microsoft Word แล้ววางอะไรบางอย่าง มันจะวางอันที่ 2 นั่นคือดับเบิ้ลคอมมานเดอร์ตัวหนา เนื่องจาก Microsoft Word รู้จักและสนับสนุนชนิดเนื้อหาคลิปบอร์ด

3.3.1.ตัวอย่างการใช้ไลบรารีคลิปบอร์ด

ตัวอย่างต่อไปนี้ใช้ฟังก์ชันสามฟังก์ชันที่เกี่ยวข้องกับคลิปบอร์ด:ClearGetAsText และ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

3.4.ห้องสมุดกล่องโต้ตอบ

ไลบรารีช่วยให้สคริปต์ของเราสามารถโต้ตอบกับผู้ใช้ แสดงข้อความ พร้อมท์ให้ใส่คำตอบ และอื่นๆ

ตารางต่อไปนี้แสดงรายการฟังก์ชันที่เกี่ยวข้อง:

ห้องสมุดกล่องโต้ตอบ
ชื่อฟังก์ชั่นคําอธิบาย

iButton = Dialogs. กล่องข้อความ (sMessage, sTitle, iFlags)

กล่องข้อความจะปรากฏขึ้นพร้อมท์ให้ผู้ใช้คลิกที่ปุ่มซึ่งจะถูกส่งกลับโดยฟังก์ชัน:

  • sMessage คืออะไร: ข้อความในกล่องข้อความ
  • sTitle - เ พื่ อ น เ ห มื อ น กั บ เ ร า: ส่วนหัวของกล่องจดหมาย
  • iFlags เป็นโปรแกรมที่ช่วยให้คุณสามารถค้นหาข้อมูลเกี่ยวกับ: บิต หรือ ค่า ของ ค่าคงที่ ที่ใช้ในการกําหนด ปุ่ม ที่จะแสดง รูปแบบ ของหน้าต่าง และ ปุ่ม เริ่มต้นโปรด ดู ตาราง ด้านล่าง สํา หรับ ข้อมูล เพิ่มเติมปุ่ม ที่ แสดงรูปแบบ ของ หน้าต่างหรือปุ่ม ปริยาย
  • iButton เป็น ผลิตภัณฑ์ ที่ ได้รับ การ ออกแบบ มา เพื่อ ตอบ สนองความต้องการ ของ ลูกค้า: ส่งกลับ ค่า ซึ่ง ระบุ ว่า ผู้ใช้ กดปุ่ม ใด (ดูตาราง นี้)。

bResult, sAnswer = Dialogs InputQuery (sTitle, smage, bMask, sdefault) - คําตอบที่ถูกต้อง

แสดงกล่องคำขอที่ผู้ใช้สามารถป้อนสตริง:

  • sTitle - เ พื่ อ น เ ห มื อ น กั บ เ ร า: ชื่อของกล่องคําขอ
  • sMessage คืออะไร: ข้อความในช่องคําขอ
  • bMask หน้ากากใบหน้า: ค่าบูลีน "เครื่องหมายดอกจัน" จะปรากฏขึ้นเมื่อเป็นจริงเพื่อซ่อนอักขระ
  • sdefault (เอส ดี ฟอร์ เมน): ข้อความแนะนําเริ่มต้นที่ผู้ใช้สามารถปรับเปลี่ยนได้ตามต้องการ
  • bResult (บี รี ฟ) เป็ น ตั ว อย่ า ง: ส่งกลับค่าบูลีนเพื่อระบุว่าผู้ใช้ป้อนเนื้อหาจริงหรือไม่
  • คําตอบ sAnswer: กลับไปที่สตริงและกลับไปเมื่อผู้ใช้ป้อนเนื้อหาและคลิก

sItem, iItem = Dialogs InputListBox (sTitle, sMessage, aItem, sdefault) - การตั้งค่า

แสดงกล่องโต้ตอบที่อนุญาตให้ผู้ใช้เลือกจากรายการ:

  • sTitle - เ พื่ อ น เ ห มื อ น กั บ เ ร า: ส่วนหัวของกล่องโต้ตอบ
  • sMessage คืออะไร: ข้อความในกล่องโต้ตอบ
  • a ไอเทม: ตาราง Lua ที่แต่ละองค์ประกอบในตารางจะต้องเป็นสตริง
  • sdefault (เอส ดี ฟั น) เป็ น: รายการที่ถูกเลือกไว้เป็นค่าเริ่มต้นในรายการ
  • sItem เ พื่ อ น เ ห มื อ น กั น: กลับรายการที่เลือกเป็นสตริงกลับถ้ากล่องโต้ตอบถูกยกเลิกnil
  • iItem เป็นผลิตภัณฑ์ที่ได้รับการออกแบบมาเพื่อตอบสนองความต้องการของลูกค้า: ดัชนีของรายการที่เลือก (นับจาก 1 ตามนิสัยของ Lua )

3.4.1. Dialogs ปุ่มที่แสดงในกล่องข้อความ

Dialogs.MessageBox ปุ่มที่แสดงโดยฟังก์ชันจะถูกควบคุมโดยบิตหรือค่าของค่าคงที่ต่อไปนี้:

Dialogs. MessageBox แสดงค่าคงที่ ButFlags ของปุ่ม
ค่าคงที่ปุ่มที่แสดงจากซ้ายไปขวา
0x0000 (0x0000) - ร้านมหาโฟน ขายสมาร์ทโฟน แบรนด์ชั้นนําของจีน ประกันศูนย์จีน 1 ปี: .
MB _ OK (เอ็มบี _ โอเค)
按钮 OK
0 x 0001
MB _ OKCANCEL - โรงแรม
按钮 OK 按钮 CANCEL
0x0002 (0x0002)
MB _ ABORTRETRYIGNORE - เว็บพนันออนไลน์ เกมส์คาสิโน บาคาร่า ไฮโล รูเล็ต แทงหวยจับยี่กี แทงพนันบอลออนไลน์
按钮 ABORT 按钮 RETRY 按钮 IGNORE
0x0003 (0x0003)
MB _ เยสโนคาเซล
按钮 YES 按钮 NO 按钮 CANCEL
0x0004 (0x0004)
MB _ เยสโน
按钮 YES 按钮 NO
0x0005 (0x0005)
MB _ RETRYCANCEL - โรงแรม เรด สกาย รีสอร์ท
按钮 RETRY 按钮 CANCEL

3.4.2. Dialogs รูปแบบหน้าต่างสําหรับกล่องข้อความ

Dialogs.MessageBox รูปแบบของหน้าต่างที่แสดงโดยฟังก์ชันจะถูกควบคุมโดยบิตหรือค่าของค่าคงที่ต่อไปนี้:

Dialogs คง ButFlags สําหรับไอคอนกล่องข้อความและรูปแบบ
ค่าคงที่รูปแบบของหน้าต่าง
0x0040 (0x0040)
MB _ ไอคอนฟอร์เมชั่น
图标 INFORMATION หน้าต่างข้อมูล
0x0030 (0x0030)
MB _ ไอคอน วอร์นิ่ง
图标 WARNING หน้าต่างแจ้งเตือน
0x0020 (0x0020)
MB _ ไอคอนเควสท์
图标 QUESTION หน้าต่างยืนยัน
0x0010 (0x0010)
MB _ ไอคอน ERROR
图标 ERROR หน้าต่างไม่ถูกต้อง

3.4.3. Dialogs ปุ่มที่ใช้งานเริ่มต้นสําหรับกล่องข้อความ

Dialogs.MessageBox ปุ่มที่ใช้งานเริ่มต้นที่แสดงโดยฟังก์ชันจะถูกควบคุมโดยบิตหรือค่าของค่าคงที่ต่อไปนี้:

Dialogs. ButFlags ค่าคงที่สําหรับปุ่มเริ่มต้นของกล่องข้อความ
ค่าคงที่ปุ่มปริยาย
0x0000 (0x0000) - ร้านมหาโฟน ขายสมาร์ทโฟน แบรนด์ชั้นนําของจีน ประกันศูนย์จีน 1 ปี: .
MB_DEFBUTTON1 (เอ็มบี เดอ บัตตัน 1)
ปุ่มแรกทางด้านซ้ายเป็นค่าเริ่มต้น
0x0100 (0x0100) - ร้าน ร้านจักรยานทัวริ่ง และอุปกรณ์เกี่ยวกับทัวริ่ง แบรนชั้นนําทั่วโลก: .
MB_DEFBUTTON2 (เอ็มบี เดอ บัตตัน 2)
ค่าเริ่มต้นคือปุ่มที่สองทางด้านซ้าย
0x0200 (0x0200) - ร้านมหาโฟน ขายสมาร์ทโฟน แบรนด์ชั้นนําของจีน ประกันศูนย์จีน 1 ปี: .
MB_DEFBUTTON3 (เอ็มบี เดอ บัตตัน 3)
ค่าเริ่มต้นคือปุ่มที่สามทางด้านซ้าย

3.4.4. Dialogs. ค่าผลตอบแทนสําหรับกล่องข้อความ

Dialogs.MessageBox ตัวเลขที่ส่งกลับโดยฟังก์ชันแสดงถึงปุ่มที่ผู้ใช้กดดังนี้:

Dialogs ค่า ButPressed ที่ส่งกลับเมื่อมีการกดปุ่มกล่องข้อความ
ค่าคงที่ปุ่ม เ กิ ด ขึ้ น มา เ กิ ด ขึ้ น
0x0000 (0x0000) - ร้านมหาโฟน ขายสมาร์ทโฟน แบรนด์ชั้นนําของจีน ประกันศูนย์จีน 1 ปี: .
นายไม่มี
ไ ม่ มี ก า ร เ กิ ด ขึ้ น
0 x 0001
mrok เป็นแบรนด์ที่มีชื่อเสียงระดับโลก
结果 OK
0x0002 (0x0002)
mr ยกเลิก
结果 CANCEL
0x0003 (0x0003)
mrabort เป็นผู้นําในการให้บริการด้านการออกแบบ
结果 ABORT
0x0004 (0x0004)
mrRetry คุณจะได้รับการสนับสนุนจาก
结果 RETRY
0x0005 (0x0005)
นายอิกนอร์
结果 IGNORE
0x0006 (0x0006)
นายใช่
结果 YES
0x0007 (0x0007)
mrno น
结果 NO

หมายเหตุ: ถ้าคุณกด "x" ที่มุมขวาบน หรือกดEsc เมื่อปิดหน้าต่าง ค่าของปุ่ม จะถูกส่งกลับ

3.4.5. Dialogs ตัวอย่างการใช้กล่องข้อความ

นี่คือตัวอย่างของการใช้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.MessageBox 使用示例

3.4.6. Dialogs ตัวอย่างการใช้งาน InputQuery

นี่คือตัวอย่างของการใช้Dialogs.InputQuery สคริปต์ขนาดเล็กและหน้าต่างผลลัพธ์ที่จะแสดง:

bResult, sAnswer = Dialogs.InputQuery("身份验证", "请输入您的姓名:", false, "约翰")

if bResult == true then
  Dialogs.MessageBox("您好 " .. sAnswer .. "!", "欢迎!", 0x0040)
end

Dialogs.InputQuery 使用示例

3.5.ห้องสมุด UTF-8

ห้องสมุดให้การสนับสนุนพื้นฐานสําหรับการเข้ารหัส 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 และ

รายการค่าการเข้ารหัสที่รองรับ:

  • การเข้ารหัสระบบเริ่มต้น (ขึ้นอยู่กับการตั้งค่าภูมิภาคของระบบ): "เริ่มต้น"
  • รหัส ANSI (Windows) เริ่มต้น (ขึ้นอยู่กับการตั้งค่าภูมิภาคของระบบ): "ansi"
  • รหัส OEM (DOS) เริ่มต้น (ขึ้นอยู่กับการตั้งค่าพื้นที่ระบบ): "oem"
  • Unicode: "utf8", "utf8bom", "ucs2le", "ucs2be"
  • ANSI (Windows): "cp1250", "cp1251", "cp1252", "cp1253", "cp1254", "cp1255", "cp1256", "cp1257", "cp1258"
  • OEM (DOS): "cp437", "cp850", "cp852", "cp865", "cp866", "cp874", "cp932", "cp936", "cp949", "cp950"
  • ISO 8859: "iso88591", "iso88592", "iso88593", "iso88594", "iso88595", "iso88597", "iso885999", "iso885910", "iso885913", "iso885914", "iso885915", "iso885916", "iso885910", "iso885913", "iso885915", "iso885916"
  • อื่น ๆ: , "koi 8 r", "koi 8 u", "koi 8 ru"
ความหมายของรหัสพิเศษ (ตัวอย่าง)

ใน Windows (อังกฤษหรือรัสเซีย):
  • "ค่าเริ่มต้น" - cp 1252 หรือ cp 1251
  • "ansi" - cp 1252 หรือ cp 1251
  • "oem" - cp 850 หรือ cp 866
ใน Linux (อังกฤษหรือรัสเซีย):
  • "เริ่มต้น" - utf8
  • "ansi" - cp 1252 หรือ cp 1251
  • "oem" - cp 850 หรือ cp 866

sEnc=LazUtf8.DetectEncoding (String) - ขายโมเดลกันดั้ม ของแท้จากประเทศญี่ปุ่น คลิ๊กเลย: .

ส่งกลับค่าการเข้ารหัสของข้อความที่ส่ง
รายการรหัสที่สนับสนุนมีความสัมพันธ์กับLazUtf8.ConvertEncoding การเข้ารหัสที่ใช้ในฟังก์ชันจะคล้ายกัน

3.6.ห้องสมุดตัวละคร

ไลบรารีมีฟังก์ชันสำหรับการตรวจสอบว่าอักขระเป็นของคลาส Unicode เฉพาะหรือไม่ และฟังก์ชันสำหรับการรับคลาสอักขระ

รายการของฟังก์ชันที่มีอยู่ในไลบรารี:

ห้องสมุดตัวละคร
ชื่อฟังก์ชั่นคําอธิบาย

iResult = Char. GetUnicodeCategory (ตัวอักษร)

กลับไปยังอักขระCharacter ประเภท Unicode ของค่าใดค่าหนึ่งต่อไปนี้:

ค่าคําอธิบาย
  ตัวอักษร:
0ตัวพิมพ์ ใหญ่ (Lu)
1ตัวพิมพ์ เล็ก (Ll)
2ตัวอักษร ชื่อเรื่อง (Lt)
3แก้ไข ตัวอักษร (Lm)
4ตัวอักษร อื่น ๆ (Lo)
  เครื่องหมาย:
5เครื่องหมาย ที่ ไม่ มี ช่องว่าง (Mn)
6ระยะห่าง เครื่องหมาย ผสม (Mc)
7ปิด เครื่องหมาย (Me)
  ตัวเลข:
8เลข ทศนิยม (Nd)
9ตัวอักษร และ ตัวเลข (Nl)
10ตัวเลข อื่น ๆ (ไม่)
  เครื่องหมายวรรคตอน
11เครื่องหมายวรรคตอน ตัว เชื่อมต่อ (พีซี)
12เครื่องหมายวรรคตอน (Pd)
13จุด เปิด ประมูล (Ps)
14เครื่องหมายวรรคตอน ปิด (Pe)
15เครื่องหมายวรรคตอน เริ่มต้น (Pi)
16เครื่องหมายวรรคตอน สุดท้าย (Pf)
17เครื่องหมายวรรคตอน อื่น ๆ (Po)
  สัญลักษณ์:
18สัญลักษณ์ คณิตศาสตร์ (Sm)
19สัญลักษณ์ สกุล เงิน (Sc)
20สัญลักษณ์ (Sk)
21สัญลักษณ์ อื่น ๆ (ดังนั้น)
  ตัวคั่น:
22ตัว คั่น พื้นที่ (Zs)
23ตัว คั่น แถว (Zl)
24ตัว คั่น ย่อหน้า (Zp)
  อื่น ๆ:
25การควบคุม (Cc)
26รูปแบบ (Cf)
27ตัวแทน (Cs)
28เฉพาะ (ร่วม)
29ไม่ ได้ รับมอบหมาย (Cn)

bResult = Char. IsDigit (ตัวอักษร)

ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั นอักขระตัวอักษรใน Nd (เอ็นดี) หมวดหมู่ แล้ว กลับtrue

bResult = Char.IsLetter (ตัวอักษร)

ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั นอักขระตัวอักษร ในลู เ ป็ น เ รื่ อ ง เ ห มื อ น กั นLl (แอล แอล)ล ต เ ป็ น เ รื่ อ ง เ ห มื อ น เ ห มื อ นล ม เ ป็ น เ รื่ อ ง เ ห มื อ น กั นหรือโลหมวดหมู่ แล้ว กลับtrue

bResult = Char.IsLetterOrDigit (ตัวอักษร)

ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั นตัวอักษรตัวอักษร ในลู เ ป็ น เ รื่ อ ง เ ห มื อ น กั นLl (แอล แอล)ล ต เ ป็ น เ รื่ อ ง เ ห มื อ น เ ห มื อ นล ม เ ป็ น เ รื่ อ ง เ ห มื อ น กั นโลNd (เอ็น ดี) หรือ Nl เ ห มื อ น เ ดิ น ท า งหมวดหมู่ แล้ว กลับtrue

bResult = Char. IsLower (ตัวอักษร)

ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั นตัวอักษรตัวอักษรใน Ll (แอลแอล) หมวดหมู่ แล้ว กลับtrue

bResult = Char. IsUpper (ตัวอักษร)

ถ้ า เ ป็ น เ รื่ อ ง เ ห มื อ น กั นอักขระตัวอักษรในลู เ ป็ น เ รื่ อ ง เ ห มื อ น กั นหมวดหมู่ แล้ว กลับtrue

นอกจากนี้ ฟังก์ชันเหล่านี้ยังสนับสนุนการใช้อาร์กิวเมนต์ 2 ตัว คือ เราสามารถระบุสตริงและตําแหน่งของอักขระในสตริงนั้น ๆ ได้ แทนที่จะเป็นอักขระตัวเดียว

3.7.ห้องสมุดระบบปฏิบัติการ

ไลบรารีนี้มีฟังก์ชันที่เกี่ยวข้องกับระบบปฏิบัติการที่ Double Commander ทำงานอยู่

นี่คือรายการของฟังก์ชันที่มีอยู่ในไลบรารี:

ห้องสมุดระบบปฏิบัติการ
ชื่อฟังก์ชันคําอธิบาย

iResultCode = os. execute (sCommand)

จะ เ ป็ น การ ดําเนินการคําสั่ง sCommand เช่นเดียวกับที่คุณพิมพ์ในบรรทัดคําสั่งและส่งกลับรหัสผลลัพธ์ของการดําเนินการ

คําสั่ง sCommand สามารถ:

  • คำสั่งเทอร์มินัล เช่นos.execute("dir > all.txt")
  • แฟ้มปฏิบัติการ เช่นos.execute("C:\\Windows\\System32\\calc.exe")
  • ปฏิบัติการที่มีพารามิเตอร์:
    os.execute("C:\\Utils\\fsum.exe -md5 test.bin > md5.txt")

sTempFileName = os.tmpname ()

ชื่อไฟล์ที่ใช้เป็นชื่อไฟล์ชั่วคราว (ในไดเรกทอรีไฟล์ชั่วคราวของระบบ) จะถูกส่งกลับ
ถ้าฟังก์ชันไม่สามารถสร้างชื่อที่ไม่ซ้ำกันได้ ฟังก์ชันจะส่งกลับสตริงว่าง

bResult, sError, iError = os. ลบ (sFileName)

จะลบชื่อโดเมนของแฟ้มหรือไดเรกทอรี

ฟังก์ชั่นจะคืนค่ากลับมาหากสำเร็จtrue

ถ้ามันล้มเหลว ฟังก์ชันจะส่งกลับ 3 สิ่ง คือ

  1. nil หมายถึง ความล้มเหลว
  2. sError เป็ น ตั ว อย่ า งอธิบายสำหรับข้อความแสดงข้อผิดพลาด
  3. ข้อผิดพลาดเป็ น รหัส ที่ ไ ม่ ไ ด้ รั บ ผิ ด

bResult, sError, iError = os. เปลี่ยนชื่อ (sOldName, sNewName)

จะ ใช้ ชื่อ ใหม่ sNewName การ เปลี่ยน ชื่อ แฟ้ม sOldName

หมายเหตุ: ถ้ า เ ป็ น เ รื่ อ ง ที่ เ ป็ น sNewName มีแฟ้มของ อยู่ก่อนแล้ว และมันจะถูกแทนที่!

ฟังก์ชั่นจะคืนค่ากลับมาหากสำเร็จtrue

ถ้ามันล้มเหลว ฟังก์ชันจะส่งกลับ 3 สิ่ง คือ

  1. nil หมายถึง ความล้มเหลว
  2. sError เป็ น ตั ว อย่ า งอธิบายสำหรับข้อความแสดงข้อผิดพลาด
  3. ข้อผิดพลาดเป็ น รหัส ที่ ไ ม่ ไ ด้ รั บ ผิ ด

ค่า = os.getenv (VariableName)

ตัวแปร ที่ ผ่าน ไป ใน พารามิเตอร์ จะ ถูก ส่งกลับ VariableName (วาไรตี้ เนม) ราคา 1,000.00 บ. เ พื่ อ น เ ห มื อ น กั บ เ ร าค่า
ถ้าไม่มีตัวแปรของชื่อนั้นอยู่ มันจะส่งกลับnil

os. setenv (VariableName, ค่า)

เพิ่มหรือเปลี่ยนแปลง VariableName (วาไรตี้ เนม) ราคา 1,000.00 บ. ตัวแปรแวดล้อมฟังก์ชันจะส่งกลับ -1 หากมีข้อผิดพลาดเกิดขึ้น

os. unsetenv (VariableName)

ลบ VariableName (วาไรตี้ เนม) ราคา 1,000.00 บ. ตัวแปรแวดล้อมฟังก์ชันจะส่งกลับ -1 หากมีข้อผิดพลาดเกิดขึ้น

4.ดรรชนี

ห้องสมุด DC

DC.CurrentPanel
DC.ExecuteCommand
DC.LogWrite


ห้องสมุดระบบ

SysUtils.CreateDirectory
SysUtils.CreateHardLink
SysUtils.CreateSymbolicLink
SysUtils.DirectoryExists
SysUtils.ExtractFileDir
SysUtils.ExtractFileDrive
SysUtils.ExtractFileExt
SysUtils.ExtractFileName
SysUtils.ExtractFilePath
SysUtils.FileExists
SysUtils.FileGetAttr
SysUtils.FindClose
SysUtils.FindFirst
SysUtils.FindNext
SysUtils.GetAbsolutePath
SysUtils.GetRelativePath
SysUtils.GetTempName
SysUtils.GetTickCount
SysUtils.MatchesMask
SysUtils.MatchesMaskList
SysUtils.PathDelim
SysUtils.ReadSymbolicLink
SysUtils.Sleep


แกลลอรี่คลิปบอร์ด

Clipbrd.Clear
Clipbrd.GetAsText
Clipbrd.SetAsHtml
Clipbrd.SetAsText


ห้องสมุดกล่องโต้ตอบ

Dialogs.InputListBox
Dialogs.InputQuery
Dialogs.MessageBox


ห้องสมุด UTF-8

LazUtf8.ConvertEncoding
LazUtf8.Copy
LazUtf8.DetectEncoding
LazUtf8.Length
LazUtf8.LowerCase
LazUtf8.Next
LazUtf8.Pos
LazUtf8.UpperCase


ห้องสมุดตัวละคร

Char.GetUnicodeCategory
Char.IsDigit
Char.IsLetter
Char.IsLetterOrDigit
Char.IsLower
Char.IsUpper


ห้องสมุดระบบปฏิบัติการ

os.execute
os.getenv
os.remove
os.rename
os.setenv
os.tmpname
os.unsetenv


Valid HTML 4.0 Transitional CSS Valid!