giovedì 26 febbraio 2009

Portale italiano di Sharepoint

Dal seguente sito http://msdn.microsoft.com/it-it/office/aa905503.aspx si trova il portale in italiano di Microsoft Sharepoint.
Nel sito si trovano diverso materiale formativo, articoli, notizie, aggiornamenti ed altro ancora.
Un buon punto di riferimento per coloro che utilizzano questa tecnologia.

mercoledì 25 febbraio 2009

Recensione libro: Problemi e Soluzioni con Excel




Scheda del libro:

digital lifestyle pro

























Autore:
Alessandra Salvaggio
Prezzo:Euro 19,90
Caratteristiche:
224 pag - 17x24 bn
ISBN -13:9788882336936
Anno di edizione:2009
Numero dell'edizione:one:1
Argomento:Informatica
Collana:digital lifestyle pro

Nella maggior parte dei libri sul software Microsoft Excel, riguardano una determinata versione, eccezione è il nuovo libro di Alessandra Salvaggio, dal titolo problemi e soluzioni con Excel http://www.fag.it/scheda.aspx?ID=29648 , edito della casa editrice FAG http://www.fag.it/ i quali contenuti si possono applicare alla versione di Microsoft Excel XP, 2003 e 2007.


Il software Microsoft Excel, offre numerose potenzialità, che in molti casi non sono utilizzate, proprio perchè non si conoscono. Il libro, scritto in maniera chiara e con numerose immagini, illustra alcune delle funzionalità e formule, offerte da questo programma, per un buon uso in ambito lavorativo. Esempi, che si avvicinano al mondo lavorativo semplificando le varie attività.


Alessandra Salvaggio è autrice di numerosi libri sul software del pacchetto Microsoft Office, sia per il loro utilizzo e sia riguardante la parte programmazione.p>


Il libro è composto da ben 19 capitoli, non è incluso nessun cd-rom o dvd, gli esempi utilizzati in questo libro, si possono scaricare dal seguente sito http://www.microsoft.com/italy/pmi/excel-problemi-soluzioni/default.mspx <


Vediamo in dettaglio i vari capitoli di questo libro.


Il primo capitolo, anche se pur molto breve, illustra come rilevare da un elenco il valore massimo e minimo, l'utilizzo di formule cerca.vert, min, max, conta.se, somma.se, illustrate in questo capitolo, permetteranno di estrapolare i dati che corrispondono a certi criteri.p>


Il secondo capitolo, continua la parte riguardante gli elenchi, in questo capitolo, il lettore viene guidato, passo per passo per confrontare due elenchi. Diverse le formule illustrate in questo capitolo, quali concatena, confronta, val.errore, e tante altre. Nel capitolo si trovano numerose immagini, in questo modo, il lettore che ha poca dimestichezza con il software Excel, riuscirà a seguire con semplicità tale argomento.


Con il terzo capitolo, si conclude la serie riguardante la gestione degli elenchi. In questo capitolo, sono presi in esame, varie tecniche di come filtrare, ordinare e trovare determinati dati in un elenco dati. Nel capitolo, sono prese in esame le formule, trova, se, Maiusc, ed altre ancora.p>


Anche in questo capitolo si trovano diverse immagini.


Nel quarto capitolo, si passa ad un argomento molto interessante, per coloro che utilizzano una grande mole di dati. Nel capitolo, l'autore del libro, guiderà il lettore, alla creazione di un elenco a discesa, da cui sarà possibile scegliere il valore da inserire in una cella. L'elenco sarà caricato dinamicamente, in modo che può essere modificato in modo molto semplice ed agevolato. Nel capitolo sono utilizzate le formule scarto, conta.valori, ed altre ancora. Il capitolo a differenza di quelli precedenti è molto breve.


Il capitolo quinto è rivolto ad un tema molto usato e complesso, la gestione delle date. Microsoft Excel, dispone di variate formule, oltre a quelle che si possono creare, in questo capitolo, sono utilizzate le formule, giorno.settimana, Data, anno, mese, giorno, oggi ed altre ancora.


