Visual Basic .Net
Con la versione 2.0 del .Net Framework è stata aggiunta al namespace System.Configuration, la classe RegexStringValidator che permette di eseguire rapidatamente la validazione di stringhe utilizzando espressioni regolari. Supponendo di avere un'espressione del tipo ^\d+,\d{2}$, che permette di verificare se una stringa rappresenta un valore numerico con due cifre dopo la virgola, per validare una stringa, possiamo scrivere una funzione molto semplice: 1 Private Function IsValid(ByVal value As String) As Boolean
2
3 Dim regexValidator As New RegexStringValidator("^\d+,\d{2}$")
4
5 ...
Se abbiamo bisogno di una soluzione veloce per visualizzare l'avanzamento di un controllo ProgressBar durante il caricamento di un DataTable, possiamo gestire l'evento RowChanded in questo modo: 1 Private Sub CustomRowChanged(ByVal sender As Object, ByVal e As DataRowChangeEventArgs)
2
3 If (e.Action = DataRowAction.Commit) Then
4 'Avanziamo il valore della progress bar
5 ProgressBar1.Value += 1
6 ...
Supponiamo di avere una semplice applicazione Windows Form il cui unico (e stupido) compito è quello di eseguire una divisione, qualcosa del tipo
Se non eseguiamo nessuna validazione sui campi, potrebbe accadere che vengano eseguiti calcoli sbagliati (ad esempio una divisione per zero) e di conseguenza che vengano sollevate le corrispondenti eccezioni. Per catturarle, possiamo utilizzare dei blocchi Try...Catch...Finally oppure gestire l'evento Application.ThreadException. Così facendo, oltre alla possibilità di memorizzare un log delle eccezioni a livello di applicazione o eseguire del codice di pulizia, possiamo visualizzare una Windows Form User-Friendly, senza interrompere bruscamente l'applicazione. Per registrare il gestore dell'evento ThreadException, possiamo...
Post nato da una discussione su forum. Se utilizziamo un componente Backgroundworker per l'esecuzione di codice in
background, bisogna stare attenti alle operazioni "cross-thread", ad esempio quando il codice interagisce con i controlli
di una Windows Form. Se abbiamo ad esempio un controllo ListView, per popolarlo senza provocare eccezioni durante
l'esecuzione dell'applicazione, possiamo costruire ed utilizzare un delegate come nel codice seguente:
Private Delegate Sub ScriviSuListViewDelegate()Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, _ ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork If (Not (ListView1.InvokeRequired)) Then For i As Integer = 0 To 20 ListView1.Items.Add(String.Format("Item #{0}",...
Implementando l'interfaccia ISerializable nelle nostre classi, possiamo personalizzare il processo di serializzazione/deserializzazone dei tipi.
Ad esempio, un istanza di oggetto potrebbe contenere dei dati (ad esempio una password) che non vogliamo che risulti visibile
tramite editor di testo (come notepad) dopo aver serializzato l'oggetto come file su disco.
Nel codice di esempio è presente una classe Persona (onnipresente :-) ), che implementa il metodo GetObjectData (per la fase di serializzazione) con il codice necessario a cifrare il valore del campo "password", ed il costruttore con opportuna firma (per la fase...
Spesso mi capita di leggere nei forum domande relative all'utilizzo dei parametri nei report locali. Sperando che il progetto possa essere di aiuto, un esempio concreto per la visualizzazione di stringhe ed immagini.
Codice sorgente progetto
Se volessimo, ad esempio, cambiare il carattere di separatore decimale in una nostra applicazione, è sufficiente utilizzare
la classe System.Globalization.CultureInfo. Esempio:
Dim culture As New System.Globalization.CultureInfo("it-IT")Dim numberFormat As New System.Globalization.NumberFormatInfo()'Visualizza il separatore decimale corrente MessageBox.Show(numberFormat.NumberDecimalSeparator)'Imposta la chiocciola come separatore decimale numberFormat.NumberDecimalSeparator = "@" culture.NumberFormat = numberFormat'Visualizza il separatore decimale corrente MessageBox.Show(numberFormat.NumberDecimalSeparator)'Imposta l'oggetto Culture System.Threading.Thread.CurrentThread.CurrentCulture = cultureDim valore As Double = 0 valore = 10 / 30 'Visualiza 0@33333333 MessageBox.Show(valore)
Technorati Tag: CultureInfo
Supponiamo di avere un file (html) contenente una lista non ordinata del tipo
<ul>
<li id="Eventi"><a href="#"><span>Eventi</span></a></li>
<li id="Notizie"><a href="#"><span>Notizie</span></a></li>
<li id="NewsLetter"><a href="#"><span>NewsLetter</span></a>
<ul>
<li id="Sottomenu"><a href="#"><span>Sottomenu</span></a></li>
</ul>
</li>
<li id="Agenzie"><a href="#"><span>Agenzie</span></a></li>
</ul>
e di voler modificare (a run-time) il contenuto di uno degli elementi "<li>" . Supponiamo di voler trovare l'elemento con "id" uguale a "Eventi",
di voler aggiungere un nuovo attributo (class) con valore "Selected" e di voler eliminare il nodo <a href....></a> e lasciare il nodo
<span>Evento</span>.E' possibile fare quanto detto in modo molto semplice utilizzando l'oggetto COM Microsoft XML (Versione 3.0 o superiore)
e scrivendo il seguente codice:
Dim doc As New MSXML2.DOMDocument
...
Girovagando tra i vari siti di programmazione ed affini ho trovato questi due link:
1) Convertire un file PDF in semplice testo (in tre righe!) in .Net
Converting PDF to Text in C#
2) Utilizzare librerie java in .Net con IKVM.NET
Uses for IKVM.NET
Piccolo esempio (nato da una discussione su di un forum) di come utilizzare una risorsa incorporata (file XML) per popolare un oggetto AutoCompleteStringCollection per usufruire della funzione di completamento automatico di un controllo TextBox.
AutoCompleteSourceEmbedded.zip
Full Visual Basic .Net Archive