Naviga: |
Ho trovato 8 faq.
Categoria | Argomento | Commenti |
File |
Metodo Benchmark v1.2.1*
Contiene una struttura dove propongo una base di benchmark delle versioni di 4D e delle piattaforme su cui viene lanciato. In questo momento il codice è abbastanza approssimativo e non pesa allo stesso modo le varie parti del test (Export e Import sono sicuramente più significative delle altre funzioni in questo modo), inoltre testa solo il db engine del 4d mono, quindi create record, indexing, query, sort. `Method Benchmark `version 1.2.2 - 5 feb 2009 DEFAULT TABLE([Table]) If (Records in table>0) ALERT("You should launch this one on a new db") ALL RECORDS DELETE SELECTION FLUSH BUFFERS Else $quantity:=Num(Request("How many record?";String(1000))) If (ok=1) $start:=Tickcount $firstStart:=$start `create record For ($i;1;$quantity) CREATE RECORD [Table]First:=String($i) For ($j;1;10) `tre lettere [Table]Second:=[Table]Second+Char((Random%(122-97+1))+97) End for [Table]Numeric:=Random*Random SAVE RECORD End for FLUSH BUFFERS $benchmark_create:=Tickcount-$start $start:=Tickcount For ($i;1;$quantity) MESSAGE(String($i)+" on "+String($quantity)) CREATE RECORD [Table]First:=String($i) For ($j;1;10) [Table]Second:=[Table]Second+Char((Random%(122-97+1))+97) End for [Table]Numeric:=Random*Random SAVE RECORD End for FLUSH BUFFERS $benchmark_createWithDialog:=Tickcount-$start $start:=Tickcount ALL RECORDS([Table]) EXPORT TEXT([Table];"testexport.txt") $benchmark_export:=Tickcount-$start $start:=Tickcount IMPORT TEXT([Table];"testexport.txt") FLUSH BUFFERS $benchmark_import:=Tickcount-$start $start:=Tickcount SET INDEX([Table]First;True) $benchmark_index:=Tickcount-$start $start:=Tickcount QUERY([Table];[Table]First>"4") $benchmark_queryMedium:=Tickcount-$start $start:=Tickcount QUERY([Table];[Table]First<"9") $benchmark_queryLarge:=Tickcount-$start $start:=Tickcount QUERY([Table];[Table]First<"51";*) QUERY([Table]; & ;[Table]Second>"M") $benchmark_queryDouble:=Tickcount-$start $start:=Tickcount ORDER BY([Table];[Table]First;>) $benchmark_orderSingle:=Tickcount-$start $start:=Tickcount ORDER BY([Table];[Table]Second;>;[Table]First;<) $benchmark_orderDouble:=Tickcount-$start $benchmark_global:=Tickcount-$firstStart If (Compiled application) $compiled:=" Comp" Else $compiled:=" Inter" End if $result:="GLOBAL mm:ss:tt ["+String($quantity)+$compiled+"] " $result:=$result+Time string($benchmark_global/60)+", "+String($benchmark_global)+"tick"+Char(13)+Char(Line feed ) ALERT($result) $result:=$result+"create "+Time string($benchmark_create/60)+", "+String($benchmark_create)+"tick"+Char(13)+Char(Line feed ) $result:=$result+"withDialog "+Time string($benchmark_createWithDialog/60)+", "+String($benchmark_createWithDialog)+"tick"+Char(13)+Char(Line feed ) $result:=$result+"export "+Time string($benchmark_export/60)+", "+String($benchmark_export)+"tick"+Char(13)+Char(Line feed ) $result:=$result+"import "+Time string($benchmark_import/60)+", "+String($benchmark_import)+"tick"+Char(13)+Char(Line feed ) $result:=$result+"index "+Time string($benchmark_index/60)+", "+String($benchmark_index)+"tick"+Char(13)+Char(Line feed ) $result:=$result+"qryMedium "+Time string($benchmark_queryMedium/60)+", "+String($benchmark_queryMedium)+"tick"+Char(13)+Char(Line feed ) $result:=$result+"qryLarge "+Time string($benchmark_queryLarge/60)+", "+String($benchmark_queryLarge)+"tick"+Char(13)+Char(Line feed ) $result:=$result+"qryDouble "+Time string($benchmark_queryDouble/60)+", "+String($benchmark_queryDouble)+"tick"+Char(13)+Char(Line feed ) $result:=$result+"orderSingle "+Time string($benchmark_orderSingle/60)+", "+String($benchmark_orderSingle)+"tick"+Char(13)+Char(Line feed ) $result:=$result+"orderDouble "+Time string($benchmark_orderDouble/60)+", "+String($benchmark_orderDouble)+"tick"+Char(13)+Char(Line feed ) SET TEXT TO CLIPBOARD($result) C_BLOB($BLOB) TEXT TO BLOB($result;$BLOB;3) $vhDocRef:=Create document("";"txt") ` Save the document of your choice If (OK=1) ` If a document has been created CLOSE DOCUMENT($vhDocRef) ` We don't need to keep it open BLOB TO DOCUMENT(Document;$BLOB) ` Write the document contents End if End if End if |
1 |
File |
Cambia stato Visibile/Invisibile di un documento
Questa struttura è un esercizio di uso della ricorsione e di come utilizzare un solo Record ma con un gran numero di subrecord, per poter utilizzare il Runtime License Light, cioè l'engine Demo free, per creare delle utility. In realtà non sempre funziona l'attribuzione del flag visibile/invisibile (ad esempio per i pacchetti), ma chiunque voglia può proporre modifiche e varianti. Puoi scaricarlo da qui: Invisible/Visible |
|
File |
Rinomina Documenti
Questa struttura (compilandola con il Runtime License Light, cioè l'engine Demo free) permette di scorrere tutti i Files di una Cartella rinominando gli stessi (comodo, ad esempio, per rinominare foto scaricate da una fotocamera) Puoi scaricarlo da qui: Rinomina |
|
File |
Archiviazione o Protocollazione Immagini
Quante volte ci siamo chiesti "dove avro' messo quella ricevuta?" io mi sono stufato e visto che ho uno scanner in grado di salvare in formato jpeg o tiff, ho fatto questa struttura: http://www.sviluppo4d.it/4DCGI/Downloads/Archiviazione_Immagini.zip (poteva essere fatta meglio, con piu' campi, con vari livelli di accesso, con pulsanti di stampa, con l' invio per Email, con ........ (a voglia aggiungere roba) ma cosi' ognuno se la puo' personalizzare come crede) ovviamente richiede la presenza del QuickTime L'ho provata anche su windows, con solo il runtime, e pare tutto ok anche con immagini da oltre un mega e spiccioli la caratteristica e' quella di memorizzare piu' pagine con un unico riferimento Non ho volutamente usato Subrecords e con un trigger ( on load, on save ) sul Table IMMAGINI potevo salvare le immagini su folder nel caso On Save .... e richiamarle nell On Loading ... Ho giocato un po' con le dimensioni delle finestre ( magari non saro' stato molto preciso) la prima cosa da fare e' individuare la cartella dove lo Scanner salva le immagini cosi' da poter creare un alias (collegamento) allo stesso livello dell'applicazione ciao Franco Gallai Dhal Srl Arezzo P.S. : se qualcuno ci ricava un'applicazione, spero si ricordi di me |
|
File |
Elenco Comuni Italiani
Elenco dei comuni italiani, con CAP, Provincia, Codice Fiscale, Codice Istat, Codice Inps. ComuniItaliani |
|
File |
Component Query Editor
Ritenendo i component degli elementi importantissimi nella programmazione avevo promesso di fare un regalo a tutti gli sviluppatori 4D. Il regalo era un component che noi usiamo pesantemente, Query Editor. Questo component permette ai vostri utenti di crearsi delle query e di averle a portata di click. Il query editor creato, si differenzia per la possibiltà di usare anche funzioni 4D. Intendo dire che si posso cercare elementi la cui data è la current date, oppure il campo di ricerca è il risultato di una request ecc... oltre alla possibilità di fare query by formula. In allegato troverete il component e 2 manuali. Un manuale è quello di riferimento per il programmatore e l'altro è il manuale da dare all'utente finale. Il component può essere usato solo con 4D 2003.5 e non con 4D inferiori o 4D 2004. Così come è il component è in demo e lavora per un ora. Nel caso dopo le prove lo riteniate interessante e vogliate utilizzarlo nei vostri software mandatemi un mail di richiesta e vi verrà spedita la password. |
|
File |
Metodo Text2Dimensions
Text2Dimensions - Roberto Vergani - maggio 2004 per www.sviluppo4d.it CHE COS'E' Text2Dimensions e' una struttura 4D di esempio dell'uso del method TextDimensions che svolge una computazione analoga alla funzione BEST OBJECT SIZE introdotta con la v 2003 di 4D: ritorna la dimensione grafica in pixel di una stringa di caratteri con determinati attributi tipografici (font, size e style). PERCHE' SCRIVERLA QUANDO ESISTE LA FUNZIONE "BEST OBJECT SIZE"? Semplice, perche' io non ho la v 2003! Lavoro ancora con la 6.7 ed avevo assolutamente bisogno di questa funzione. E CHE CE NE FACCIAMO NOI CHE ABBIAMO LA v 2003? Umberto Migliore dice che puo' essere utile "come esempio di codice che tira fuori da 4D qualcosa di non banale, in fondo lo scopo del sito è educativo" e dato che Umberto e' il migliore lo ascolto, sperando che di fatto possa interessare qualcuno. A questo proposito, il method non e' commentato come piccola sfida ai notevoli talenti che frequentano "sviluppo4d" (dico davvero, l'affermazione non e' ironica!) chi impiega meno minuti a comprendere cosa fa il method vince un sacchetto di camomilla, ammesso e non concesso di avere tempo per queste amenita'. LIMITAZIONI E CARATTERISTICHE Il method e' applicabile a stringhe non ad oggetti. Questo implica che non e' applicabile per esempio ad un Check box, a un Tab control o ad un righello, per contro e' possibile ottenere le dimensioni di una stringa in astratto da method, svincolati dai form, per esempio e' possibile conoscere quanti pixel occupera' "QUESTA STRINGA" con font Helvetica narrow in corpo 36 grassetto corsivo. REQUISITI DI SISTEMA Richiede QuickTime. Sviluppato su Macintosh OS 9.2 con 4D v 6.7 e non mai testato altrove, lo fornisco pero' anche convertito (e testato) con la v 2003 (che ho in versione demo). Quasi sicuramente funzionera' sotto OS X ma non ho provato, ho pero' gia' testato altri miei applicativi che usano le stesse routines di QuickTime e vanno anche sotto OS X. Nessuna idea invece di cosa accada sotto Windows, non e' escluso un crash. ISTRUZIONI Sono contenute nel method e il codice del demo e' autoesplicativo. Se a qualcuno interessera' qualche informazione o un dettagliato commento del codice sono assolutamente disponibile. COPYRIGHT No copyright, assolutamente free. Del resto non servira' a nessuno, comunque io ci metto ugualmente il mio spirito collaborativo. |
|
File |
Component STF
STF è un component che esegue la compressione/decompressione di un documento o di una cartella intera utilizzando come base i blob: - gestisce sia data fork che resource fork (mac); - mantiene type e creator dei file (mac); - mantiene info (data e ora di creazione e di modifica; flag di lock); - filtra file invisibili e nascosti (quelli che sotto OSX iniziano per ".") ed alias; - gestisce file di qualsiasi dimensione; L'utilizzo è molto semplice; dopo averlo installato nella propria struttura, sono a disposizione i seguenti comandi: $err_l:=STF_StuffFolder ($foldername_t;$binHex_b) $err_l:=STF_StuffFile ($filename_t;$binHex_b) $err_l:=STF_Expand ($filename_t) Se il $foldername_t o $filename_t il componente chiede all'utente. Se $binHex_b è True, il file compresso sarà anche codificato in binhex. Se $err = 0 allora ha avuto successo, altrimenti contiene l'errore. Il component è stato realizzato da Italsoftware e reso di pubblico dominio, cioè può essere utilizzato in qualsiasi programma, anche commerciale. Basta includere nella finestra di Info o in un Leggimi di accompagnamento un riconoscimento del tipo "STF component © 2003 Italsoftware" |
Mutuo Facile, iDigitalScout, iDigitalTags e altre app di Nexid srl per iPhone e iPad
Cidroid, distributore italiano lettori barcode per IOS Apple iPhone, iPod, iPad