Il capitolo successivo, il sesto, si passa alla gestione delle ore, nel capitolo, sono illustrate alcune tecniche per lavorare con le ore. Diverse le formule utilizzate, tra cui ricordiamo la funzione resto, conta.numeri, somma.se, conta.se. Un valido capitolo, che fornisce al lettore una base molto importante per lavorare sulle ore.


Il capitolo settimo, riguarda l'utilizzo di Microsoft Excel, con le fatture, quante volte si sono fatte ricerche su internet o si è provato a creare una fattura con Microsoft Excel? Tantissime, anzi forse ogni azienda utilizza proprio Microsoft Excel, per questo tipo di gestione contabile.


Nel capitolo, viene illustrato passo per passo, e tramite le numerose immagini, la creazione di una fattura, un capitolo molto ampio.p>


A differenza dei precedenti capitoli, il capitolo ottavo, non illustra nessuna formula offerta dal pacchetto Microsoft Excel, ma permette di creare dei modelli di pagina, da utilizzare secondo le proprie necessità. I modelli, permettono di utilizzare un determinato schema di foglio di Excel, che possiamo riutilizzare quando ne risulta necessario.


Il capitolo farà comprendere al lettore la creazione e l'importanza dei modelli.


Con il capitolo nono si passa alla possibilità di importare i dati da un file di testo e Microsoft Word. Microsoft Excel, offre diverse funzionalità, una tra queste è proprio quella di importare i dati esterni, da altri file. Inoltre nel capitolo sono illustrate le formule sostituisci, destra e lunghezza.


Anche il capitolo successivo, illustra modi di come importare i dati da altre fonti, in questo capitolo, viene illustrato come importarli da un sito web, e convertire le valute, il capitolo in questione è molto breve.


Gli usi che si possono fare con Microsoft Excel, sono davvero numerosi, il capitolo 11, illustra al lettore la creazione di uno scadenziario per la gestione delle fatture scadute. Nel capitolo vedremo alcune formule usate in precedenza e qualcuna nuova, come la formula somma.più.se, matr.somma.prodotto.


Nel capitolo 12, viene illustrata la creazione di classifiche, come creare delle classifiche sempre aggiornate. Viene inoltre introdotta una nuova formula, quale rango, la possibilità di bloccare i riquadri, il capitolo è molto breve.


La gestione dei dati, ossia il suo ordinamento è molto importante, perchè permette di avere visibilità in modo chiaro e veloce delle informazioni. Nel capitolo 13, è illustrato il raggruppamento dei dati, per data, oltre alle formule citate nei precedenti capitoli, sono prese in esame altre formule, quali arrotonda.Per.ECC e Somma.Se.


Con il capitolo 14, vedremo la funzionalità subtotale e la formula subtotale, in questo modo, possiamo applicare ad un certo elenco dei dati, alcuni subtotali.


Effettuare la media dei dati può tornare utile, in diversi contesti, nel capitolo 15, viene affrontato questo tema, illustrando tramite la formula media.se, come effettuare delle medie condizionali, o tramite la formula media. Altre tecniche di dati statistici, come la media escludendo determinati valori, si possono ottenere con la formula media.piu.se, interessante tecniche per effettuare delle medie.


Con il sedicesimo capitolo, si ritorna agli elenchi, in questo capitolo, viene illustrato la ricerca dei dati negli elenchi. Oltre alle formule citate in precedenza, viene presa in esame la formula indice, cella e indiretto, diverse tecniche per effettuare ricerche mirate di dati.


Il terzultimo capitolo (17) illustra interessante tecniche, poco utilizzate ma molto efficaci, come la creazione degli indici nel foglio, i quali sono collegati ad altri fogli. Infatti la formula colleg.ipertestuale, permette di creare all'interno del proprio foglio, dei collegamenti verso altri fogli di lavoro.


