2011-11-02 80 views
-1

我遇到了C语言中FILE概念的问题。使用c语言在文件中搜索字符串

我的问题是我有一个html文件,并在阅读模式下打开。

我需要从该文件中获取数据。acurate是我在两个字符串之间的数据。

字符串是"<Response>""</Response>"

该文本文件如下所示。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 



<html xmlns="http://www.w3.org/1999/xhtml"> 

<head><title> 



</title></head> 

<body> 

    <form name="form1" method="post" action="pos_fis_transactions.aspx?trans=14%7c35381192%7c10-10-2011%7c1000.0%7c10-10-2011%7cCASH%7cCREDIT%7cc%7cGCC" id="form1"> 

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwULLTE3NDI1ODEyMjhkZKgy7LmL8WTr+VEeDUOifRqzISfa" /> 



<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgLEypqSAQKez72pDln9yKosD6kd+LvgBmdrWkYoLk2u" /> 

    <div> 



     <textarea name="txtTransAck" rows="2" cols="20" id="txtTransAck">**&lt;Response&gt;14|245&lt;/Response&gt;**</textarea> 



    </div> 

    </form> 

</body> 

</html> 

在上面的html文件中,我需要选择数据14 | 25。

请帮帮我。

+1

我们展示你既然写到这里打开你的文件: –

+0

你必须做这在C代码,或者你会愿意考虑另一种语言(如Perl),其内置的文本分析功能稍好一些? – Kusalananda

+0

这不仅仅是你以前的问题的重复:[C语言中的文件I/O](http://stackoverflow.com/questions/7977791/file-io-in-c-language),但没有代码?为什么不阅读上一个问题的答案,并根据建议解决问题,而不是重新开始呢? –

回答

2

首先,您并不是在寻找<Response></Response>,而是&lt;Resonse&gt;&lt;/Resonse&gt;

如果文件不是太大,它加载到内存中,并做了

strnstr(loadedFileContent, "&lt;Response&gt;", lengthOfLoadedFileContent); 

这给你一个字符指针到第一& - 现在加入strlen("&lt;Response&gt;")到这一点,你在你的内容arive。

现在要么您知道您的内容的长度并阅读它,要么从该位置搜索嵌套&,并取两者之间的字符串。

心连心

马里奥