Guida AutoIt v.2.0

Stato
Discussione chiusa ad ulteriori risposte.

RedSkull

Utente Electrum
1 Aprile 2008
177
19
0
103
Ho appena rilasciato la versione 0.2 della MIA guida all’AutoIt.

RICORDO che questa guida è ancora in versione BETA quindi in futuro sarà soggetta a cambiamenti (anche radicali).

In questo periodo ho davvero poco tempo da dedicargli (Faccio quello che posso) .

In questa versione ho aggiunto parti alle cose vecchie.

Aggiunte e spiegate altre funzioni utili (con relativi esempi)

Rieditato alcuni pezzi.

Fatemi sapere cosa ne pensate (consigli COSTRUTTIV)

Nota Bene: La guida è stata rieditata TUTTA quindi RILEGGETELA DALL’INIZIO !

RIPETO CHE LA GUIDA NON E’ COMPLETA,TRATTA SOLO ALCUNI ARGOMENTI PER ORA. (nella prossima versione vedrò di fare le gui,i socket e alcune udf utili come _IE e altro…)

VI VOGLIO RICORDARE CHE LA GUIDA E’ STATA SCRITTA/PENSATA/SOGNATA DA ME (RedSkull), SE VERRA’ LINKATA SUGGERITA PUBBLICATA, L’AUTORE DOVRA’ SEMPRE ESSERE CITATO.SPERO SI SIA CAPITO.

Ecco il link al pdf : AutoIt2.pdf
Aspetto consigli :D
 
kelev ha detto:
Mi sono loggato dopo anni per insultarti.
Consiglio!? Sei una merd*.

Uhm, se si trattatava di uno scherzo ci sarebbe stato bene un "XD"; se si tratta, come ritengo relativamente probabile, di una critica dovuta al fatto che è AutoIT, puoi calciorotarti fuori da qua gentilmente?

AutoIT per quanto possa essere criticabile per una miriade di aspetti può essere utile per creare *velocemente* software su piattaforma windows, al pari di vb(.net) e C#.

E RedSkuul, tanto perché tu lo sappia, non è del tipo "Widows pow@, linux sucks", utilizza slakware, ma nn è neanche dell'opposto: è una delle (poche) persone che razionalmente accetta e considera necessaria l'esistenza di entrambi.

Ora, spiegati, è anche un consiglio, o i mod potrebbero prendere provvedimenti direi.


[ot]
la mia ipotesi lo desunta anche da:
La rep di RedSkull ha detto:
kelev (1) - Ultimo aggiornamento 08-31-2009, 12:31

Negativo (-1): Ha smesso di codare in autoit
[/ot]
 
Vabe Malex non mi rompere i *******i..non fare finta di sapere le cose quando non sai un pazzo, ergo, sei noob.
 
che gente malata...
Pensi davvero di essere figo solo perchè ti fai le seghe sui sorgenti in asm ?
Lascia stare e vai a rompere le palle a qualcuno malato quanto te...
Ora sparisci.
I mod possono fare il loro lavoro.
[ot]
e non andare a piangere dalla mammina
[/ot]
 
Orakool, quella era una mia preda.
Grr.

However, redskull, fai un indice e salta una pagina.
(e cambia i colori xD sembra un libro da colorare xD)
 
lol Ok all'indice ci avevo pensato, però pensavo di metterlo alla fine xD
Per i colori...
in che senso ?
Ho colorato solo i titoli (rosso con evidenziazione), stessa cosa per i codice (solo i primi sono colorati)
 
Red: ho notato che ogni tanto piazzi delle maiuscole a metà frase, inoltre noto ad esempio, allizinio "i commenti si possono fare con "blabla" e poi nel codice scrivi Blabla, credo sarebbe meglio scrivere giusto anche nel testo, nn solo nel codice
 
uhm, la leggo e intanto scrivo qui cosa può essere migliorato in una ipotetica prossima versione, quindi vedi che i miei appunti seguono lo scorrere del libro =)

Per i commenti, ok spiegare l'utilità e l'importanza di usarli, ma prima direi che è necessario dire COSA È effettivamente un commento a livello di sintassi.

top pagina 5
Codice:
...il tempo prima che il messaggio scomparisca da solo ....
s/scomparisca/scompaia

Sempre sullo stesso paragrafo, non mi pare proficuo introdurre un argomento importante come i passaggio di argomenti a funzioni così superficialmente, è facile che uno che sta apprendendo si trovi spaesato di fronte a questo. Inoltre lo dici come se la virgola andasse aggiunta solo nel caso dei parametri facoltativi.
Un'altra cosa che mi è venuta in mente, in nessuna parte della guida spieghi come va letta la documentazione ufficiale (anche se dici di usarla insieme alla guida), aggiungila visto che è un passo importante in ogni guida ad un linguaggio di programmazione.

Codice:
Le variabili sono dei luoghi in memoria dove è possibile immagazzinare o prelevare velocemente dati e informazioni.
Le variabili non sono luoghi in memoria. Che differenza c'è tra dati e informazioni?
Aggiungerei a questo breve trafiletto introduttivo una spiegazione sul come si presentano le variabili in genere (in tutta la programmazione), ovvero con il dato che essi contengono (ed il relativo tipo) e l'identificativo (nome) con il quale si può manipolare il dato.