Il penultimo capitolo (18) illustra una formula, molto importante, soprattutto per coloro che lavoro in ambito amministrativo, nella finanza. Il capitolo è dedicato all'arrotondamento, prendendo in esame le formule, arrotonda, arrotonda.eccesso, arrotonda.difetto


Il capitolo (19) conclusivo di questo manuale illustra alcune funzionalità avanzate, che si possono ottenere con i due prodotti del pacchetto Microsoft Office. Vedremo, come importare in un documento di Microsoft Word, il foglio di lavoro appena creato, come rendere un modello il documento con le modifiche apportante. Continuando per il capitolo, è illustrata la stampa unione e di come inserire automatica la data di stampa.


Di seguito si riportano i capitoli del libro.


Prefazione


1) Massimo e Minimo


2) Confrontare Elenchi


3) Lavorare con gli elenchi di testo.


4) Un intervallo dinamico.


5) Gestione dei contratti in scadenza: Lavoare con le date


6) Lavorare con le ore


7) La fattura


8) I modelli di pagina


9) Importare dati


10) Convertire le valute: Importare dal web.


11) Uno scadenziario: Somme sulla base di condizioni in più colonne


12) Creare una classifica.


13) Raggruppare per data.


14) Subtotali


15) La media con condizione e le funzioni in forma matrice


16) Ricerca in elenchi complessi


17) Creare un indice dei fogli


18) Arrotondamento


19) Inserire un foglio Excel in un documento Word

Conclusioni:

Un libro molto interessante, che guida il lettore nell'utilizzare le varie formule, messe a disposizione dal pacchetto Microsoft Excel. Gli esempi pratici, fanno si che il libro sia un punto di riferimento, perchè avvicina molto il lettore alla pratica, importanti scenari, che si verificano ogni giorno in tutte le aziende che utilizzano questo software.



Excel convertire importi in numeri

Dal seguente sito http://blogema.altervista.org/ConvertiLettere10.zip potete scaricare un file zippato, al cui interno, trovare due file Excel.
Questi file excel, convertono gli importi in lettere (il tutto tramite codice VBA) .
L'esempio di file chiamato ConvertiLettere10.xls permette di convertire gli importi in lettere compressi i centesimi.
Mentre l'esempio ConvertiLettere10CentesimiNumerici.xls permette di convertire gli importi in lettere, escludendo i centesimi, riportandoli quest'ultimi in formato numerico.
Potete contattarmi per qualsiasi informazione o richiesta ;-)

domenica 22 febbraio 2009

Compact Framework disabilitare il suggerimento nelle textbox

Riporto l'articolo scritto per il sito iprogrammatori http://www.iprogrammatori.it/articoli/programmazione/art_compact-framework-disabilitare-il-sugger_609.aspx riguardante lo sviluppo smart device.




Tramite le api di Windows Mobile, vedremo come applicare ad una casella di testo, la possibilità di evitare il suggerimento, che compare quando si digita del testo in tale casella.


Inseriamo in una form, due caselle di testo con le relative label, di quest’ultima, in una applichiamo alla proprietà text, il seguente testo “Senza Suggerimento” mentre nell’altra sempre per la proprietà text il valore “Suggerimento”, il tutto come mostrato in figura 1.



Figura 1


Stesura del codice.


Inseriamo lo spazio dei nome, per la gestione delle api, di seguito si riporta il frammento di codice di tale dichiarazione.


VB.Net

Imports System.Runtime.InteropServices

C#

using System.Runtime.InteropServices;


Ora inseriamo la dichiarazione di api, in particolare utilizzeremo le funzioni di api, GetCapture della dll coredll, SHSetInputContenxt della dll aygshell ed infine la funzione SHSetInputContext .


Di seguito si riporta il frammento di codice delle suddette operazioni oltre alla creazione di un enum per disabilitare il suggerimento.



VB.Net

'dichiarazione di api

