簡體   English   中英

C中的文本文件解析-是否調用批處理文件

[英]Text File Parsing in C - Calling a Batch File Or Not

該網站是豐富的知識來源,過去曾為我提供過無數次幫助。

我只是自己開始學習C-到目前為止,我只寫了一些批處理文件。

因此,我謙虛地尋求您的幫助-我想要一些有關如何編寫C程序的准則,該准則將:

  • 1)打開一個包含以下內容的文本文件

"batch1.cmd" "argument1" "1"

"batch2.cmd" "argument2" "0"

"batch3.cmd" "argument3" "1"

  • 2)解析以找到“ 0”或“ 1”

    如果調用“ 1”,則他使用其參數指定批處理文件

    如果“ 0”走到下一行-我將定期更新文本文件,因此我只需要更改1或0而不重寫所有這些行。

我已經找到了很多有關在Internet上使用C進行解析的幫助,但是還沒有有關如何實現該功能的教程。 我知道這似乎很容易,而且我必須表現得很懶惰,但是我向您保證我已經參加了三天,但沒有任何成功。

我並不一定要求提供完整的腳本,而只是要求“回答以下功能,其正確語法是yadda yadda”之類的答案。

我想我必須使用

int Search_in_File(char *fname, char *str)

{ FILE *fp;

fp=fopen("c:\\\\batchlist.txt", "r");

system("c:\\\\batch1.cmd argument1");

但我不知何故不能“連接點”。

提前致謝!

看看http://en.wikipedia.org/wiki/C_file_input/output-您非常接近。 打開文件后,您需要讀取文件中的行或字符,並根據找到的內容執行system命令。

維基頁面將向您展示如何-它也有一些方便的示例代碼:)

int Search_in_File(char *fname, char *str)

{ FILE *fp;
char line[100],a[100],b[100],c[100];
fp=fopen("c:\\batchlist.txt", "r");
if( !fp ) ... errorhandling here ...
while( fgets(line,100,fp) )
{
  if( strchr(line,'\n') ) *strchr(line,'\n')=0;
  if( 3==sscanf(line,"%s%s%s",a,b,c) && !strcmp(c,"1") ) /* "%s" breaks at whitespaces, attention for whitespaces in your strings here! */
  {
    sprintf(line,"%s %s",a,b);
    system(line);
  }
}
...
fclose and so on ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM