夏成鋒
摘要:對于沒有采用網絡采編系統(tǒng)的期刊編輯常采用Office軟件進行稿件登記、送審以及修改意見反饋等編輯工作,這種方法雖然直觀但相對比較原始,不太智能。一些單機版稿件管理軟件實現了部分采編系統(tǒng)的功能,可以完成稿件登記、審稿簽生成等功能,但對現有的一些單機版稿件管理軟件進行了試用,發(fā)現存在著操作復雜、與稿件處理流程不一致、樣式不能修改等問題。通過試驗,采用VC++操縱Word\Excel的編程方法,設計了一款智能、簡單實用的稿件登記軟件。實現了一些登記項目(稿件名稱、作者、電話)的智能識別,采用拖曳的操作方式,以Word作為輸出格式,對于稿件不很多的編輯十分實用。
關鍵詞:編輯部;稿件登記;智能識別;VC++ ;Microsoft Office; VBA
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2014)14-3317-02
Abstract: Journal editors without network editing system for often used Office software for paper registration, peer review and feedback. This method is relatively straightforward, but original and not smart . Some stand-alone paper management software have a part function of the editing system such as paper registration and peer review sign generation, but after a trial for those software, it was found that operation was complex, manuscript processing was inconsistent with the processes , and the styles could not be modified . By experiment, a smart, simple and practical manuscript registration software was designed with VC + + manipulating Word \ Excel. The software could register projects (manuscript name, author, telephone ) by intelligent identification , is drag operated and take word as the output format. Its very practical for the editor with not too many paper to deal with.
Key words: paper registration; intelligent recognition; VC + +; Microsoft Office; VBA
對于期刊編輯部,傳統(tǒng)的紙質稿件登記方式已經過時,現在許多期刊已經采用網絡采編系統(tǒng)進行稿件登記送審,但還是有一部分編輯部采用電子郵件投稿,采用紙質或是Excel電子表格進行登記,利用Word生成審稿簽。對于編輯個人來說,要管理好自己負責的那部分稿件,有必要對這部分稿件進行登記管理,確定稿件的處理狀態(tài),主要包括:稿件登記(稿件名稱、作者、電話、收稿日期)和稿件送審(審稿人、審稿日期、結果),雖然這些登記(部分可以復制粘貼)并不是很復雜的事,但許多工作可以讓計算機來做,最簡單的,送審時間可以利用計算機生成。實際上網絡上有些免費的稿件管理軟件下載,但試用后發(fā)現都不太好用,主要問題:1)不夠智能。所有的信息都重新錄入,包括題目、作者,甚至部分軟件連登記時間都要手工填寫。2)不能定制。許多編輯部已經有固定的審稿簽,而軟件只能按固定樣式。3)操作復雜。許多信息沒什么必要錄入。4)不實用,表現出對編輯流程不熟悉。發(fā)現還找不到一款簡單實用的管理軟件。作者從事編輯工作多年,對編輯審稿流程比較熟悉,同時熟悉VC++編程,因此想自行開發(fā)一款簡單實用的稿件管理軟件。在不斷試驗中發(fā)現,Word稿件的格式比較固定,標題、作者等項目都有一些共同性質,可以利用這些共性實現要登記項目的智能查找填寫;直接編程代碼比較多,打印的樣式也不好控制,采用VC++控制Word文檔不但可以利用Word VBA的一些函數,而且可以以Word任意樣式輸出,方便使用現有稿件登記系統(tǒng)的文檔。經過試驗,設計了一款簡單實用的稿件登記使用軟件,主要實現了以下功能:
1)智能識別論文名稱。
2)基于Office軟件,以Excel為數據庫,以Word為輸出格式。
3)操作簡單,支持拖拽。
4)智能識別第一作者名。
5)智能識別手機號碼。
6)部分登記項目的自動生成。
軟件采用VC++ 6.0和Office 2003實現。
1 軟件總體規(guī)劃
編輯部稿件處理主要包括:稿件登記、送審、修改意見等。其中稿件登記需要登記來稿的基本信息(名稱、日期、作者、電話等),需要一個數據庫。送審需要專家?guī)煲约八蛯彆r間、處理結果等,也需要一個數據庫。這里選用Excel作為數據庫,其效率可能沒有SQL等數據庫高,但比較簡單同時可以直接查看。審稿簽各個編輯部有自己成型的樣式,因此選用Word文檔作為審稿簽的輸出格式。VC++采用自動化方法與Word通信,同時可以利用Word VBA的一些函數,減少編碼。程序為VC對話框模式,布局如圖1。endprint
部分內容智能識別,即使識別有誤也可以直接修改,審稿日期等一般取當前時間。
2 關鍵技術
1)VC++與Word文檔信息交流。采用自動化方法,為方便自建一個類,主要函數包括:
OpenDocument(CString fileName)(打開文檔)、Sentence(int n)(取出第n句的字符串)、StrReplace(CString replaceStr,CString replaceStrWith)(字符串替換),主要變量為Word VBA的一些常見對象:Selection、Range、Find、Replacement、Sentences、Words。處理Word文檔都是通過這個類。
2)VC++與Excel文檔信息交流。采用CSpreadSheet庫,Excel表格有2個sheet ,一個為稿件登記,一個為專家?guī)臁?/p>
3)論文名稱的自動識別:工作中發(fā)現,絕大部分Word稿件的標題都是Word中首次出現的文字,標題完成后一般會回車到下一行。Word VBA中Sentences對象是以句號、回車等作為一句話的判別標志,因此只要取出Word稿件的第一個Sentences對象,其字符變量就是稿件的標題,為保險加上一個空白判斷。經試驗絕大部分Word稿件采用此方法可以準確識別標題。
4)第一作者姓名識別。作者名一般在標題名下一行或下二行,一般為兩字或三字,不同作者名字以空格或逗號分開。因為作者名字為四字的比較少見,為減少復雜性,在此不考慮。因為名字間有符號,而有些二字名中間會加空格,因此取出該Sentences的前3個字符,不會取到第二作者的名,判斷最后一個字符是否為中文字符,不是則去掉。經試驗也能識別大部分姓名,但對于其它語種名、三字以上名以及三字名中有空格會識別有誤。
5)手機號碼。手機號碼為1開頭的11位數字,利用Word中Find對象,根據這兩個特征很容易搜索到,正則表達也很簡單。雖然搜索到的可能不是手機號而是這樣特征的數據,但實際上這種可能很小,在實際應用中還沒碰到過。
6)拖拽功能。首先將對話框置頂,其次響應拖拽消息OnDropFiles(HDROP hDropInfo)。
7)審稿簽生成。審稿簽一般期刊編輯部有固定格式,需要填寫的項目包括:稿件名稱、審稿人、審稿期限、當前日期。為了靈活利用這些固定樣式,采用查找、替換的方式進行編程處理。在空白Word審稿簽上將要填寫的項目分別用aaa、bbb、ccc、ddd等稍微特殊一些的字符串填充,保存為只讀文檔,生成新審稿簽只需要根據相應項目使用自建類的替換函數StrReplace(CString replaceStr,CString replaceStrWith)替換到相應位置即可。保存的審稿簽以“審稿簽(稿件名)”的方式自動命名,以區(qū)分不同的審稿內容。其它需要的單據都可以采用類似的方法處理。即使這些審稿簽的樣式和內容發(fā)生變更,但只填寫項目不變,只需將相應項目對應的字符串移到新位置,就可以繼續(xù)使用。
3 軟件使用
軟件打開后會前置到所有Windows窗口之上,將Word稿件按住鼠標左鍵拖入到軟件界面上,一般能自動識別一些登記項目(如標題等),對于不能自動識別項目采用手工修改。審稿專家?guī)煨柚苯釉贓xcel表格中錄入。選擇一篇文件后,通過下拉框選擇合適的審稿人,可以生成Word格式審稿簽也可以直接打印。稿件查詢是通下拉框實現。在處理一定量的稿件后,宜將一部分Excel表格中的較老登記條目刪除(不刪除也可以,但稿件名下拉框條目太多,比較難找想找的稿件)。
4 小結
對一些免費的稿件管理軟件進行了試用,發(fā)現其設計不太合理和智能。通過觀察一般稿件的需登記項目的特點,采用合適的方法使稿件的登記智能化。同時充分利用Office VBA功能函數,使編程快速簡潔。軟件簡潔直觀,使用方便,避免了一些稿件登記系統(tǒng)的復雜。但是本軟件也有一定的局限性,那就是稿件的處理量不能太大,功能上也相對簡單。
參考文獻:
[1] 劉彤,孫麗達,王小唯,等. Excel 2000 在稿件管理中的應用技巧[J].編輯學報,2003,15(3):202-203.
[2] Yap C W.CSpreadSheet - A Class to Read and Write to Excel and Text Delimited Spreadsheet[CP/OL][2013-10-10].http://www.codeproject.com/Articles/1636/CSpreadSheet-A-Class-to-Read-and-Write-to-Excel-an.endprint
部分內容智能識別,即使識別有誤也可以直接修改,審稿日期等一般取當前時間。
2 關鍵技術
1)VC++與Word文檔信息交流。采用自動化方法,為方便自建一個類,主要函數包括:
OpenDocument(CString fileName)(打開文檔)、Sentence(int n)(取出第n句的字符串)、StrReplace(CString replaceStr,CString replaceStrWith)(字符串替換),主要變量為Word VBA的一些常見對象:Selection、Range、Find、Replacement、Sentences、Words。處理Word文檔都是通過這個類。
2)VC++與Excel文檔信息交流。采用CSpreadSheet庫,Excel表格有2個sheet ,一個為稿件登記,一個為專家?guī)臁?/p>
3)論文名稱的自動識別:工作中發(fā)現,絕大部分Word稿件的標題都是Word中首次出現的文字,標題完成后一般會回車到下一行。Word VBA中Sentences對象是以句號、回車等作為一句話的判別標志,因此只要取出Word稿件的第一個Sentences對象,其字符變量就是稿件的標題,為保險加上一個空白判斷。經試驗絕大部分Word稿件采用此方法可以準確識別標題。
4)第一作者姓名識別。作者名一般在標題名下一行或下二行,一般為兩字或三字,不同作者名字以空格或逗號分開。因為作者名字為四字的比較少見,為減少復雜性,在此不考慮。因為名字間有符號,而有些二字名中間會加空格,因此取出該Sentences的前3個字符,不會取到第二作者的名,判斷最后一個字符是否為中文字符,不是則去掉。經試驗也能識別大部分姓名,但對于其它語種名、三字以上名以及三字名中有空格會識別有誤。
5)手機號碼。手機號碼為1開頭的11位數字,利用Word中Find對象,根據這兩個特征很容易搜索到,正則表達也很簡單。雖然搜索到的可能不是手機號而是這樣特征的數據,但實際上這種可能很小,在實際應用中還沒碰到過。
6)拖拽功能。首先將對話框置頂,其次響應拖拽消息OnDropFiles(HDROP hDropInfo)。
7)審稿簽生成。審稿簽一般期刊編輯部有固定格式,需要填寫的項目包括:稿件名稱、審稿人、審稿期限、當前日期。為了靈活利用這些固定樣式,采用查找、替換的方式進行編程處理。在空白Word審稿簽上將要填寫的項目分別用aaa、bbb、ccc、ddd等稍微特殊一些的字符串填充,保存為只讀文檔,生成新審稿簽只需要根據相應項目使用自建類的替換函數StrReplace(CString replaceStr,CString replaceStrWith)替換到相應位置即可。保存的審稿簽以“審稿簽(稿件名)”的方式自動命名,以區(qū)分不同的審稿內容。其它需要的單據都可以采用類似的方法處理。即使這些審稿簽的樣式和內容發(fā)生變更,但只填寫項目不變,只需將相應項目對應的字符串移到新位置,就可以繼續(xù)使用。
3 軟件使用
軟件打開后會前置到所有Windows窗口之上,將Word稿件按住鼠標左鍵拖入到軟件界面上,一般能自動識別一些登記項目(如標題等),對于不能自動識別項目采用手工修改。審稿專家?guī)煨柚苯釉贓xcel表格中錄入。選擇一篇文件后,通過下拉框選擇合適的審稿人,可以生成Word格式審稿簽也可以直接打印。稿件查詢是通下拉框實現。在處理一定量的稿件后,宜將一部分Excel表格中的較老登記條目刪除(不刪除也可以,但稿件名下拉框條目太多,比較難找想找的稿件)。
4 小結
對一些免費的稿件管理軟件進行了試用,發(fā)現其設計不太合理和智能。通過觀察一般稿件的需登記項目的特點,采用合適的方法使稿件的登記智能化。同時充分利用Office VBA功能函數,使編程快速簡潔。軟件簡潔直觀,使用方便,避免了一些稿件登記系統(tǒng)的復雜。但是本軟件也有一定的局限性,那就是稿件的處理量不能太大,功能上也相對簡單。
參考文獻:
[1] 劉彤,孫麗達,王小唯,等. Excel 2000 在稿件管理中的應用技巧[J].編輯學報,2003,15(3):202-203.
[2] Yap C W.CSpreadSheet - A Class to Read and Write to Excel and Text Delimited Spreadsheet[CP/OL][2013-10-10].http://www.codeproject.com/Articles/1636/CSpreadSheet-A-Class-to-Read-and-Write-to-Excel-an.endprint
部分內容智能識別,即使識別有誤也可以直接修改,審稿日期等一般取當前時間。
2 關鍵技術
1)VC++與Word文檔信息交流。采用自動化方法,為方便自建一個類,主要函數包括:
OpenDocument(CString fileName)(打開文檔)、Sentence(int n)(取出第n句的字符串)、StrReplace(CString replaceStr,CString replaceStrWith)(字符串替換),主要變量為Word VBA的一些常見對象:Selection、Range、Find、Replacement、Sentences、Words。處理Word文檔都是通過這個類。
2)VC++與Excel文檔信息交流。采用CSpreadSheet庫,Excel表格有2個sheet ,一個為稿件登記,一個為專家?guī)臁?/p>
3)論文名稱的自動識別:工作中發(fā)現,絕大部分Word稿件的標題都是Word中首次出現的文字,標題完成后一般會回車到下一行。Word VBA中Sentences對象是以句號、回車等作為一句話的判別標志,因此只要取出Word稿件的第一個Sentences對象,其字符變量就是稿件的標題,為保險加上一個空白判斷。經試驗絕大部分Word稿件采用此方法可以準確識別標題。
4)第一作者姓名識別。作者名一般在標題名下一行或下二行,一般為兩字或三字,不同作者名字以空格或逗號分開。因為作者名字為四字的比較少見,為減少復雜性,在此不考慮。因為名字間有符號,而有些二字名中間會加空格,因此取出該Sentences的前3個字符,不會取到第二作者的名,判斷最后一個字符是否為中文字符,不是則去掉。經試驗也能識別大部分姓名,但對于其它語種名、三字以上名以及三字名中有空格會識別有誤。
5)手機號碼。手機號碼為1開頭的11位數字,利用Word中Find對象,根據這兩個特征很容易搜索到,正則表達也很簡單。雖然搜索到的可能不是手機號而是這樣特征的數據,但實際上這種可能很小,在實際應用中還沒碰到過。
6)拖拽功能。首先將對話框置頂,其次響應拖拽消息OnDropFiles(HDROP hDropInfo)。
7)審稿簽生成。審稿簽一般期刊編輯部有固定格式,需要填寫的項目包括:稿件名稱、審稿人、審稿期限、當前日期。為了靈活利用這些固定樣式,采用查找、替換的方式進行編程處理。在空白Word審稿簽上將要填寫的項目分別用aaa、bbb、ccc、ddd等稍微特殊一些的字符串填充,保存為只讀文檔,生成新審稿簽只需要根據相應項目使用自建類的替換函數StrReplace(CString replaceStr,CString replaceStrWith)替換到相應位置即可。保存的審稿簽以“審稿簽(稿件名)”的方式自動命名,以區(qū)分不同的審稿內容。其它需要的單據都可以采用類似的方法處理。即使這些審稿簽的樣式和內容發(fā)生變更,但只填寫項目不變,只需將相應項目對應的字符串移到新位置,就可以繼續(xù)使用。
3 軟件使用
軟件打開后會前置到所有Windows窗口之上,將Word稿件按住鼠標左鍵拖入到軟件界面上,一般能自動識別一些登記項目(如標題等),對于不能自動識別項目采用手工修改。審稿專家?guī)煨柚苯釉贓xcel表格中錄入。選擇一篇文件后,通過下拉框選擇合適的審稿人,可以生成Word格式審稿簽也可以直接打印。稿件查詢是通下拉框實現。在處理一定量的稿件后,宜將一部分Excel表格中的較老登記條目刪除(不刪除也可以,但稿件名下拉框條目太多,比較難找想找的稿件)。
4 小結
對一些免費的稿件管理軟件進行了試用,發(fā)現其設計不太合理和智能。通過觀察一般稿件的需登記項目的特點,采用合適的方法使稿件的登記智能化。同時充分利用Office VBA功能函數,使編程快速簡潔。軟件簡潔直觀,使用方便,避免了一些稿件登記系統(tǒng)的復雜。但是本軟件也有一定的局限性,那就是稿件的處理量不能太大,功能上也相對簡單。
參考文獻:
[1] 劉彤,孫麗達,王小唯,等. Excel 2000 在稿件管理中的應用技巧[J].編輯學報,2003,15(3):202-203.
[2] Yap C W.CSpreadSheet - A Class to Read and Write to Excel and Text Delimited Spreadsheet[CP/OL][2013-10-10].http://www.codeproject.com/Articles/1636/CSpreadSheet-A-Class-to-Read-and-Write-to-Excel-an.endprint