Conbinations Gen 1.0

« Older   Newer »
  Share  
-AsCiA-
CAT_IMG Posted on 26/7/2011, 00:03     +1   -1





Versione 1.3
-Bug di rallentamento algoritmo fixati

-Ottimizzato del processo di generazione
Sostituita la struttura di for annidati con una struttura lopp-and-half

-Eliminata seconda interfaccia grafica,rallentava troppo l'algoritmo
e' stato utilizzato al suo posto un file di log.

-Eliminata la possibilita di settare la potenza di esecuzione,era la mia vbox che dava problemi di memoria

-Gia che c'ero ho anche tradotto in inglese XD

-Ringraziamenti:
Master per l'opzione di svuotamento della variabile quando supera i 32Mb



*non riesco a modificare il titolo del post,volevo scrivere 1.3 al posto di 1.0

Eccomi qui.
Per prendere un po' di confidenza con la sintassi di autoIt ho scritto un programmino/scriptino.

Descrizione del programma:
Dato un insieme finito di caratteri Combinations Gen genera tutte le parole,sensate e non,che utilizzano tali caratteri.

Ecco uno screenshot (1.3)




Il download e' possibile qui:
*All'interno del pacchetto rar troverete un file leggimi con le istruzioni qualora la prima schermata non fosse chiara
*il sorgente e' all'interno del rar

Edited by -AsCiA- - 27/7/2011, 23:33

Download attachment
Combinations_Gen_1.3.rar ( Number of downloads: 33 )

 
Top
LoGiX
CAT_IMG Posted on 26/7/2011, 00:54     +1   -1




Aperto. Ora sto aspettando che mi dia un risultato. Abbastanza lento, ma vabbè, tante lettere e moltissime le combinazioni :)

Edit: Mi ha generato EEE
Con 3 caratteri e poche lettere xD
Vabbè, sarò io che non saprò usarlo.
Bel programma XD
 
Top
-AsCiA-
CAT_IMG Posted on 26/7/2011, 00:57     +1   -1




no aspe...
i parametri sono impostabili,se lasci quelli di default ti ci vuole un eternita'
se ti ha generato solo EEE
vuol dire che come carattere hai usato solo una E e sia per min che per max hai usato 3.
 
Top
-AsCiA-
CAT_IMG Posted on 26/7/2011, 01:12     +1   -1




Cmq come ripeto,l'ho scritto per entrare bene in confidenza con la sintassi.
infatti probabilmente ci sara' qualche errore o avro' utilizzato in alcuni punti qualche giro piu' lungo quando forse c'era la possibilita' di farne uno piu' corto,anzi mi farebbe piacere,nel caso qualcuno notasse qualche problema/errore nel source di spiegarmi come avrei per fare meglio potuto fare.
Ora come ora programmo solo per imparare sempre di piu.
Un'altra cosa,quando avvio il processo anche con i valori min e max rispettivamente a 1 e 16 e' all'interno di ben 16 for annidati,perche' non mi sbrana la CPU ha morsi?
all'inizio ero li ha chiedermi cosa avrei potuto usare per ottimizzare i consumi,credendo che avrebbe preso tutta la memoria,invece no.
Secondo me c'e' qualcosa di strano,come qualcosa che rallenta le prestazioni,ho controllato se tra i cicli mi e' sfuggito qualche sleep() e invece niente,come mai?

EDIT
Ho capito cosa c'e' che non va...
Erroraccio rallento di moltissimo le prestazioni dell'algoritmo.
Colpa mia,dovevo controllare...

l'errore e' qui,all'iterno di ogni ciclo ripeto questa cosa.

CODICE
If GUIGetMsg() == $GUI_EVENT_CLOSE Then
               killProcess()
               EndIf

Questo rallenta davvero di moltissimo il tutto.

Ok,domani vedo di fixare il tutto,per adesso dico che potete anche evitare di scaricarlo perche' non e' corretto

Edited by -AsCiA- - 26/7/2011, 02:34
 
Top
Aaly
CAT_IMG Posted on 26/7/2011, 01:35     +1   -1




Codice ordinato e ben scritto.
A me funziona tutto correttamente, bravo. ;)
 
Top
-AsCiA-
CAT_IMG Posted on 26/7/2011, 01:50     +1   -1




grazie,sono dell'idea che un buon programmatore deve innanzitutto scrivere un buon codice,quantomeno ordinato e comprensibile.
l'unico problema che come ho editato nel messaggio precedente c'e' un bruttp errorre che mi rallenta notevelmente le prestazioni...
devo risolvere

ho gia' pensato ad una soluzione per fixare il problema,ma devo coambiare un po' di cose e se utilizzo questa soluzione devo implementare una nuova funzione per dar modo all'utente di settare la potenza di esecuzione,come avevo gia' in mente di fare.
Gia' che ci sono approfitto per chiedervi una cosa.
Implementando la nuova funzione devo fare in modo che lo script non si possa killare dal solito pultante (la X rossa) ma debba essere killato tramite la try icon.
questo non e' un problema ma non mi piace avere il pulsante per chiudere in alto che se si schiaccia non fa nulla.
Si lo so sono pignolo quando programmo XD
come posso fare in modo che il pulsante sia disabilitato?
Vado a dormire adesso intanto ringrazio per le eventuali risposte :)
domani fixero' il tutto e uppero' il nuovo file con il nuovo sorgente modificando il primo post :)
 
