View Full Version : Thắc mắc về cách đổi tên topic và cách dùng VB API trong Word
StormRaider
10-12-2007, 03:25 PM
Tớ có hai điểm muốn yêu cầu hỗ trợ, bạn nào biết xin chỉ giùm.
1. Thứ nhất là tớ muốn hỏi cách đổi tên topic. Hiện nay tớ thấy topic post truyện của TG và DDSL có thể thay đổi tên để thông báo đã đưa ra chương mới nhất là thế nào, tớ thấy như thế rất tiện lợi cho người xem, đỡ phải vào trong mới biết được đã có chương / hồi mình chưa đọc hay không. Do đó tớ cũng định dùng cách này với 2 topic dịch Thương Hải và Côn Luân của mình, nhưng dò dẫm mãi không tìm được cách nào để đổi tên topic. Xin hỏi chức năng đó là riêng của Mod hay chủ topic nào cũng làm được nhưng tớ chưa tìm ra ?
2. Thứ hai, bác nào giỏi về VB API xin hướng dẫn giùm cách dùng macro để replace từ trong Winword cho anh em, như vậy sẽ giúp giảm đáng kể thời gian tạo một bản dịch thô để dịch giả có thể tập trung vào dịch, không phải replace bằng tay như hiện nay.
dhaonline
10-12-2007, 03:31 PM
Tớ có hai điểm muốn yêu cầu hỗ trợ, bạn nào biết xin chỉ giùm.
1. Thứ nhất là tớ muốn hỏi cách đổi tên topic. Hiện nay tớ thấy topic post truyện của TG và DDSL có thể thay đổi tên để thông báo đã đưa ra chương mới nhất là thế nào, tớ thấy như thế rất tiện lợi cho người xem, đỡ phải vào trong mới biết được đã có chương / hồi mình chưa đọc hay không. Do đó tớ cũng định dùng cách này với 2 topic dịch Thương Hải và Côn Luân của mình, nhưng dò dẫm mãi không tìm được cách nào để đổi tên topic. Xin hỏi chức năng đó là riêng của Mod hay chủ topic nào cũng làm được nhưng tớ chưa tìm ra ?
2. Thứ hai, bác nào giỏi về VB API xin hướng dẫn giùm cách dùng macro để replace từ trong Winword cho anh em, như vậy sẽ giúp giảm đáng kể thời gian tạo một bản dịch thô để dịch giả có thể tập trung vào dịch, không phải replace bằng tay như hiện nay.
Em xin trả lời vấn đề 1 của bác:
- Chỉ có Mod trở lên mới có quyền đổi tên topic. khi nào bác cần đổi tên topic nào có thể pm mod để đổi...
Vấn đề thứ 2 em không biết :059:
StormRaider
10-12-2007, 05:14 PM
Em xin trả lời vấn đề 1 của bác:
- Chỉ có Mod trở lên mới có quyền đổi tên topic. khi nào bác cần đổi tên topic nào có thể pm mod để đổi...
Vấn đề thứ 2 em không biết :059:
Nếu vậy, xin nhờ các mod của box Truyện dịch mỗi ngày 1 lần dạo qua các truyện đang dịch trong box để cập nhật thông tin hồi mới nhất.
Với 2 topic Côn Luân và Thương Hải, xin đổi tên giùm như sau:
Côn Luân (Phượng Ca)(Chương 8 - Chương 9 hồi 1)
Thương Hải (Phượng Ca)(Chương 12 - Hết chương 13)
Many thanks ^_^
duongthanh85
10-12-2007, 05:58 PM
Tớ có hai điểm muốn yêu cầu hỗ trợ, bạn nào biết xin chỉ giùm.
1. Thứ nhất là tớ muốn hỏi cách đổi tên topic. Hiện nay tớ thấy topic post truyện của TG và DDSL có thể thay đổi tên để thông báo đã đưa ra chương mới nhất là thế nào, tớ thấy như thế rất tiện lợi cho người xem, đỡ phải vào trong mới biết được đã có chương / hồi mình chưa đọc hay không. Do đó tớ cũng định dùng cách này với 2 topic dịch Thương Hải và Côn Luân của mình, nhưng dò dẫm mãi không tìm được cách nào để đổi tên topic. Xin hỏi chức năng đó là riêng của Mod hay chủ topic nào cũng làm được nhưng tớ chưa tìm ra ?
2. Thứ hai, bác nào giỏi về VB API xin hướng dẫn giùm cách dùng macro để replace từ trong Winword cho anh em, như vậy sẽ giúp giảm đáng kể thời gian tạo một bản dịch thô để dịch giả có thể tập trung vào dịch, không phải replace bằng tay như hiện nay.
1. Cái này tùy quyền được set. Khi đó nó chỉ như việc đặt tên ấy mà.
2. Bạn vào tool> macro > record new macro.
Đặt tên cho macro Và làm những việc bạn thường làm( replace all), sau này khi muốn dùng lại thì:
tool > macro > macro .. và chọn cái bạn đã làm run 1 cái.
Tất nhiên đây là cơ bản thôi, chã phải API gì đâu :025:
Có cái visual basic editor trong menu đó để bạn chỉnh sửa hay tạo mới macro :hi:
Các biên tập viên chắc biết cái này nên bạn yên tâm đi :027:
taolatu
10-12-2007, 06:04 PM
Để viết Macro làm chức năng Replace, bạn có thể vào View->Macro->Record Macro, đặt tên cho macro rồi OK. Lúc này bạn đang ở trạng thái record, mọi hành động đều được macro ghi lại. Bạn chỉ cần Replace 1 cụm từ bằng một cụm từ khác rồi vào View->Macro->Stop Record. Đến lúc này bạn đã có 1 macro như tên vừa đặt ở trên, làm nhiệm vụ Replace (thực ra thì làm gì cũng được). Nếu muốn sửa nhiều cụm từ 1 lần, bạn vào lại View->Macro->View macro, chọn macro vừa tạo, chọn tiếp edit sẽ thấy được code của macro đó trong môi trường VBscript. Bạn chỉ việc thêm 1 số code tương ứng như code mẫu mà macro tự sinh thì nó sẽ làm việc tương tự thôi!
(quên mất, ở đây là word 2k7, còn work 2k3 hình như vào tool->macro,...)
Dưới đây là 1 ví dụ mẫu để Replace text:
Thay a bằng b
Sub Macro1()
'
' Macro1 Macro
'
With Selection.Find
.Text = "a"
.Replacement.Text = "b"
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
End Sub
Theo mình nghĩ thì bạn sẽ dùng cái Replace này để thay tên người, địa danh,... để đọc bản tiếng Anh hoặc Hán việt đơn giản hơn. Nếu đúng thế thì bạn nên dùng tool của ban NguyenPhuPhi có trong 4rum, bạn chỉ việc soạn 1 file text cấu trúc: từ tiếng hoa_ từ tiếng Việt, khi đó tool sẽ chuyển các tên mà bạn định nghĩa sang tên tiếng Việt, lúc này nó sẽ lấy bản tiếng Hoa đã đổi tên rồi chuyển sang tiếng Anh, kết quả sẽ chính xác hơn so với việc chuyển trực tiếp từ tiếng Hoa sang tiếng Anh.
thân!
StormRaider
10-12-2007, 06:55 PM
Cám ơn bác taolatu, đúng là mình dùng cách này để đổi tên từ bản gốc trước khi đưa vào các trình dịch để tránh các chương trình này dịch cả tên riêng sẽ rất lộn xộn. Mình không dùng bản của bác nguyenhuuphi vì phần Hán Việt trong đó không có xuống dòng, tách đoạn nên rất khó nhìn, hơn nữa mình dùng form kiểu cũ cũng quen rồi, hiệu đính cũng dễ hơn.
Trước đây mình cũng có lập trình, nhưng chủ yếu là các ngôn ngữ lập trình tuần tự như Pascal hay C, còn lập trình hướng đối tượng của Win mình không rành, các hàm và giá trị trong VBscript cũng không biết nên không tự viết được. Cho mình hỏi thêm là có cách nào đơn giản để đọc các từ cần thay từ một table hoặc file không, như vậy khi có từ mới chỉ cần thêm vào đó thay vì phải sửa lại macro ?
nhằn mòn quần
10-12-2007, 08:39 PM
Cám ơn bác taolatu, đúng là mình dùng cách này để đổi tên từ bản gốc trước khi đưa vào các trình dịch để tránh các chương trình này dịch cả tên riêng sẽ rất lộn xộn. Mình không dùng bản của bác nguyenhuuphi vì phần Hán Việt trong đó không có xuống dòng, tách đoạn nên rất khó nhìn, hơn nữa mình dùng form kiểu cũ cũng quen rồi, hiệu đính cũng dễ hơn.
Trước đây mình cũng có lập trình, nhưng chủ yếu là các ngôn ngữ lập trình tuần tự như Pascal hay C, còn lập trình hướng đối tượng của Win mình không rành, các hàm và giá trị trong VBscript cũng không biết nên không tự viết được. Cho mình hỏi thêm là có cách nào đơn giản để đọc các từ cần thay từ một table hoặc file không, như vậy khi có từ mới chỉ cần thêm vào đó thay vì phải sửa lại macro ?
Bạn đang đi lại con đường mà nhiều người đã đi qua. Bạn có thể tham khảo ở những chỗ sau:
http://tangthuvien.com/forum/showthread.php?t=9
http://tangthuvien.com/forum/showthread.php?t=1028
http://tangthuvien.com/forum/showthread.php?t=1418
KeyOfLife
10-12-2007, 08:48 PM
Bên trên đã chú thích đoạn macro thay chữ, mình cũng xin gửi 1 đoạn về thay thế các dòng trắng có trong phần tiếng hán.
Đây là cách mình thường dùng:
- Mình dùng tool convert của nguyenphuphi, đầu tiên copy đoạn tiếng hán, pase vào file txt. đổi tên file .txt thành html ( hoặc edit file html có sẵn - nên tạo 1 file html rồi edit ).
- Bật chương trình dịch, lựa chọn file html trên, convert -> 3 bản trung, hán - việt, anh
- Copy 3 phần trên vào 3 cột trong excel.
Trong Excel các bạn làm như sau:
Bôi đen đoạn văn bản sau đó chạy macro:
For Each MyCell in Selection
If MyCell.value Like "" Then
MyCell.EntireRow.Delete
End If
Next
Macro trên sẽ xóa tất cả các dòng trống có trong đoạn được chọn
Phần việc còn lại chỉ là copy từ excel sang word mà thôi. Như vậy 1 file convert thông thường mất 3 phút.
Giải thích:
- Nên chuyển ký tự hán sang file html rồi từ chương trình dịch đọc file html như vậy đoạn văn bản sẽ rất trật tự ( như nguyên gốc ) không bị xuống dòng tùm lum ( nếu copy từ gốc vào thẳng chương trình )
Tái bút: Cách trên sẽ chia làm nhiều bước nhưng lại rất nhanh.
Mong rằng cách của mình sẽ giúp mọi người convert nhanh hơn ^_^
darkxiiindp
10-12-2007, 09:50 PM
KeyOfLife dùng office 2007 à (thấy screenshot)? Mình thấy dạo này bạn convert nhiều. Mình có chương trình convert tự động tạo file word. Bạn down về dùng xem có nhanh hơn không. Cái này mình viết để convert truyện đọc 1 phút cũng convert được vài chương. Có luôn cả tính năng thay từ. Mỗi tội cái này có Word 2007 mới chạy được.
KeyOfLife
10-12-2007, 10:33 PM
KeyOfLife dùng office 2007 à (thấy screenshot)? Mình thấy dạo này bạn convert nhiều. Mình có chương trình convert tự động tạo file word. Bạn down về dùng xem có nhanh hơn không. Cái này mình viết để convert truyện đọc 1 phút cũng convert được vài chương. Có luôn cả tính năng thay từ. Mỗi tội cái này có Word 2007 mới chạy được.
^^ Dạo này rảnh rỗi nên ngồi convert hộ các dịch giả chưa quen dùng tool thôi^^.
Mình vừa down cái tool của dark về nhưng dùng bị lỗi này, dark sửa hộ được không ^^:
http://i21.photobucket.com/albums/b293/keyoflife/134.jpg
darkxiiindp
10-12-2007, 10:42 PM
Bạn có thấy Word nó tự động bật lên không. Nếu nó không tự động bật lên thì do phiên bản Word của bạn khác của mình. Trước đây mình cũng có gửi chương trình này cho mấy bạn. Trong đó có bạn Shengaro (đang dịch thần mộ) - Bạn ý vẫn đang convert dịch bình thường.
zamenz
10-12-2007, 11:00 PM
mình cũng bị lỗi y như của key of life,bản word của mình cũng là word 2007 có khi nào do trương trình diệt víu nó tự động khóa ko nhỉ thấy phần báo lỗi nó ghi phải vô registry chỉnh cái gì đó
KeyOfLife
10-12-2007, 11:28 PM
Bản của mình cũng là OFFICE 2007. nó không tự động bật word lên, nhà mình cũng không cài chương trình anti virus nào cả ( hi, hình như đang có mấy con đang ngọ ngoạy trong máy thì phải ^^).
StormRaider
10-12-2007, 11:54 PM
Bên trên đã chú thích đoạn macro thay chữ, mình cũng xin gửi 1 đoạn về thay thế các dòng trắng có trong phần tiếng hán.
Đây là cách mình thường dùng:
- Mình dùng tool convert của nguyenphuphi, đầu tiên copy đoạn tiếng hán, pase vào file txt. đổi tên file .txt thành html ( hoặc edit file html có sẵn - nên tạo 1 file html rồi edit ).
- Bật chương trình dịch, lựa chọn file html trên, convert -> 3 bản trung, hán - việt, anh
- Copy 3 phần trên vào 3 cột trong excel.
Trong Excel các bạn làm như sau:
Bôi đen đoạn văn bản sau đó chạy macro:
For Each MyCell in Selection
If MyCell.value Like "" Then
MyCell.EntireRow.Delete
End If
Next
Macro trên sẽ xóa tất cả các dòng trống có trong đoạn được chọn
Phần việc còn lại chỉ là copy từ excel sang word mà thôi. Như vậy 1 file convert thông thường mất 3 phút.
Giải thích:
- Nên chuyển ký tự hán sang file html rồi từ chương trình dịch đọc file html như vậy đoạn văn bản sẽ rất trật tự ( như nguyên gốc ) không bị xuống dòng tùm lum ( nếu copy từ gốc vào thẳng chương trình )
Tái bút: Cách trên sẽ chia làm nhiều bước nhưng lại rất nhanh.
Mong rằng cách của mình sẽ giúp mọi người convert nhanh hơn ^_^
Đã làm được theo cách của bác KeyOfLife, đúng là rất nhanh. Vấn đề là tớ đang tự thấy mình sắp biến thành lẩm cẩm rồi, vì tớ không tài nào tìm được cách lưu macro đấy lại dùng cho lần sau, thành ra mỗi lần chạy lại phải copy paste và chạy cái macro đấy 1 lần, lần sau lại tạo lại -_- Bác KeyOfLife giúp cho trót, chỉ giùm tớ cách lưu macro trong Excel với :025:
KeyOfLife
11-12-2007, 01:39 AM
Đã làm được theo cách của bác KeyOfLife, đúng là rất nhanh. Vấn đề là tớ đang tự thấy mình sắp biến thành lẩm cẩm rồi, vì tớ không tài nào tìm được cách lưu macro đấy lại dùng cho lần sau, thành ra mỗi lần chạy lại phải copy paste và chạy cái macro đấy 1 lần, lần sau lại tạo lại -_- Bác KeyOfLife giúp cho trót, chỉ giùm tớ cách lưu macro trong Excel với :025:
Hì, quả thực không dấu, mình cũng không lưu được nên lần nào cũng làm lại cả. Chỉ khi bác Storm hỏi mới lò dò tìm cách.
Đầu tiên bác cứ tạo 1 cái macro như bình thường, duy chỉ có điều lúc tạo bác chọn trong phần : "personal macro workbook". ( Sau khi tạo ra như vậy thì macro này sẽ không thể xóa, sửa, thay thế... )
Để chỉnh sửa lại Macro này bác hãy chọn Unhide trong tab View ( ở bên trái của phần Macro ), bây giờ thì bác có thể edit lại phần macro này được rồi( nhớ bấm Hide lại nhé ).
Save lại và từ lần sau bác sẽ sử dụng như bình thường ^_^.
zamenz
11-12-2007, 12:44 PM
sau khi mình ngồi cả buổi mày mò trương chình của darkxiiindp nhưng rốt cuộc cũng ko được buồn quá.
Nó cứ thông báo thế này:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Office.Interop.Word, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' or one of its dependencies. The system cannot find the file specified.
File name: 'Microsoft.Office.Interop.Word, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c'
at C2VE.Util.CreateWord(String strchinese, String strvietnamese, String strenglish, String strColString, String savepath)
at C2VE.FormMain.btnRecreate_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventAr gs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
C2VE
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Documents%20and%20Settings/La%20Thai%20Binh/My%20Documents/Downloads/Compressed/utf-8''C2VE-10-12-07/C2VE.exe
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Web
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.832 (QFE.050727-8300)
CodeBase: file:///C:/WINDOWS/assembly/GAC_32/System.Web/2.0.0.0__b03f5f7f11d50a3a/System.Web.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Bản word của mình là bản 12.0.6015.500 ko biết có phải do word khác phiên bản 12.0.0.0 của darkxiiindp nên nó không chạy ko nhỉ.
Sẵn đây mình gửi cái genuine của word 2007 cho bạn nào cần
http://www.mediafire.com/?ddbhwnvyfzf
Sau khi genuine thì có thể update download trên trang chủ của microsoft thoải mái
GhienTruyen
11-12-2007, 01:09 PM
Bên trên đã chú thích đoạn macro thay chữ, mình cũng xin gửi 1 đoạn về thay thế các dòng trắng có trong phần tiếng hán.
Đây là cách mình thường dùng:
- Mình dùng tool convert của nguyenphuphi, đầu tiên copy đoạn tiếng hán, pase vào file txt. đổi tên file .txt thành html ( hoặc edit file html có sẵn - nên tạo 1 file html rồi edit ).
- Bật chương trình dịch, lựa chọn file html trên, convert -> 3 bản trung, hán - việt, anh
- Copy 3 phần trên vào 3 cột trong excel.
Trong Excel các bạn làm như sau:
Bôi đen đoạn văn bản sau đó chạy macro:
For Each MyCell in Selection
If MyCell.value Like "" Then
MyCell.EntireRow.Delete
End If
Next
Macro trên sẽ xóa tất cả các dòng trống có trong đoạn được chọn
Phần việc còn lại chỉ là copy từ excel sang word mà thôi. Như vậy 1 file convert thông thường mất 3 phút.
Giải thích:
- Nên chuyển ký tự hán sang file html rồi từ chương trình dịch đọc file html như vậy đoạn văn bản sẽ rất trật tự ( như nguyên gốc ) không bị xuống dòng tùm lum ( nếu copy từ gốc vào thẳng chương trình )
Tái bút: Cách trên sẽ chia làm nhiều bước nhưng lại rất nhanh.
Mong rằng cách của mình sẽ giúp mọi người convert nhanh hơn ^_^
Tui thấy dùng word thay thế các dòng trắng cũng rất nhanh mà, đâu cần dùng macro trong excel.
Cách làm :
- nhấn Ctrl+H (Find and replace)
- Trong mục Find: gõ ^p^p
- trong mục replace by: gõ ^p
rồi nhấn replace all. Vậy là xong.
Các bạn làm thử xem
darkxiiindp
11-12-2007, 01:27 PM
Office mình dùng là Office 2007 Enterprise (12.0.6015.5000) MSO (12.0.6017.5000) Download qua torrent trên mininova.org thì phải. Nếu thực sự phiên bản bạn dùng đúng như thế này mà không chạy được thì có thể lúc cài bạn không cài phần Office Tools. Hoặc bên trong word bạn không cài cái '.NET Programmability support'. Bạn vào add/remove program rồi cài thêm những phần đó xem. Không được thì mình cũng chịu.
zamenz
11-12-2007, 02:49 PM
đã làm được cám ơn darkxiiindp nhìu.Do cái office tool mình cài ko đủ sau khi cài thêm đã có thể xuất wa word.:grin:
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.