"coredll")> _

Private Shared Function GetCapture() As IntPtr

End Function


"aygshell")> _

Private Shared Function SHSetInputContext(ByVal hwnd As IntPtr, ByVal dwFeature As SHIC_FEATURE, ByVal lpValue As String) As Integer

End Function

"aygshell")> _

Private Shared Function SHSetInputContext(ByVal hwnd As IntPtr, ByVal dwFeature As SHIC_FEATURE, ByRef lpValue As Integer) As Integer

End Function



_

Enum SHIC_FEATURE

SHIC_FEATURE_RESTOREDEFAULT = 0

SHIC_FEATURE_AUTOCORRECT = 1

SHIC_FEATURE_AUTOSUGGEST = 2

SHIC_FEATURE_HAVETRAILER = 3

SHIC_FEATURE_CLASS = 4

End Enum

C#

//dichiarazione di api

[DllImport("coredll")]

extern static IntPtr GetCapture();


[DllImport("aygshell")]

extern static int SHSetInputContext(IntPtr hwnd, SHIC_FEATURE dwFeature, string lpValue);

[DllImport("aygshell")]

extern static int SHSetInputContext(IntPtr hwnd, SHIC_FEATURE dwFeature, ref int lpValue);


[Flags]

enum SHIC_FEATURE

{

SHIC_FEATURE_RESTOREDEFAULT = 0,

SHIC_FEATURE_AUTOCORRECT = 0x00000001,

SHIC_FEATURE_AUTOSUGGEST = 0x00000002,

SHIC_FEATURE_HAVETRAILER = 0x00000003,

SHIC_FEATURE_CLASS = 0x00000004

}


Ora nell’evento load della form, utilizziamo le api, per disabilitare il suggerimento alla prima casella di testo, mentre nella seconda, non impostiamo nulla.


Di seguito si riporta il frammento di codice situato nell’evento load della form, per disabilitare il suggerimento della prima casella di testo.




VB.Net

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

txtnonSuggerimento.Capture = True

Dim nosuggerimento As IntPtr = GetCapture()

txtnonSuggerimento.Capture = False

Dim ret As Integer

Dim FALSO As Integer = 0

ret = SHSetInputContext(nosuggerimento, SHIC_FEATURE.SHIC_FEATURE_AUTOSUGGEST, FALSO)


End Sub

C#

private void Form1_Load(object sender, EventArgs e)

{

txtnonSuggerimento.Capture = true;

IntPtr nosuggerimento = GetCapture();

txtnonSuggerimento.Capture = false;

int ret;

int FALSO = 0;

ret = SHSetInputContext(nosuggerimento, SHIC_FEATURE.SHIC_FEATURE_AUTOSUGGEST, ref FALSO);


}




Conclusioni


Ora che abbiamo scritto il nostro codice, non ci resta che testare l’applicativo, avviamolo, e digitiamo, tramite la tastiera virtuale, un testo in cui il sistema ci suggerisce a video la parola delle prime lettere che stiamo digitando.


Nella prima casella il suggerimento sarà disabilitato, quindi non vedremmo nessuna parola, mentre nella seconda casella verranno visualizzati i suggerimenti.


Tramite la parola download potete scaricare il file utilizzato in questo articolo.

Download

sabato 21 febbraio 2009

Compact Framework 3.5 comprimere e decomprimere i file

Riporto l'articolo pubblicato per il sito iprogrammatori http://www.iprogrammatori.it/articoli/programmazione/art_compact-framework-35-comprimere-e-decomp_610.aspx



Con l’uscita della nuova versione del Compact Framework 3.5 sono state introdotte nuove classi. Il namespace System.io.Compression, contiene al suo interno diverse classi per la gestione dei file, in particolare per comprimere e decomprime file e cartelle.

In questo articolo vedremo come comprimere e decomprimere un file.


Creazione del progetto


