2011-11-02 2 views
-1

Je rencontre un problème avec le concept FILEs en langage C.Rechercher une chaîne dans un fichier en utilisant c langauge

Mon problème est que j'ai un fichier html, et qui a été ouvert en mode lecture.

J'ai besoin d'obtenir les données de ce fichier. L'acurate est i entre les deux chaînes. Les chaînes sont les suivantes: "<Response>" et "</Response>".

Le fichier texte est illustré ci-dessous.

<!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> 

Dans le fichier html ci-dessus, j'ai besoin de choisir les données 14 | 25.

S'il vous plaît aidez-moi.

+1

nous montrent le code que vous avez écrit depuis ici pour ouvrir votre fichier :) –

+0

Avez-vous le faire en C, ou seriez-vous prêt à envisager une autre langue comme Perl qui a des capacités d'analyse de texte légèrement mieux intégrées? – Kusalananda

+0

N'est-ce pas juste une copie de votre question précédente: [Fichier I/O en langage C] (http://stackoverflow.com/questions/7977791/file-io-in-c-language), mais sans le code ? Pourquoi ne pas lire la réponse à la question précédente et résoudre les problèmes comme recommandé plutôt que de tout recommencer? –

Répondre

2

Tout d'abord, vous ne cherchez pas <Response> et </Response> mais &lt;Resonse&gt; et &lt;/Resonse&gt;.

Si le fichier est pas trop grand, le charger en mémoire et faire un

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

Cela vous donne un pointeur char à la première & - maintenant ajouter strlen("&lt;Response&gt;") à cela, et vous arive à votre contenu.

Maintenant, soit vous connaissez la longueur de votre contenu et lisez-le, ou recherchez à partir de cette position pour le nid & et prenez la chaîne entre les deux.

HTH

Mario

Questions connexes