Codice:
Le variabili in AutoIt incomincia sempre ...
ma l'hai riletta dopo averla scritta?

Codice:
  ... e può essere chiamata con lettere,numeri e il
carattere di sottolineatura _
Mettiti nei panni di un niubbo, non ha idea che una variabile abbia un nome, e tu gli spari su questa cosa. In più la frase non è un grande esempio di italiano elegante, la vedrei più come "il nome [o identificativo] di una variabile può contenere [...]

Codice:
Questi invece sono variabili che non posso essere chiamate perché non rispettano la regola di prima:
$123 (inizia con numeri)
$Io Sono Red Skull (Contiene spazi)
Non hai mai scritto che non possa contenere solo numeri...

Ci terrei a dire che queste possono sembrare inutili "ricerche del pelo sull'uovo", ma è importantissima la correttezza di esposizione in una guida, già è difficile assimilare nuovi concetti, se poi devi metterti anche a decifrare errori la cosa si fa difficoltosa...

Continuerò poi, non prendertela se fin'ora ho detto solo male, ovviamente quando l'avrò finita di leggere ti dirò il mio giudizio complessivo ;)
 
nono orakool fai BENISSIMO , sono tutti commenti utili e costruttivi, non aspettavo altro :)
correggero gli "errori" e modifcherò le parti dove sono stato superficiale.
cmq la guida in autoIt viene installata direttamente insieme al compilatore quindi non penso ci sia bisogno di inserire anche la guida. (se il senso era quello)
 
No sai, non so nemmeno se ho fatto bene a dirlo, mi è venuto in mente leggendo dei parametri facoltativi per il fatto che in genere le funzioni sono scritte secondo la sintassi

funzione( param1, param2 [,paramFacoltativo] );
e magari un niubbo non ha idea di cosa vuol dire quel coso tra parentesi quadre, ma in realtà non ho idea di come è strutturato il reference di autoit =)

[ot]sai, sono così sensibile alle problematiche dell'apprendimento perché ho dato diverse volte lezioni private per vari argomenti dell'informatica :p [/ot]
 
Proseguo con la lettura... siamo a pagina 6.

Codice:
Vediamo i segni di operazione: [...] = (assegno)
Il termine giusto è assegnazione

Codice:
N.B. Nella funzione MsgBox non abbiamo messo “$variabile3†tra apici ma senza gli apici questo perché
se l’avessimo messa dentro gli apici il messaggio stampato sarà $variabile3 e non il contenuto, quindi
ricordate che quando si vuole stampare il contenuto di una variabile non bisogna metterla dentro gli
apici “â€.
Che può andar bene per un how to, così dici solo "non mettete le variabili tra virgolette" ma non spieghi perché. Può essere complicato spiegarlo subito, ma è un grosso problema di linguaggi fortemente orientati al proprio framework. Tu giustamente cominci parlando subito di funzioni (la MsgBox) ma non hai minimamente accennato ancora ai tipi di dato. Una spiegazione semplice per dare un perché al non mettere le " sulle variabili è che le virgolette rappresentano costanti stringa (come 1, 5, 233.4 sono costanti numeriche) e contengono un valore costante, non variabili.

Codice:
Le variabili possono contenere qualsiasi dato, quindi anche stringhe, ora vedremo il concatenamento di
stringhe e la gestione delle stesse.
Così generi confusione, fai una benedetta spiegazione dei tipi di dato e dì che le variabili li contengono, poi passi a spiegare il dettaglio!

Codice:
... il carattere & (e commerciale) serve ...
meglio dire che si chiama ampersard, nei testi informatici in genere è riportata con questo nome.

Per quanto riguarda la concatenazione (e qui parlo per pareri personali) secondo me è meglio che prima gli fai fare la stampa di "hello" e "world", vedono che si stampano attaccati, e poi gli fai vedere le possibili soluzioni. Tra l'altro quella che usi tu è deprecata, perché se poi riutilizzo l'hello con lo spazio per concatenarla con un altra variabile che, putacaso, ha uno spazio prima per gli stessi motivi, l'output sarà sballato. Fagli concatenare uno spazio tra le due variabili-stringa, così si vedono anche che possono concatenare costanti-stringa e variabili-stringa.
È un buon approccio all'insegnamento "impara dagli errori", e anche fargli provare sulla pelle gli errori comuni aiuta.
↑ok, l'hai fatto dopo, ma non edito perché comunque i fatti restano e ormai l'ho scritto =\

Nella parte finale sulle variabili, effettivamente è sbagliato dire che "il msgbox esegue l'operazione", si fanno una logica sbagliata del funzionamento della programmazione. In realtà la funzione prende una stringa e basta, l'espressione viene valutata prima, e quello che risulta viene passato alla funzione.