Dopo aver creato un nuovo progetto smart device ,in Visual Studio 2008, aggiungiamo nella form, quattro caselle di testo, con altrettanti label per i vari titoli quattro pulsanti, il tutto come mostrato in figura 1.






Figura 1





Come si può vedere dalla figura 1, i controlli situati nella parte superiore, avranno il compito di comprimere i file, selezionato nel proprio device, mentre quelli posti al di sotto del pulsante, con la proprietà text impostata con il testo “Crea File zip – comprimi” permetto di selezionare il file zippato in precedenza e decomprimerlo.


Stesura di codice


Una volta creata la nostra finestra di esempio, passiamo in visualizzazione codice,


Per gestire i file, occorre utilizzare lo spazio dei nomi system.io, mentre per la gestione delle classi per comprimere e decomprime i file, occorre utilizzare il namespace system.io.compression.



Di seguito si riporta tali dichiarazioni.




VB.Net

Imports System.IO

Imports System.IO.Compression


C#

using System.IO;

using System.IO.Compression;


una volta aggiunti iI namespace si creano due funzioni per comprimere e decomprimere I file


La funzione per comprimere i file, accetta due argomenti, il primo il percorso ed il nome del file da comprimere, mentre il secondo argomento, il percorso e nome del file zippato, quello che verrà generato.


Tramite le classi FileStream e GZipStream, possiamo gestire i file e la modalità di compressione.


Di seguito si riporta i frammenti di codice delle suddette operazioni.






VB.Net

Public Sub Comprimi(ByVal origine As String, ByVal Destinazione As String)


'Verifico che il file esista

If File.Exists(origine) = False Then

MessageBox.Show("File da comprimere inestisistente")

Exit Sub

End If


' creazione dello stream del file da zippatre

Dim buffer As Byte() = Nothing

Dim StreamOrigine As FileStream = Nothing

Dim StreamDestinazione As FileStream = Nothing

Dim FileZip As GZipStream = Nothing


Try

' Leggo lo stream dati del file

StreamOrigine = New FileStream(origine, FileMode.Open, FileAccess.Read, FileShare.Read)


' recupero i byte del file

buffer = New Byte(StreamOrigine.Length) {}

Dim dimensione As Integer = StreamOrigine.Read(buffer, 0, buffer.Length)


' Apro un stream per il file di scrittura (zip)

StreamDestinazione = New FileStream(Destinazione, FileMode.OpenOrCreate, FileAccess.Write)


'imposto il file compresso

FileZip = New GZipStream(StreamDestinazione, CompressionMode.Compress, True)


'Scrivo nel file compresso il buffer

FileZip.Write(buffer, 0, buffer.Length)

MessageBox.Show("Operazione terminata")

Catch ex As ApplicationException

MessageBox.Show("Errore: " & ex.Message, "Funzione: Comprimi", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1)

Finally

'libero la memoria

If Not (StreamOrigine Is Nothing) Then

StreamOrigine.Close()

End If

If Not (FileZip Is Nothing) Then

FileZip.Close()

End If

If Not (StreamDestinazione Is Nothing) Then

StreamDestinazione.Close()

End If

End Try


End Sub


C#


void Comprimi(string origine, string Destinazione)

{

//Verifico che il file esista

if (File.Exists(origine) == false)

{

MessageBox.Show("File da comprimere inestisistente");

return;


}


// creazione dello stream del file da zippatre

Byte[] buffer = null;

FileStream StreamOrigine = null;

FileStream StreamDestinazione = null;

GZipStream FileZip = null;

try

{ // Leggo lo stream dati del file

StreamOrigine = new FileStream(origine, FileMode.Open, FileAccess.Read, FileShare.Read);


// recupero i byte del file

buffer = new Byte[StreamOrigine.Length];

Int32 dimensione = StreamOrigine.Read(buffer, 0, buffer.Length);


// Apro un stream per il file di scrittura (zip)

StreamDestinazione = new FileStream(Destinazione, FileMode.OpenOrCreate, FileAccess.Write);


//imposto il file compresso

FileZip = new GZipStream(StreamDestinazione, CompressionMode.Compress, true);


//Scrivo nel file compresso il buffer

FileZip.Write(buffer, 0, buffer.Length);

MessageBox.Show("Operazione terminata");


}

catch (Exception ex)

{


MessageBox.Show("Errore: " + ex.Message, "Funzione: Comprimi", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);

}

finally

{


//libero la memoria

if (StreamOrigine != null)

StreamOrigine.Close();


if (FileZip != null)

FileZip.Close();


if (StreamDestinazione != null)

StreamDestinazione.Close();


}




}







