Newsgroup: it.comp.lang.pascal
Titolo: Argomenti sulla riga di comando

E' possibile passare argomenti sulla riga di comando ad un programma Pascal
come in C?
Grazie a chiunque voglia rispondermi,
Ciao                           --- Mauro ---

 come in C?
Certo! Devi usare ParamCount,  che ti dice quanti argomenti ci sono, e
l'array di stringhe ParamStr[n argom] che contiene l'argomento vero e
proprio.
Esempio:
for I := 1 to ParamCount do
   Writeln(ParamStr(I));
(* Visualizza i parametri passati al programma *)
Ciao.

    Writeln(ParamStr(I));
 scusa ma tu sai la diferenza tra funzione e un array?
-- 
IL RAZZIATORE,
The Only good Windows is an Unistalled Windows
-----------------------------------------------------
EMAIL: 
razzi...@usa.net
WEB:   
razziatore.dsx.org
 sito in aggiornameto/alestimento
ICQ:   67552596

  scusa ma tu sai la diferenza tra funzione e un array?
No guarda.... Mi sono confuso è ho scritto solo una cazz... a livello di
termini, ma dall'esempio mi pare chiaro...
Mi pare che siamo in aria di tirarcela un poco, o sbaglio?

 termini, ma dall'esempio mi pare chiaro...
L'esempio era il migliore che potevi fare era solo che non volevo che lui si confondesse visto che in C
si usa un cosa un po' stana cioè vale a dire la verità un puntatore a un array di Char... ma non l'equivalente
della  stringa pascal ma bensi di un array di stringe che contengano ongi singola parola... è stano...
cmq per magior chiarezza rifaccio il tuo esempio in C e ricopio il tuo 
esempi cosi capiamo tutti oK?
void main(int paramcount, char *paramstr[])
{
/* lo C standad vorebbe il main int ma a me non piace...
  * In param e contenuto il numero dei parametri totali pasati al
  * programma. In paramstr[0] è contenuto il path del eseguibile
  * (ad esempio c:\bc\myfiles\esempio.exe)
  */
int c;
for (c=1; c < paramcount; c++)
   cout << paramstr[c] << "\n";
// uguale a for c:= 1 to paramcount-1 do
}
for I := 1 to ParamCount do
    Writeln(ParamStr(I));
c:\> esempio.exe ciao cia ci c
PASCAL               C
paramcount  = 4                paramcount = 5
ParamStr(0) = c:\esempio.exe   paramstr[0]= c:\exempio.exe
paramstr(1) = Ciao             paramstr[1]= ciao
...                            ...
paramstr(4) = c                paramstr[4]= c


 ha scritto nel messaggio
news:GB166.265161$hk4.13...@news.infostrada.it...


 della  stringa pascal ma bensi di un array di stringe che contengano ongi
singola parola... è stano...
[...]
Si è vero, anche io conosco l'equivalente in C, e forse ho sovrapposto
C/Pascal e  ne è venuta fuori quella descrizione di ParamStr.
...cmq secondo me è implementata meglio in C.

 ....cmq secondo me č implementata meglio in C.
Be io credo che non si possano fare confronti tra compilatori di diversi 
linguaggi... entrambi convertono un linguaggio ad alto livello in uno a 
basso livello e secondo me (che mi ritengo abastanza bravo) fanno 
parechie stupidagini... es: il C per uscire da un programma chiama circa 
50 istruzioni (con alcuni cicli) mentre basterebbe solo due istruzioni:
Mov  Ax, 4C00h
Int  21h
e questo perchč in ASM un umano prende sempre la via piů breve mentre un 
compilatore che deve potersi addatare alle varie essigenze usa una 
"procedura standard"... per non parlare del pascal... voi avete mai 
visto quante istruzioni comporta il programma
Program Niente;
Begin
End.
Vi dico solo che il programma parte 0x0100 finisce al inderizzo 0x055F
dove le ultime quatro operazioni io non capisco perchč le fa...
216C:0559 33C0          XOR	AX,AX
216C:055B 33D2          XOR	DX,DX
216C:055D 8BCA          MOV	CX,DX
216C:055F 8BD0          MOV	DX,AX
potrebbe essere un azeramento dei registri ma a che serve?
per arrivare a un totale di 39KB di file ASCII...


 wrote in message
93agh1$9b5vt$1...@ID-66903.news.dfncis.de...


beh la unit system che viene inclusa di default contiene
una parte di inizializzazione... che probabilmente prepara
la gestione della memoria, dell'i/o e boh chissa' cos'altro...
Poi alla fine deve rimettere tutto a posto, controllare che
non siano stati aperti file perche' deve chiuderli, deallocare
la memoria... etc etc... quindi in fondo qlcs fa :-)
Per le ultime righe boh... :-)
ciao
--
Dreadnaut (dn)
drea...@liberoDALLASPAM.it


[...]
penso che sia un reset dei registri, AX è l'accumulatore, DX e CX servono
per puntere le aree di memoria, sono detti registri utenti, in quanto il
programmatore può decidere di sfruttarli a suo piacimento...
 MOV DX, AX    sei sicuro ? mi sembra na stupidagine dato che AX e DX si
sono azzerati per l'effetto dello XOR
Ciao Re Di Cuori

 - rimuovi XXX  x  rispondere  ICQ	#8814554
 
STAMPANTE AD AGHI - Dispositivo per tatuaggi automatici.
STAMPANTE  A   MARGHERITA   (1)   -   Stampante   per	capi   delicati.
STAMPANTE A MARGHERITA (2) - Stampante a getto di pomodoro e mozzarella.
STAMPANTE PARALLELA - Stampante posta accanto al computer, per il lungo.