กระทู้เก่าบอร์ด อ.Yeadram
2,813 1
URL.หัวข้อ /
URL
vbscript : word to text
เมื่อวานนี้ไปได้ข้อมูล มา 1 โฟลเดอร์ เป็นข้อมูลคำอธิบายเชิงเทคนิค ขั้นตอน วิธีการอะไรบางอย่าง (บอกไม่ได้)
เขาแยกเป็นข้อๆ โดยแต่ละข้อ เก็บเป็น 1 ไฟล์เวิร์ด (.doc เปิดด้วย Microsoft word) ประมาณ 20 - 30 ไฟล์ ก็คือ ประมาณ 20-30 ข้อนั่นแหละครับ
ผมลองสุ่มๆ เปิดดูแต่ละไฟล์ ก็เห็นมันเป็นแค่ข้อความธรรมดา ไม่มีการแนบรูป หรือตารางอะไรเลย ก็สงสัยแล้วก็แอบด่าคนทำในใจว่า ทำไมคุณไม่ทำเป็นเป็นไฟล์ text วะ (.txt เปิดด้วย notepad) เพราะมันใช้เวลาและทรัพยากรน้อยกว่ากันเยอะเลยในการเปิดอ่าน แต่ก็ได้แค่ด่าในใจ ทำอะไรไม่ได้แล้วนี่
ก็เลยหาวิธีจะทำไงให้ทั้ง 30 ไฟล์นี้แปลงเป็น .txt ด้วยวิธีง่ายๆ บ้าง
จากการค้น google และทดลองเขียนครับ ก็ได้ สคริปต์นี้มา 1 ตัว ก็เอามาโพสต์ฝากไว้ในนี้ครับ เผื่อต้นฉบับในเครื่องผมหาย ผมจะได้มาคัดลอกเอาจากที่นี่ได้อีก และเผื่อเป็นประโยชน์กับท่านอื่นๆ ด้วยครับ
เขาแยกเป็นข้อๆ โดยแต่ละข้อ เก็บเป็น 1 ไฟล์เวิร์ด (.doc เปิดด้วย Microsoft word) ประมาณ 20 - 30 ไฟล์ ก็คือ ประมาณ 20-30 ข้อนั่นแหละครับ
ผมลองสุ่มๆ เปิดดูแต่ละไฟล์ ก็เห็นมันเป็นแค่ข้อความธรรมดา ไม่มีการแนบรูป หรือตารางอะไรเลย ก็สงสัยแล้วก็แอบด่าคนทำในใจว่า ทำไมคุณไม่ทำเป็นเป็นไฟล์ text วะ (.txt เปิดด้วย notepad) เพราะมันใช้เวลาและทรัพยากรน้อยกว่ากันเยอะเลยในการเปิดอ่าน แต่ก็ได้แค่ด่าในใจ ทำอะไรไม่ได้แล้วนี่
ก็เลยหาวิธีจะทำไงให้ทั้ง 30 ไฟล์นี้แปลงเป็น .txt ด้วยวิธีง่ายๆ บ้าง
จากการค้น google และทดลองเขียนครับ ก็ได้ สคริปต์นี้มา 1 ตัว ก็เอามาโพสต์ฝากไว้ในนี้ครับ เผื่อต้นฉบับในเครื่องผมหาย ผมจะได้มาคัดลอกเอาจากที่นี่ได้อีก และเผื่อเป็นประโยชน์กับท่านอื่นๆ ด้วยครับ
Dim WshShell
Dim Wd 'As New Word.Application
Dim Doc 'As New Document
Dim Fso 'As New FileSystemObject
Dim Fo 'As Folder
Dim Fi 'As File
Dim Pth 'As String
Set Wd = CreateObject("Word.Application")
Set Fso = CreateObject("scripting.filesystemobject")
Set WshShell = CreateObject("WScript.Shell")
Pth = Replace(wscript.scriptfullname, wscript.scriptname, "")
Set Fo = Fso.GetFolder(Pth)
Pth = Pth & "\"
For Each Fi In Fo.Files
If LCase(Right(Fi.Name, 4)) = ".doc" Then
Set Doc = Wd.Documents.Open(Pth & Fi.Name)
Doc.SaveAs FileName:=Pth & Left(Fi.Name, Len(Fi.Name) - 4), FileFormat:=wdFormatText
Doc.Close
Set Doc = Nothing
Wd.Quit SaveChanges:=wdDoNotSaveChanges
Set Wd = Nothing
Kill Pth & Fi.Name
End If
Next
Set Fo = Nothing
Set Fso = Nothing
1 Reply in this Topic. Dispaly 1 pages and you are on page number 1
Time: 0.7483s
Set wshshell = Nothing
ขาดไป 1 บรรทัดครับ
ไม่อยากแก้ไข เพราะรูปแบบมันจะอ่านยากทันที่ ที่มีการแก้ไขโพสต์