| Autore |
Discussione  |
|
pinux
Utente Mamone
 

Regione: Puglia
|
Inserito il - 17/05/2005 : 18:57:17
|
qualcuno di voi mi potrebbe spiegare meglio il MAIN strutturato da Mencar nelle sue dispense?
nn ho capito bene come fa il programma a risalire al nome del file... e soprattutto le funzioni che hanno argc e argv
cmq ho riadattato in questo modo e mi funziona (ma vorrei ugualmente capire.. GRAZIE )
main() { FILE *gram_file; Grammar grammar;
/* apertura del file contenente la grammatica */ if ((gram_file = fopen("mygramm.txt","r"))== NULL) printf("nome di file errato\n"); else { print_grammar(load_grammar(gram_file,&grammar)); fclose(gram_file); } getch(); return 0; }
|

|
|
|
genius
dott. ing. cav. ...FN
    

Regione: Puglia
Prov.: Bari
Cittā: Molfetta - Caput Mundi
|
Inserito il - 18/05/2005 : 22:38:47
|
| ehm... sai ke č possibile passare dei parametri ai programmi?... io nn ho visto i programmi di mencar ma dato ke mi hai parlato di argc ed argv, e di nome di file, credo ke il nome del file lo prenda in input al lancio del programma...fammi sapere: c'č qualke parte del programma in cui sn usati proprio queste 2 variabili? |
"...e se non hai morale e se non hai passione se nessun dubbio ti assale perché la sola ragione che ti interessa avere č una ragione sociale soprattutto se hai qualche dannata guerra da fare non farla nel mio nome non farla nel mio nome che non hai mai domandato la mia autorizzazione se ti difenderai non farlo nel mio nome che non hai mai domandato la mia opinione..."
Un blog farlocco |
 |
|
|
pinux
Utente Mamone
 