La funzione decomprimi, accetta due argomenti di tipo stringa, il primo il percorso ed il nome del file zippato, mentre il secondo argomento, il percorso ed il nome del file che sarà decompresso


L’utilizzo della classe filestream, è utile per gestire il flusso dei dati, mentre la classe GZipStream, lavora sulla compressione dei file.


Qui di seguito si riporta il frammento di codice della funzione decomprimi






VB.Net

Public Sub Decomprimi(ByVal Origine As String, ByVal Destinazione As String)


'Verifico che i file esista

If File.Exists(Origine) = False Then

MessageBox.Show("File da decomprimere inestisistente")

Exit Sub

End If


'Creo lo strem dei file

Dim StreamOrigine As FileStream = Nothing

Dim StreamDestinazione As FileStream = Nothing

Dim FileDecomprimere As GZipStream = Nothing

Dim Dati As Byte() = Nothing


Try

'leggo il file da decomprimere

StreamOrigine = New FileStream(Origine, FileMode.Open)


'Creo l'oggetto che mi decomprime il file

FileDecomprimere = New GZipStream(StreamOrigine, CompressionMode.Decompress, True)


'Imposto le dimensioni del byte

Dati = New Byte(4) {}

Dim posizione As Integer = CType(StreamOrigine.Length, Integer) - 4

StreamOrigine.Position = posizione

StreamOrigine.Read(Dati, 0, 4)

StreamOrigine.Position = 0

Dim dimensione As Integer = BitConverter.ToInt32(Dati, 0)


Dim buffer(dimensione + 100) As Byte

Dim offset As Integer = 0

Dim total As Integer = 0


'leggo il file compresso

While True

Dim bytesRead As Integer = FileDecomprimere.Read(buffer, offset, 100)

If bytesRead = 0 Then

Exit While

End If

offset += bytesRead

total += bytesRead

End While


'scrivo il nuovo file

StreamDestinazione = New FileStream(Destinazione, FileMode.Create)

StreamDestinazione.Write(buffer, 0, total)


' libero il buffer

StreamDestinazione.Flush()

MessageBox.Show("File decompresso")

Catch ex As Exception

MessageBox.Show("Errore " & ex.Message, "Funzione Decomprimi", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1)


Finally

'Libero i vari oggetti utilizzati

If Not (StreamOrigine Is Nothing) Then

StreamOrigine.Close()

End If

If Not (FileDecomprimere Is Nothing) Then

FileDecomprimere.Close()

End If

If Not (StreamDestinazione Is Nothing) Then

StreamDestinazione.Close()

End If

End Try


End Sub


C#

void Decomprimi(string Origine, string Destinazione)