Codice:
Un array è una variabile contenente serie di elementi di dati.
Io amplierei e specificherei meglio questa premessa degli array.
Prima di tutto, un array contiene UNA serie di elementi. Che sono l'equivalente del contenuto di una singola variabile. Poi possono anche contenere altri array (non so se in autoIT) ma insomma non puoi dire che contiene "serie" di elementi, in genere è così che li introduco io. E poi,
Codice:
Ciascun elemento di questa variabile può
essere letta da un numero di indice.
Direi che "si può accedere a ciascuno di questi elementi tramite un indice. È una lista di valori, quindi ogni valore ha il proprio indice numerico che lo identifica.".

Codice:
Questo è uno script dove viene dichiarato un array di 2 elementi (ricordo che il conteggio dei valori parte da
0 quindi sarà sempre inferiore di 1 dal numero di valori reali) nell’indice 0 viene memorizzato il valore “Io
sono†e nell’ indice 1 viene memorizzato il valore “un array†tutto questo richiamato all’interno di un
MsgBox e separato da uno spazio (altrimenti verrebbe tutto attaccato).
Quindi diciamo che l’indice dell’array và da 0 a n-1 (dove n e il valore che abbiamo messo per creare l’array)
La parte tra parentesi e l'ultima frase sono lo scoglio più grande di chi approccia gli array per la prima volta (insieme al ciclarli tramite for), direi che meritano un trattamento più ampio.
E che vuol dire "sempre inferiore di 1 dal numero di valori reali"? Ci sono valori finti? Quella parentesi è un casino, il conteggo dei valori è UGUALE al numero dei valori, non inferiore di uno. Occhio alla terminologia!
Dì piuttosto che l'ultimo elemento avrà indice n-1 dove n è il numero totale degli elementi, così non si capisce un tubo.


Nel capitolo seguente passi subito a parlare di ricerca sequenziale, senza introdurre minimamente il problema della ricerca.
"Spesso è necessario ricercare un valore all'interno di un array, ci sono differenti algoritmi [giustamente, pazzo è un algoritmo?] per trovare l'indice (o gli indici) di un (o più) valori precisi, vedremo qui il più semplice ma anche il meno efficente."
e poi vai con la ricerca sequenziale.


Codice:
Per verificare la grandezza dell’array ci facciamo aiutare dalla funzione UBound che restituisce il valore
massimo dell’indice dell’array, però voglio ricordare che resituisce il valore completo dell’array quindi
basta che mettiamo un -1 dopo in modo da risolvere. Vediamo un esempio:

Questa è una contraddizione! Prima dici che restituisce "il valore massimo dell'indice dell'array" [???, al limite restituirà l'indice dell'ultimo valore dell'array] che è, abbiamo detto, n-1 (n=numero elementi). Poi dici che restituisce il valore completo dell'array [???, semmai la dimensione dell'array, il numero dei suoi elementi] ovvero n.

Non puoi usare i cicli (for), istruzioni condizionali (if) e valori boleani senza averli ancora spiegati!

Codice:
L'array è grande "&UBound($array)-1 & "Le dimenzioni complete sono:
"&UBound($array))
Ottimo, così se prima avevano dubbi su cosa facesse UBound ora sarà tutto chiarissimo. Che differenza c'è tra la grandezza di un array e la sua dimensione??

Red, sta guida è un po' un casino, dagli una riguardata! Se trovo il tempo andrò avanti.

EDIT: piuttosto, spieghi le cose in modo che solo qualcuno che conosce già un linguaggio o più possa capirle, ma in genere queste persone non vanno a cercare guide, ma vanno a leggersi i references e le starter guide ufficiali visto che ne sono in grado. Se il tuo intento era scrivere una guida solo per per le persone che già conoscono la programmazione allora dovresti spiegare subito i caratteri salienti del tuo linguaggio e non come fare una ricerca per selezione o dichiarare una variabile. Se invece vuoi fare una guida ufficiale devi stare più attento ai bisogni del lettore.
 
Ok ricevuto seguirò passo passo quello che mi hai detto, in effetti è da rifare per la stragrande maggioranza, lol avevo proprio bisogno di una correzione da parte di qualcuno + competente in materia ^_^
Io ho imparato l'autoIt all'età di 12 anni quindi ho dovuto ragionarci un bel pò sulle cose prima di capirle... (visto che partivo da 0 e senza un'aiuto), quindi pensavo che una guida "superficiale" poteva andare bene x gli altri, ma adesso mi rendo conto che è meglio farla x un "pubblico" - pazzo xD
Grazie orakool sei stato prezioso :D
Se hai altro da aggiungere fallo pure :)
 
Per ora no, credo che aspetterò la prossima versione.

E' stata comunque una lettura interessante, sai, io nemmeno lo conosco l'autoit lal
 
non voglio fare il pignolo però mi viene spontaneo da notare che nel titolo c'è "AutoIt v.2.0" e poi scrivi "versione 0.2"...ma è 2.0 o 0.2??xD
comunque l'AutoIt è un bel linguaggio, mi piace molto, e l'idea di fare questa guida è ottima, complimenti, e con il tempo vedrai che riuscirai a completarla come si deve ;)
 
Stato
Discussione chiusa ad ulteriori risposte.