* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Novembre 01, 2024, 12:59:20 am

Inserisci il nome utente, la password e la durata della sessione.

107 Visitatori, 0 Utenti

Autore Topic: File2Unit: un modo per includere 1 o più file nell'exe e salvarli a runtime...  (Letto 3950 volte)

Danycop

  • Newbie
  • *
  • Post: 12
  • Karma: +0/-0
Salve a tutti,
ho aperto il topic per condividere con la community un programmino che ho appena realizzato e penso possa essere di aiuto a molti di voi. il programa è solo un demo funzionante che mostra come creare una unit (Unit_store) che può contenere uno o più file da voi scelti ed espone un metodo da chiamare a RunTime per salvarli sul disco all'occorrenza.
Il programma può generare Unit sia per Lazarus/FPC che per Delphi e sia in chiaro che in modalità compressa per ridurre la grandezza della unit. Un pulsante apre la finestra di dialogo per scegliere i file da inglobare e l'altro mostra come si usa il metodo esposto dalla unit_store, per provare con le unit generate da voi ovviamente il progetto va ricompilato dopo aver incluso la unit_store generata da voi.
Naturalmente il programma può essere modificato per aggiungere nuove funzionalità (per esempio scegliere quali file salvare, adesso il programma li salva tutti oppure solo tramite il nome ma non consente la scelta a runtime).
Non Ho provato il programma in versione Linux o altri sistemi ma ritengo che possa funzionare tranquillamente senza problemi.
Buon divertimento a tutti

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2917
  • Karma: +20/-4
l'idea è buona
se non ho capito male si tratta di una gestione di risorse embedded nel sorgente pascal

un concorrente di windres...
quindi lo proverò sicuramente :)
Imagination is more important than knowledge (A.Einstein)

Danycop

  • Newbie
  • *
  • Post: 12
  • Karma: +0/-0
Esattamente, come le risorse di windows ma con in più la possibilità della compressione zip in modo da non lasiare in chiaro i file e non occupare troppo spazio, inoltre dovrebbe poter funzionare in altri sistemi operativi come LINUX.
 :)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2917
  • Karma: +20/-4
inoltre dovrebbe poter funzionare in altri sistemi operativi come LINUX.
 :)

perché ci sono altri sistemi operativi oltre linux?  ;D
« Ultima modifica: Luglio 01, 2021, 03:24:07 pm da nomorelogic »
Imagination is more important than knowledge (A.Einstein)

Danycop

  • Newbie
  • *
  • Post: 12
  • Karma: +0/-0
... Dimenticavo di dire che:
ho usato questo metodo per includere la DLL di sqlite ed il relativo DB Vuoto nell'eseguibile,
evitando di distribuire 3 file enzichè uno solo: l'eseguibile.
All'avvio del programma controllo la presenza dei file su disco e, solo se non presenti, uso il metodo SaveToFile della unit
per crearli.

buon lavoro a tutti.

Danycop

  • Newbie
  • *
  • Post: 12
  • Karma: +0/-0
inoltre dovrebbe poter funzionare in altri sistemi operativi come LINUX.
 :)

perché ci sono altri sistemi operativi oltre linux?  ;D

Nomorelogic, hai avuto modo di provarlo sotto Linux?
Ti sarei grato per un feedback a riguardo,
Grazie.

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2917
  • Karma: +20/-4
ancora no, ma vedo di farlo in giornata
Imagination is more important than knowledge (A.Einstein)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2917
  • Karma: +20/-4
La compilazione e la generazione del .pas sembrano funzionare
non ho ancora provato il processo inverso ma vedrò di farlo quanto prima

Unica nota bisognerà trovare un tema migliore per il SynEdit in quanto non si legge tutto bene (qualcosa è scritto in bianco su bianco).

Cmq per ora non ci sono stati problemi.

nomorelogic
Imagination is more important than knowledge (A.Einstein)

Danycop

  • Newbie
  • *
  • Post: 12
  • Karma: +0/-0
Probabilmente nel synedit avrò scelto dei colori di sistema windows che in linux risultano bianchi, cercherò di cambiare il colore del font....
sto anche modificando la unit generata in modo da avere anche la possibilità di memorizzare un percorso di cartella relativo per ogni file
immagazzinato, potrebbe essere utile per per ricreare una struttura di sottocartelle e file.
Quando avrò finito, il progammino potra anche essere usato come installer....

Danycop

  • Newbie
  • *
  • Post: 12
  • Karma: +0/-0
Re:File2Unit: un modo per includere 1 o più file nell'exe e salvarli a runtime...
« Risposta #9 il: Dicembre 12, 2021, 06:06:48 pm »
Ciao a tutti,
ho scoperto un piccolo bug nel mio codice e per questo i file salvati a run-time erano più grandi degli originali... allego la nuova versione corretta, con la speranza di avere il tempo per migliorare il programmino e consentire di aggiungere e togliere file dalla unit in tempi diversi senza dover ogni volta rifare tutto da capo; spero anche di poter dare la possibilità di assegnare ad ogni file la propria cartella di lavoro.
Ricordo a tutti che con la unit_store che ognuno può generare con la mia utility, si può tranquillamente fare a meno dei programmi di setup in quanto tutti i file necessari alla nostra applicazione (.dll, .jpg, ecc.)  potranno essere generati direttamente dal nostro eseguibile a run-time quando non già presenti sul disco.
Buon lavoro a tutti.

 

Recenti

How To

Utenti
  • Utenti in totale: 802
  • Latest: Il Faro
Stats
  • Post in totale: 19104
  • Topic in totale: 2279
  • Online Today: 104
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 107
Total: 107

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.