Top
-AsCiA-
CAT_IMG Posted on 26/7/2011, 20:26     +1   -1




Versione 1.1 rilasciata.
Bug noti attualmente nessuno
 
Top
Delbix
CAT_IMG Posted on 26/7/2011, 20:58     +1   -1




bello :D ma quanto ci mette? xD
 
Top
»Master
CAT_IMG Posted on 26/7/2011, 20:58     +1   -1




avviata la mia VM quindi ora lo provo :)
bravo :) ma è lentissimo, non solo a colpa di autoit... ora faccio qualche modifica, che ritengo velocizzerà del 500% xD ovviamente se me lo permetti :)
edit: cavolo mi risulterà difficile, hai fatto il codice nella maniera più difficile xD
 
Top
-AsCiA-
CAT_IMG Posted on 26/7/2011, 21:12     +1   -1




Ma certo che te lo permetto,solo che ti chiedo cortesemente poi di spiegarmi piu' o meno quello che fai cosi' capisco qualcosa :).
Eh cavolo scusate per il codice piu' difficile e' che sono abituato alla OOP e mi e' difficile fare tutto in modo sequenziale XD
Tra l'altro e' la mia prima settimana di autoit quindi conosco pochissime funzione,ho cercato di farle girare XD
Cmq sarei molto felice se modifichi e mi fai capire cosa fai,ho molto da imparare ancora,sia con autoit,sia con le programmazione in generale e vorrei cercare di imparare il piu' possibile,programmando e accettando consigli utili dai piu' esperti.
 
Top
»Master
CAT_IMG Posted on 26/7/2011, 21:16     +1   -1




cavolo... scusami io non riesco a modificare lo script così... ti capisco, altri metodi di programmare, l'OOP è molto diverso dal metodo sequenziale xD però secondo me avrai più facilità ad abituarti alle funzioni che crei :)
comunque missa che posto il mio generatore di dizionari standard, appena gli faccio qualche modifica, tutta la parte che genera il dizionario è commentata :)
 
Top
-AsCiA-
CAT_IMG Posted on 26/7/2011, 21:36     +1   -1




CITAZIONE
scusami io non riesco a modificare lo script così

porca miseria tanto pessimo e'? XD
ho anche commentato tutte le funzioni ecc...
il casino piu' grande sicuramente sta nelle generazione,ci sono molti for annidati e all'interno di ogni for ci sono moltissimi if.

solo che mi serviva un if per valutare se fare o meno il valore maggiore
uno per valutare se fare o meno il valore minore ed un altro con lo sleep per gestire la velocita' di esecuzione,l'unica cosa che forse rallenta molto e' che se si sceglie di generare solo parole da 16 a 16 caratteri ad esempio vengono eseguiti anche i for che vanno da 1 a 15 ma questo mi serviva per arrivare nel 15esimo for con le variabili che vanno da i1 a i15 inizializzate,e' qui il problema che rallenta?
e' che non sono riuscito a trovare un altra soluziione :(

un'altra cosa
ora che ci penso io ho usato quell'hotkey in ogni for,ma non e' che mi bastava metterlo solo all'inizio dello script?
scusate ma sono proprio alle prime armi con autoIt XD
 
Top
Delbix
CAT_IMG Posted on 26/7/2011, 21:54     +1   -1




si se lo metti all'inizio è piu che sufficiente :D
 
Top
»Master
CAT_IMG Posted on 26/7/2011, 21:58     +1   -1




CITAZIONE (-AsCiA- @ 26/7/2011, 22:36) 
CITAZIONE
scusami io non riesco a modificare lo script così

porca miseria tanto pessimo e'? XD

nooo... non volevo passare questa impressione xD
per me nessun script fa schifo (vabbhe ci sono davvero alcuni che fanno schifo, devo ammetterlo xD, ma il tuo non è uno di questi)
l'unico problema è che è proprio disorganizzato, non riesco a capire niente xD

comunque soltanto un hotkeyset basta ;)
 
Top
-AsCiA-
CAT_IMG Posted on 26/7/2011, 22:09     +1   -1




si si ho sistemato adesso l'hotkey e ho riuppato sia il source che l'exe corretto.
Per quanto riguarda lo script beh si ammetto che fino alla funzone generale sono riusctito a tenere le cose abbastanza organizzate,poi all'interno della funzione generale le cose mi sono un po' sfuggite XD
Nel senso che e' pieno di if e contro if.
Solo che non sapevo come gestire altrimenti la lunghezza delle parole da generale,mi serviva un if per scrivere solo i valori minimi richiesti ed un'altro per ciclare solo quelli massimi,sono riuscito ad evitare di eseguire tutti i i for che non servono per i massimi,nel senso se viene impostato come massimo 5 non eseguo tutti i for che vanno da 5 a 16 ma non sono riuscito a fare lo stesso per i valori minimi,nel senso che se si imposta come minimo 10 i for che vanno da 1 a 10 sono comunque effettuati,come ho detto gia' prima,questo mi serviva per arrivare fino a $i10 con le variabili da $i1 a $i9 piene.
uhm non so come velocizzare,non mi viene in mente nulla,credo che il trucco deve stare nel fare in modo che vengano generati solamente i cicli che servono.
Ma non mi viene in mente nulla

edit.
mi chiedevo se invece di utilizzare l'array utilizzo semplicemente uno stringMid veloccizzo qualcosa o alleggerisco solo lo script?
 
Top
16 replies since 26/7/2011, 00:03   341 views
  Share