Sviluppo4d.it
Sito indipendente di informazioni tecniche per sviluppatori 4th Dimension italiani  

Sviluppatori 4D

Utility 4D

Risorse 4D



4d logo
Naviga:

Faq

Ho trovato 8 faq.

Categoria Argomento Commenti
File 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 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 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 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 File Elenco Comuni Italiani
Elenco dei comuni italiani, con CAP, Provincia, Codice Fiscale, Codice Istat, Codice Inps.

ComuniItaliani
File 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 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 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"

Accesso

User:
Pass: Accedi

Cerca

Se non trovi le informazioni che cerchi scrivi a aiuto@sviluppo4d.it

4D Principali

4D Discussioni

Faq random


Crediti

Dominio registrato da ZetaNet
Sito realizzato da Nexus srl
4D SQL 11.9.0 offerto da 4D & Italsoftware
Icone di FAMFAMFAM
Moderato da Umberto Migliore
301 utenti registrati

Pagina servita il 19/03/24 alle 12:09:29 Valid HTML 4.01! Valid CSS!

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