2011-07-25 75 views
0

我是新來的C++,並試圖改變下面發佈的控制檯應用程序代碼以讀取多個文件,理想情況下使用通配符擴展名。有些人可以給我一些指點..?閱讀多個文件

http://msdn.microsoft.com/en-us/library/ms916815#odc_wssusageeventlogging_examiningtheusagelogfileformat

-----------編輯-------

我需要的是如何改變上面的代碼,而不是將其指向特定[中filename.log]將它指向一個目錄名並讓它處理該目錄中的所有日誌文件。

--------------工具-----在C++在Visual Studio 2010

Win32控制檯應用程序項目

[待上取勝32位運行平臺]

+0

如果不是全部文件系統,文件名不能包含通配符。你在使用什麼平臺,你真的想完成什麼? – AJG85

+0

1)將'main'中所有可怕的代碼放在一個函數中,2)讓main遍歷作爲參數傳入的(多個)文件名並調用函數,3)找出如何處理通配符。你需要哪部分幫助? – Beta

+0

稍後我將不得不重寫入函數。我需要多個文件的幫助,例如指向一個目錄,並讓代碼讀取其中包含的所有文件。 – van

回答

0

如果您願意使用增強庫檢查 this post。如果你使用的是C++/CLI之類的東西,那麼在.NET中也有支持(我假設你現在不使用C++/CLI)。如果您指定了可供您使用的工具,也許您可​​以獲得更直接的答案。

+0

嗨託德,我正在使用一個Win32控制檯應用程序使用C + +中的Visual Studio 2010 – van

1

使用Win32 API,您可以按照this example列出目錄中的文件。從那裏開始,將代碼合併到您的應用程序中可以讓您按照要求處理多個文件,這應該相對比較簡單。

具體而言,FindFirstFile API允許在搜索文件時使用通配符。

+0

謝謝乍得,除了我的參數是char類型,我需要將其中一個改爲TCHAR'argv [1]'這是可能的? – van

+0

有一些採用char *的API的非Unicode版本。本例中使用的TCHAR只是一個Microsoft特定的typedef,它可以是ASCII可執行文件的'char'或是Unicode可執行文件的'wchar_t'。如果你使用的是ASCII字符集(在Project-> Properties-> General下),那麼你將自動獲得'char' typedef。 – Chad