Inserisci il testo nel file di input in Lex (con C)
-
22-07-2019 - |
Domanda
Sto cercando di aiutare un amico in un incarico universitario, ma in un certo senso ho dimenticato un sacco di C e Lex.
Il fatto è che stiamo cercando di analizzare un file HTML e un file CSS corrispondente e aggiungere a un tag il suo stile.
Esempio:
HTML
<body>
</body>
CSS
body{color:black;}
HTML modificato
<body style="color:black;">
</body>
Tutto il regex è terminato e anche i macro.
Problema: l'HTML di input e l'HTML modificato devono essere lo stesso file. Abbiamo provato a reindirizzare entrambi yyin e yyout sullo stesso file ... e quindi usare gli fput (text, yyout); dove text è un carattere * con tutte le informazioni sullo stile (e style = " "). Non funziona.
Quindi ... Potete aiutarlo ragazzi?
è importante non perdere la nozione di posizione nel file (quindi lo stile = " " va al tag giusto).
Grazie
Soluzione
reindirizzare yyin e yyout sullo stesso file non funzionerà .. (come già sapete). Il mio approccio sarebbe:
- Crea un file temporaneo
- yyout scrive nel file temporaneo
- al termine dell'analisi, eseguire il backup del file di input per sicurezza
- sostituisci il file di input con il file temporaneo
Non c'è altro modo, se yyout è uguale a yyin il testo (input originale) verrà sovrapposto.