openoffice: ค้นหาและแทนที่
ต้องการค้นหาและแทนที่ เอกสาร OpenOffice-Writer ที่บันทึกไว้เป็นนามสกุล .doc
(เพื่อให้ใช้งานข้ามระบบได้ เลยบันทึกเป็น .doc
ตระกูล Microsoft-Word)
โดยต้องการทำงานเป็นแบตช์ คือค้นหาและแทนที่คำว่า OLD
ด้วยคำว่า NEW
กับทุก ๆ ไฟล์
แก้ปัญหาโดยต้องเข้าไปสร้างคำสั่งมาโครภาษาเบสิกไว้ก่อน แล้วจึงสั่งงานด้วยบรรทัดคำสั่งในเชลล์อีกทีนึง
เริ่มด้วย ไปที่เมนู
Tools -> Macros -> Organize Macros -> OpenOffice.org Basic
-> My Macros -> Standard
เลือก New
ตั้งชื่อรูทีนว่า BatchFixMissSpell
... Sub BatchFixMissSpell(cFile) rem Load file cURL = ConvertToURL( cFile ) rem Set document oDoc = StarDesktop.loadComponentFromURL( cURL, "_blank", SELF, Array() ) rem Create Search Descriptor FandR = oDoc.createSearchDescriptor() rem Set search/replace string FandR.setSearchString("OLD") : FandR.setReplaceString("NEW") rem Do replace oDoc.ReplaceAll(FandR) rem Save file oDoc.storeToURL( cURL, Array() ) rem Write & exit oDoc.dispose() End Sub ...
บันทึกแล้วออกจากทั้งโปรแกรมมาโคร และ OpenOffice-Writer เลย
สมมุติถ้าจะค้นและแทนที่กับทุกไฟล์ที่เป็นนามสกุล .doc
ใช้คำสั่งในเชลล์ว่า
$ for i in *.doc; do soffice -invisible "macro:///Standard.Module1.BatchFixMissSpell(`pwd`/$i)"; done
เวลาใช้งานจริงอาจเก็บเป็นคำศัพท์ที่ผิดบ่อยแล้วเขียนลงไว้หลาย ๆ ศัพท์ น่าจะดี
อ้างอิง
- http://www.oooforum.org/forum/viewtopic.phtml?t=20642
- http://www.oooforum.org/forum/viewtopic.phtml?t=14409
- http://www.oooforum.org/forum/viewtopic.phtml?t=3772&highlight=batch
- http://www.oooforum.org/forum/viewtopic.phtml?t=55721
- http://www.oooforum.org/forum/viewtopic.phtml?p=185351&highlight=
- http://api.openoffice.org/docs/common/ref/com/sun/star/util/module-ix.html
เพิ่มเติม
- เวลาใช้งานกับชื่อไฟล์ภาษาไทย อาจมีปัญหาตอนส่งผ่านอาร์กิวเมนต์ อาจแปลงชื่อไฟล์เป็นอังกฤษก่อน แล้วจึงแปลงกลับ บรรทัดคำสั่งเป็นดังนี้
$ for i in *.doc; do \ echo $i;\ cp "$i" xxx.doc;\ soffice "macro:///Standard.Module1.BatchFixMissSpell(`pwd`/xxx.doc)";\ mv xxx.doc "$i";\ done
- ถ้าไฟล์ใหญ่ ดูเหมือนหลังจากทำไปสัก 10 ไฟล์ จะช้าลงจนค้างไปเลย ยังไม่ทราบวิธีแก้ (การยกเลิกตัวเลือก
-invisible
ช่วยได้เล็กน้อย)
- Printer-friendly version
- Log in or register to post comments
- 3791 reads
Recent comments