Archivi giornalieri: 7 febbraio 2008

#18 Conversione da numero decimale a binario

Per convertire un numero intero in numero binario possiamo utilizzare la classe BitArray che converte un array di numeri in un array di bit. Per rappresentare la sequenza di bit, poi, utilizziamo una stringa e, per separare visivamente ogni byte, aggiungiamo anche uno spazio separatore:

Dim numero As Integer = 32767 
Dim numDecimale() As Integer = {numero} 
Dim numBinario As New BitArray(numDecimale) 
Dim str As String = "" 
Dim contaBit As Integer = 0 
For i As Integer = (numBinario.Count - 1) To 0 Step -1 
    If contaBit = 8 Then 
        str &= " " 
        contaBit = 0 
    End If 
    If numBinario.Item(i) = False Then 
        str &= "0" 
    Else 
        str &= "1" 
    End If 
    contaBit += 1 
Next 
MessageBox.Show(str)

Con il numero intero 32767 otteniamo la stringa seguente:

00000000 00000000 01111111 11111111

[VB.NET e LINQ to SQL] Interrogare DBMS multipli nella stessa query

Spesso si verifica la necessità di interrogare dei dati provenienti da fonti eterogenee, per esempio alcuni presenti in un database di Microsoft Access e altri in un database di SQL Server.

L’articolo “LINQtoSQL: Query multiple databases in one LINQ expression and more…” pubblicato su CodeProject permette di comprendere le tecniche che stanno alla base dell’estrazione di dati provenienti da fonti diverse. Corredato da esempio in VB.NET.

[C#] TextBox personalizzata con evento TextChanged ritardato

Segnalo l’articolo pubblicato su CodeProject intitolato “Custom TextBox that Delays the TextChanged Event” che è molto interessante, soprattutto per la sua utilità.

Il problema consiste nel fatto che l’evento TextChanged viene scatenato ogni volta che digitiamo un nuovo carattere nella TextBox, anche se l’inserimento del dato non è completato. Per esempio, in una pagina ASP.NET, possiamo avere una TextBox che utilizziamo per inserire la pagina dei dati a cui vogliamo accedere. Se la pagina è 100, prima inseriamo “1” (e viene scatenato l’evento TextChanged e quindi eseguita la query al database), poi digitiamo lo “0” di “10” (e viene ulteriormente scatenato l’evento con una seconda query al database) e infine digitiamo lo zero finale per ottenere “100” (scatenando per una terza volta evento e query). Questo non è desiderabile sia per l’effetto visuale pessimo, sia per l’inefficienza e le prestazioni dell’applicazione.

Ecco quindi che l’autore ha creato un controllo custom derivato da TextBox per ritardare l’evento di un certo numero di millisecondi.

L’articolo, dotato di sorgente e di esempio in C#, è piuttosto semplice da seguire e non è particolarmente difficile da convertire in VB.NET.