如何從 Visual C++ UNIX 格式保存文件

原文地址:

http://support.microsoft.com/kb/268901。


以下爲轉載文字:


可以使用以下步驟來創建 Win32 控制檯項目,將轉換爲行終止向"LF"包含"CR/LF"的文件:

  1. 使用 Win32 控制檯應用程序應用程序嚮導來創建名爲DOS2UNIX的新的空項目
  2. 文件菜單上,單擊新建,然後單擊文件選項卡。
  3. 選擇C/c + + 源文件並命名新文件DOS2UNIX.cpp
  4. 將以下代碼粘貼到 DOS2UNIX.cpp:
    #include<windows.h>
    #include<iostream>
    #include<fstream>
    using namespace std;
    
    int main(int argc, char* argv[])
    {
    	if(argc !=2)
    	{
    		cout << "Please specify : dos2unix filename" << endl;
    		return 0;
    	}
    	char ch;
    	char temp[MAX_PATH]="\0";
    
    	//Open the file for reading in binarymode.
    	ifstream fp_read(argv[1], ios_base::in \ 
    		| ios_base::binary);
    	sprintf(temp, "%s.temp", argv[1]);
    	//Create a temporary file for writing in the binary mode. This
    	//file will be created in the same directory as the input file.
    	ofstream fp_write(temp, ios_base::out \ 
    		| ios_base::trunc \ 
    		| ios_base::binary);
    
    	while(fp_read.eof() != true)
    	{
    		fp_read.get(ch);
    		//Check for CR (carriage return)
    		if((int)ch == 0x0D)
    			continue;
    		if (!fp_read.eof())fp_write.put(ch);
    	}
    
    	fp_read.close();
    	fp_write.close();
    	//Delete the existing input file.
    	remove(argv[1]);
    	//Rename the temporary file to the input file.
    	rename(temp, argv[1]);
    	//Delete the temporary file.
    	remove(temp);
    
    	return 0;
    }
    					
  5. 生成菜單中,單擊生成 DOS2UNIX.exe以生成的.exe 文件。
您可能想要測試此.exe 文件,看看是否能正常工作。若要執行此操作,請通過在文件菜單下選擇打開,選擇 DOS2UNIX.ex,將以打開設置爲二進制,然後單擊打開Visual C++ 二進制編輯器中打開現有的文件。例如,如果文件中包含"HelloCRLFWorld",(十六進制) 的二進制數據如下所示:
48 65 6C 6 C 6F 0 D 0A 57 6F 72 6 C 64
這相當於:
Hello
世界
在命令提示符下運行命令dos2unix.exe < 名稱 >接下來,在 Visual C++ 二進制編輯器中打開該文件。您將看到0x0Ds 被刪除。只要不編輯該文件並將其保存在 Visual C++ 0x0Ds 不會出現。

可用於此 Visual C++ 自動化結合自動化整個過程。可以編寫一個簡單的 Microsoft Visual Basic 腳本宏調用此工具,但該工具必須先添加到工具菜單,如下所示:
  1. 工具菜單上,單擊自定義,然後單擊工具選項卡。
  2. 指定一個名稱,如DOS2UNIX,並且提供的命令編輯框中的 Dos2unix.exe 文件的完整路徑。
  3. 對於參數,指定$(FileName)$(FileExt)
  4. 對於初始目錄,指定$(WkspDir) (指定您自己的路徑)。
驗證該工具有效,Visual C++ 編輯器中打開某個文件,然後從工具菜單中運行DOS2UNIX工具。您將看到已刪除其 CR 字符編輯器中打開該文件。

如果您希望自動執行此過程,以便每次在 Visual C++ 編輯器中保存打開的文件,稱爲 DOS2UNIX.exe 工具去0x0Ds,然後使用下面的 VBScript 宏:
'This event is fired every time the document is saved in the VC++ Editor.
Sub Application_DocumentSave(theDocument)

'This will call the user tool in the Tools menu.
'Change the number depending upon what you have. By default you only
'have 6 tools under the Tools menu, so the DOS2UNIX tool will be the 7th.

ExecuteCommand "UserTool7" 

End Sub
				

只有具有 Visual C++ 在編輯器中打開一個文件,此 VBScript 代碼將起作用。這是從 VBScript 宏中 (不能向一個 VBScript 宏傳遞參數) 調用.exe 文件的唯一方法。相反,編寫外接程序,這將更爲靈活。而無需將其添加到工具菜單,您可以從外接程序中調用 DOS2UNIX.exe 工具。

若要在 Visual C++ 中使用提供的 VBScript 宏:
  1. 打開擴展名爲.dsm 的現有文件或創建一個。
  2. 將代碼粘貼到先前提供的文件中。
  3. Visual C++ 中執行下列操作:
    1. 工具菜單上,單擊自定義
    2. 單擊外接程序和宏文件選項卡。
    3. 單擊瀏覽以加載包含該宏的.dsm 文件。一旦在瀏覽對話框中選擇.dsm 文件,您的文件將出現在外接程序和宏文件列表與選中其旁邊的複選框。
    4. 單擊關閉以繼續。
現在,如果 Visual C++ 的編輯器中打開文件並從文件菜單中保存該文件時,將調用該宏並將從打開的文件中刪除所有0x0Ds。由於這會影響您從此以後保存並將應用於您在以後打開任何項目的任何文件,請確保您通過使用自定義(清除宏旁邊的複選框) 禁用工具菜單中的宏。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章