{


//Verifico che i file esista

if (File.Exists(Origine) == false)

{

MessageBox.Show("File da decomprimere inestisistente");

return;


}


//Creo lo strem dei file

FileStream StreamOrigine = null;

FileStream StreamDestinazione = null;

GZipStream FileDecomprimere = null;

Byte[] Dati = null;


try

{

//leggo il file da decomprimere

StreamOrigine = new FileStream(Origine, FileMode.Open);


//Creo l'oggetto che mi decomprime il file

FileDecomprimere = new GZipStream(StreamOrigine, CompressionMode.Decompress, true);


//Imposto le dimensioni del byte

Dati = new Byte[4] ;

Int32 posizione = Convert.ToInt32(StreamOrigine.Length) - 4;

StreamOrigine.Position = posizione;

StreamOrigine.Read(Dati, 0, 4);

StreamOrigine.Position = 0;

Int32 dimensione = BitConverter.ToInt32(Dati, 0);


byte[] buffer = new byte[dimensione + 100];

Int32 offset = 0;

Int32 total = 0;


//leggo il file compresso

while (true)

{

Int32 bytesRead = FileDecomprimere.Read(buffer, offset, 100);

if (bytesRead == 0)

break;

offset += bytesRead;

total += bytesRead;


}

//scrivo il nuovo file

StreamDestinazione = new FileStream(Destinazione, FileMode.Create);

StreamDestinazione.Write(buffer, 0, total);


// libero il buffer

StreamDestinazione.Flush();

MessageBox.Show("File decompresso");

}

catch (Exception ex)

{

MessageBox.Show("Errore " + ex.Message, "Funzione Decomprimi", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);

}


finally

{

//Libero i vari oggetti utilizzati

if (StreamOrigine != null)

StreamOrigine.Close();


if (FileDecomprimere != null)

FileDecomprimere.Close();

if (StreamDestinazione != null)

StreamDestinazione.Close();


}







}




Ora dobbiamo gestire i pulsanti che si trovano vicino alle caselle di testo, questi pulsanti, avranno il compito di aprire una finestra di dialogo per la selezione dei file e cartelle.


Per il pulsante della casella di testo, con il titolo impostato a file da comprimere, dobbiamo aggiungere il seguente frammento di codice, nell’evento click di tale pulsante.


Qui di seguito è riportato il codice.




VB.Net

Private Sub btnCercaFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCercaFile.Click

Dim dlgApri As New OpenFileDialog()

dlgApri.Filter = "*.**.*"

If dlgApri.ShowDialog = Windows.Forms.DialogResult.OK Then

txtFileDaComprimere.Text = dlgApri.FileName

End If

End Sub


C#

private void btnCercaFile_Click(object sender, EventArgs e)

{

OpenFileDialog dlgApri = new OpenFileDialog();

dlgApri.Filter = "*.**.*";

if (dlgApri.ShowDialog() == DialogResult.OK)

txtFileDaComprimere.Text = dlgApri.FileName;


}






Mentre per il pulsante posto accanto alla casella di testo, con il titolo “Nome del file zip” nell’evento click inserire il seguente frammento di codice.



VB.Net

Private Sub btnCercaFileZipDaComprimere_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCercaFileZipDaComprimere.Click

Dim dlgSalva As New SaveFileDialog()

dlgSalva.Filter = "File Zip*.zip"

If dlgSalva.ShowDialog() = Windows.Forms.DialogResult.OK Then

Dim fleinfo As New FileInfo(dlgSalva.FileName)

txtNomeFileZip.Text = dlgSalva.FileName

txtNomeFileZip.Text = txtNomeFileZip.Text.Replace(fleinfo.Extension, ".zip")

End If


C#

private void btnCercaFileZipDaComprimere_Click(object sender, EventArgs e)

{

SaveFileDialog dlgSalva = new SaveFileDialog();

dlgSalva.Filter = "File Zip*.zip";

if (dlgSalva.ShowDialog() == DialogResult.OK)

{

FileInfo fleinfo = new FileInfo(dlgSalva.FileName);

txtNomeFileZip.Text = dlgSalva.FileName;

txtNomeFileZip.Text = txtNomeFileZip.Text.Replace(fleinfo.Extension, ".zip");

}

}




A questo punto la parte per comprimere i file è terminata, c’è rimasta la parte per decomprimere il file compresso, o meglio, impostare gli eventi click dei pulsanti per la ricerca dei file .zip e per la la sezione del percorso e nome del file, che sarà compresso.


