Oppure

Loading
09/10/06 16:00
Hack
Ciao a tutti.:D

Io ho un file di testo e voglio cercare al suo interno tutte le parti che sono contenute all'interno dei commenti del C.

Esempio:
testo
qualsiasi
/* commento del C che dovrà essere eliminato */


Quali consigli mi date per gestire al meglio questo tipo di operazione?
Io pensavo di leggere carattere per carattere il file passato, e di memorizzare in una variabile temporanea 1 se il carattere precedente è una / o 0 altrimenti.
:-?
aaa
09/10/06 16:53
Fr3d3R!K
non è una cattiva idea...cerca carattere per carattere i caratteri (scusa il gioco di parole) /* e ogni qualvolta lo trovi cancelli da li fino a *\
ciao
aaa
09/10/06 21:50
Hack
Ok. Il fatto è che il file passato può essere un sorgente scritto in C di un software e oltre ai commenti (da eliminare), nella forma che ho presentato prima, può anche avere i caratteri / e * all'interno di un printf (che non sono da eliminare).

Esempio:
/* commento da eliminare */
int x;
x = f1();
printf ("/* questo commento all'interno del printf non deve essere eliminato */ Risultato = %d", x); 


Questo costituisce un caso particolare più difficile da gestire.:(
Come potrei fare?
aaa
10/10/06 0:33
4x4lu5
Ciao, te la butto li poi vedi tu se puo esserti di aiuto :)
Potresti implementare una struttura condizionale (a me verrebbe in mente uno switch, x es) che controlla se la scritta nn è 1 printf e in qual caso nn ti cancella niente fino a che nn si chiude la parentesi
spero di essermi spiegato, tipo in pseudocodice

switch c
case 'p':
if (i==0)
i++;
case 'r':
if (i==1)
i++;
case 'i':
if (i==2)
i++;
e cosi via,
alla fine metti tipo
case 'f':
if (i==5)
printf=1;

nel caso di default metti i=0 e controlli che l'istanza di ql che leggi sia correttamente 1 stringa printf e poi qnd printf è 1 controlli solo le parentesi fino a che il numero di parentesi aperte sia uguale a quelle chiuse, credo che così dovrebbe andare (te lo auguro) a presto :)
aaa
10/10/06 11:43
Fr3d3R!K
dimentchi i break alla fine di ongi case altrimenti considerererà solo il default :k:
aaa
11/10/06 0:15
4x4lu5
dimentichi ql che ho scritto prima del testo:
"in pseudocodice"
e nn x polemizzare :)
a presto :)
Ultima modifica effettuata da 4x4lu5 11/10/06 0:19
aaa
12/10/06 19:37
Fr3d3R!K
ti assicuro che non volevo polemizzare...ammetto di non aver letto la parola pseudocodice semplicemente siccome è scritto tutto in codice ho aggiunto un pezzettino nel caso il nostro amico avesse voluto provare il tuo codice...non avevo fini oscuri :k:
p.s. scusate per il tentato omicidio alla linguaggio italiana :D
Ultima modifica effettuata da Fr3d3R!K 12/10/06 19:38
aaa
12/10/06 21:24
4x4lu5
certo, neanche io volevo polemizzare :)
a presto
aaa