Regione: Puglia
|
Inserito il - 18/05/2005 : 22:58:54
|
Citazione: Messaggio inserito da genius
ehm... sai ke č possibile passare dei parametri ai programmi?... io nn ho visto i programmi di mencar ma dato ke mi hai parlato di argc ed argv, e di nome di file, credo ke il nome del file lo prenda in input al lancio del programma...fammi sapere: c'č qualke parte del programma in cui sn usati proprio queste 2 variabili?
ecco la parte che differenzia il main di mencar dal mio:
int main(int argc, char *argv[]) { char* filename = argv[1];
il resto č pressocchč tutto uguale, tranne ovvimante la if che č: if ((gram_file = fopen(filename, "r"))== NULL)
quello che nn riesco a capire, č dove dichiarare che il file da cui dovrō caricare le produzioni č mygramm.txt
grazie  |

|
 |
|
|
Cathāll
Utente di ALTO livello - Moderatore Fantacalcio
   

Regione: Puglia
Cittā: Corato
|
Inserito il - 18/05/2005 : 23:14:14
|
Citazione: Messaggio inserito da pinux
Citazione: Messaggio inserito da genius
ehm... sai ke č possibile passare dei parametri ai programmi?... io nn ho visto i programmi di mencar ma dato ke mi hai parlato di argc ed argv, e di nome di file, credo ke il nome del file lo prenda in input al lancio del programma...fammi sapere: c'č qualke parte del programma in cui sn usati proprio queste 2 variabili?
ecco la parte che differenzia il main di mencar dal mio:
int main(int argc, char *argv[]) { char* filename = argv[1];
il resto č pressocchč tutto uguale, tranne ovvimante la if che č: if ((gram_file = fopen(filename, "r"))== NULL)
quello che nn riesco a capire, č dove dichiarare che il file da cui dovrō caricare le produzioni č mygramm.txt
grazie 
Quando lanci il programma, se non erro. ARGV č proprio l'argomento specificato da riga di comando. Questo viene passato al Main che lo memorizza come nome del file e lo apre tramite l'istruzione contenuta nell'IF. |
Cataldo - http://cathall.blogspot.com - http://www.flickr.com/photos/cataldo-it/

 |
 |
|
|
pinux
Utente Mamone
 

Regione: Puglia
|
Inserito il - 18/05/2005 : 23:23:14
|
Citazione: Messaggio inserito da Cathāll Š Quando lanci il programma, se non erro. ARGV č proprio l'argomento specificato da riga di comando. Questo viene passato al Main che lo memorizza come nome del file e lo apre tramite l'istruzione contenuta nell'IF.
allora.. il mencar dice: int main(int argc, char *argv[]) Tali parametri sono utili per utilizzare il programma di lettura delle grammatiche a linea di commando. Per esempio, se il codice sorgente viene tradotto nel programma eseguibile gr.exe, si potrā specificare il nome del file contenente la grammatica con il seguente comando gr nomefile per esempio: gr mygrammar.txt Per acquisire il nome del file specificato nella linea di comando, la funzione main dovrā avere i parametri specificati nel modo precedentemente descritto. Il significato dei parametri č il seguente: #8722; argc specifica il numero di parametri specificati nella linea di comando, incluso il nome del programma eseguibile; #8722; argv č un puntatore ad un array di stringhe. Ciascun elemento dellarray contiene un parametro specificato nella linea di comando, incluso il nome del file eseguibile. Cosicché, per lesempio precedente, argv[0] č gr, mentre argv[1] č mygrammar.txt Nel programma principale si potrā dunque dichiarare una variabile locale, di tipo stringa (char*) valorizzata ad argv[1], cosė da contenere il nome del file da leggere. Se per errore il nome del file non č stato specificato, la variabile locale avrā valore nullo.
ecco... ho capito che devo specificare il nome del file.. ma dove?? inserendo gr mygrammar.txt mi da solo errore, poiche gr nn č riconosciuto dal compilatore...
fatemi capire.. sono io che nn ho capito un ca**o? |

|
Modificato da - pinux in data |
 |
|
|
Cathāll
Utente di ALTO livello - Moderatore Fantacalcio
   

Regione: Puglia
Cittā: Corato
|
Inserito il - 18/05/2005 : 23:33:27
|
Citazione: Messaggio inserito da pinux fatemi capire.. sono io che nn ho capito un ca**o?
Direi di si  Innanzitutto perchč non capisco xkč qua stai e su MSN , no..  Ma a parte questo, tu compili il sorgente di Grammar Reader e dovresti avere GR.EXE. A quel punto da riga di comando scrivi
GR NomeGrammatica.txt e dovrebbe andare. |
Cataldo - http://cathall.blogspot.com - http://www.flickr.com/photos/cataldo-it/

 |
 |
|
|
genius
dott. ing. cav. ...FN
    

Regione: Puglia
Prov.: Bari
Cittā: Molfetta - Caput Mundi
|
Inserito il - 19/05/2005 : 08:30:13
|
allora... innanzitutto č proprio quello ke ti avevo detto nel mio precedente post, cmq apparte questo... per poter utilizzare il tuo programma da liena di comando hai 2 opzioni:
facile: da console di sposti nella directory dove si trova il tuo programmino e dai il comando
gr mygram.txt (assicurandoti ke questo file sia nella stessa directory del tuo programma, se nn č cosė allora scrivi il path completo del tuo txt)
inutilmente contorto: aggiungi il path del tuo programmino alla variabile d'ambiente PATH del tuo S.O. e puoi lanciarlo da dove ti pare senza ke ti venga restituito l'errore ke hai riportato.
spero di esserti stato di aiuto |
"...e se non hai morale e se non hai passione se nessun dubbio ti assale perché la sola ragione che ti interessa avere č una ragione sociale soprattutto se hai qualche dannata guerra da fare non farla nel mio nome non farla nel mio nome che non hai mai domandato la mia autorizzazione se ti difenderai non farlo nel mio nome che non hai mai domandato la mia opinione..."
Un blog farlocco |
 |
|
|
pinux
Utente Mamone
 

Regione: Puglia
|
Inserito il - 19/05/2005 : 13:01:13
|
Citazione: Messaggio inserito da genius
allora... innanzitutto č proprio quello ke ti avevo detto nel mio precedente post, cmq apparte questo... per poter utilizzare il tuo programma da liena di comando hai 2 opzioni:
facile: da console di sposti nella directory dove si trova il tuo programmino e dai il comando
gr mygram.txt (assicurandoti ke questo file sia nella stessa directory del tuo programma, se nn č cosė allora scrivi il path completo del tuo txt)
inutilmente contorto: aggiungi il path del tuo programmino alla variabile d'ambiente PATH del tuo S.O. e puoi lanciarlo da dove ti pare senza ke ti venga restituito l'errore ke hai riportato.
spero di esserti stato di aiuto
avevo ragione.. nn avevo capito un ca**o  adesso č tutto chiaro!
grazie  |

|
 |
|
|
pinux
Utente Mamone
 

Regione: Puglia
|
Inserito il - 19/05/2005 : 13:02:58
|
Citazione: Messaggio inserito da Cathāll Š
Citazione: Messaggio inserito da pinux fatemi capire.. sono io che nn ho capito un ca**o?
Direi di si  Innanzitutto perchč non capisco xkč qua stai e su MSN , no..  Ma a parte questo, tu compili il sorgente di Grammar Reader e dovresti avere GR.EXE. A quel punto da riga di comando scrivi
GR NomeGrammatica.txt e dovrebbe andare.
mi sono solamente complicato la vita... credevo che fosse chissā che cosa...  |

|
 |
|
|
genius
dott. ing. cav. ...FN
    

Regione: Puglia
Prov.: Bari
Cittā: Molfetta - Caput Mundi
|
Inserito il - 19/05/2005 : 13:30:17
|
Citazione: Messaggio inserito da pinux
avevo ragione.. nn avevo capito un ca**o  adesso č tutto chiaro!
grazie 
č sempre un piacere... |
"...e se non hai morale e se non hai passione se nessun dubbio ti assale perché la sola ragione che ti interessa avere č una ragione sociale soprattutto se hai qualche dannata guerra da fare non farla nel mio nome non farla nel mio nome che non hai mai domandato la mia autorizzazione se ti difenderai non farlo nel mio nome che non hai mai domandato la mia opinione..."
Un blog farlocco |
 |
|
|
rel
Utente assiduo
  

|
Inserito il - 20/05/2005 : 13:03:00
|
E cmq Mencar spiega sempre tutto per bene a lezione! Quindi spezziamo una lancia (ma anche un braccio, una gamba..) in suo favore!
 |
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Cittā: Trinitapoli
|
Inserito il - 06/06/2005 : 21:41:24
|
ragazzi anke io sono entrato nel fantastico e coinvolgente mondo del gramma reader (...............) ho cominciato a studiare le dispende ed anke il codice per piacere mi fareste l'esempio di alcuni file txt che posso usare per testare il programma? (gr.c)?? grazie...
|
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Cittā: Trinitapoli
|
Inserito il - 07/06/2005 : 12:08:36
|
ragazzi come mai qualsiasi file metto nel grammar reader mi dice "nome file non specificato"??? vi prego fornitemi qualke file o spiegazione....help me...!!!
|
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Cittā: Trinitapoli
|
Inserito il - 07/06/2005 : 18:41:30
|
sono riuscito a capire qualcosa di come funziona il grammar reader,ma ora ho problemi per implementare le funzioni che controllano se la grammatica č context free etc etc
qualcuno lo ha giā fatto?? lo puō postare??? please....help.....
|
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Cittā: Trinitapoli
|
Inserito il - 08/06/2005 : 15:31:49
|
ragazzi scusate...ancora una volta..... sono riuscito a capire qualcosa del grammar reader ed ho implementato la funzione per vedere se č o non č CF. Cmq al momento dell'esecuzione c'č qualcosa che non va... mi dice sempre la stessa cosa e non ho capito perchč... per favore lo potrebbe controllare qualcuno??ci vogliono 5 secondi...
Allegato: grcf.zip 2,39 KB |
 |
|
|
rat86
Utente medio
 
Regione: Puglia
Prov.: Bari
Cittā: Sannicandro di Bari
|
Inserito il - 08/06/2005 : 18:13:44
|
modifica cosi il main.............................. avevi sbagliato l'aperuta del file nota tu stesso le differenze e capirai ---------------------------------------------------------------
int main(int argc, char *argv[]) { char* filename = argv[1]; FILE* gram_file; Grammar grammar; /* apertura del file contenente la grammatica */ gram_file = fopen(filename,"r"); if (gram_file == NULL) { printf("nome di file errato\n"); system ("pause"); return -1; }
.......................................................etc |
 |
|
|
Marketto
Utente medio
 
Regione: Puglia
Prov.: Ba
Cittā: Bari
|
Inserito il - 08/06/2005 : 22:08:09
|
Raga, vi allego il mio sorgente del grammar reader...non riesco a farlo girare...c'č un errore...aiutatemi...sto impazzendo...mi dice "nome file non specificato"!! Help me!! Grazie a tutti coloro che mi saranno d'aiuto!!
Allegato: AcquisGramm.rar 1,59 KB |
Marco Visitate il mio blog: http://www.cambridgetime.splinder.com |
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Cittā: Trinitapoli
|
Inserito il - 09/06/2005 : 00:06:10
|
Rat 86 il problema forse non č quello che hai capito tu, in pratica mi legge la grammatica ma mi dice sempre che č context free, anke se non č..non riesco a capire il perchč.
cmq Marketto ho visto il tuo file, alla fine č uguale al mio, prendi da lė le correzioni (o almeno...quelle che ti servono)
HELPATEMI per quest'ultima cosa che non riesco a fare....per favore ciao
|
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Cittā: Trinitapoli
|
Inserito il - 09/06/2005 : 00:52:25
|
ragazzi HO RISOLTO!!!
avevo sbagliato solo nel richiamare il file all'interno della procedura...
(is_contextfree(&grammar))
ciao e grazie di tutto!!! |
 |
|
|
Marketto
Utente medio
 
Regione: Puglia
Prov.: Ba
Cittā: Bari
|
Inserito il - 09/06/2005 : 09:19:11
|
Ma che correzioni devo prendere se il main č identico a quello postato da rat86? Cmq ho provato il tuo sorgente, ma mi dā 6 errori...soluzioni? |
Marco Visitate il mio blog: http://www.cambridgetime.splinder.com |
 |
|
|
gym83s
Utente Estremo
 
Regione: Puglia
Prov.: Foggia
Cittā: Trinitapoli
|
Inserito il - 09/06/2005 : 11:34:03
|
6 errori??? a me questo file... funziona benissimo
Allegato: grcf.zip 2,37 KB |
 |
|
Discussione  |
|