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
- 4006 reads







Recent comments