Per l’evento click del pulsante posto sulla destra della casella di testo, con la scritta “file compresso – da decomprimere”, dobbiamo aprire una finestra di dialogo per la selezione del file compresso, utilizzando la classe openfiledialog.


Qui di seguito si riporta tale frammento di codice.




VB.Net

Private Sub BtnFileDaDecomprimere_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnFileDaDecomprimere.Click

Dim dlgApri As New OpenFileDialog()

dlgApri.Filter = "*.zip**.zip*"

If dlgApri.ShowDialog = Windows.Forms.DialogResult.OK Then txtFileCompresso.Text = dlgApri.FileName


End Sub


C#

private void BtnFileDaDecomprimere_Click(object sender, EventArgs e)

{

OpenFileDialog dlgApri = new OpenFileDialog();

dlgApri.Filter = "*.zip**.zip*";

if (dlgApri.ShowDialog() == DialogResult.OK)

txtFileCompresso.Text = dlgApri.FileName;


}






Mentre per l’evento click del pulsante che si trova al lato della casella di testo con il titolo impostato nel seguente modo “Percorso e cartelle dove decomprimere” utilizzeremo la classe savefiledialog, il quale apre una finestra di dialogo per il salvataggio del file.


Qui di seguito si riporta il frammento di codice di tali operazioni.





VB.Net

Private Sub btnPercorsoEcartellaDecompresso_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPercorsoEcartellaDecompresso.Click

Dim dlgApri As New SaveFileDialog()

dlgApri.Filter = "*.**.*"

If dlgApri.ShowDialog = Windows.Forms.DialogResult.OK Then txtFileDecompresso.Text = dlgApri.FileName



End Sub


C#

private void btnPercorsoEcartellaDecompresso_Click(object sender, EventArgs e)

{

SaveFileDialog dlgApri = new SaveFileDialog();

dlgApri.Filter = "*.**.*";

if (dlgApri.ShowDialog() == DialogResult.OK)

txtFileDecompresso.Text = dlgApri.FileName;



}








Ora per l’evento del pulsante, con la scritta “Crea file zip – Comprimi” inseriamo il codice per richiamare la funzione per comprimere i file.


Qui di seguito si riporta il frammento di codice delle suddette operazioni.




VB.Net

Private Sub BtnComprimi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnComprimi.Click

If txtNomeFileZip.Text.Trim() = "" OrElse txtFileDaComprimere.Text.Trim() = "" Then Return

Comprimi(txtFileDaComprimere.Text, txtNomeFileZip.Text)

End Sub


C#

private void BtnComprimi_Click(object sender, EventArgs e)

{

if (txtNomeFileZip.Text.Trim() == "" txtFileDaComprimere.Text.Trim() == "")

return;

Comprimi(txtFileDaComprimere.Text, txtNomeFileZip.Text);

}






Infine, occorre richiamare dal pulsante decomprimi file zip, la funzione per decomprimere I file.


Qui di seguito si riporta tale codice:




VB.Net

Private Sub BtnDecomprimi_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

If txtFileDecompresso.Text.Trim() = "" OrElse txtFileCompresso.Text.Trim() = "" Then Return


Decomprimi(txtFileCompresso.Text, txtFileDecompresso.Text)

End Sub


C#

private void BtnDecomprimi_Click(object sender, EventArgs e)

{

if (txtFileDecompresso.Text.Trim() == "" txtFileCompresso.Text.Trim() == "")

return;

Decomprimi(txtFileCompresso.Text, txtFileDecompresso.Text);

}





Conclusioni


In questo articolo, è stata illustrata una tecnica di come comprimere e decomprimere i file, naturalmente l’articolo ha voluto fornire le basi al lettore per queste nuove classi per la gestione dei file. Il lettore, potrà ampliare nonché sviluppare un applicativo con funzionalità avanzate, per questo nuovo modo di lavorare sui file in ambiente mobile.


Tramite la parola download potete scaricare il file di esempio utilizzato in questo articolo.


Download