Tips&Tricks | I trucchi del mestiere |
![]() |
Recuperare un file XML dal WEB |
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, xmldom, XMLDoc, msxmldom, ComCtrls, StdCtrls, ExtCtrls, XMLIntf; type TForm1 = class(TForm) lv: TListView; XMLDoc: TXMLDocument; pnlTop: TPanel; btnRefresh: TButton; procedure btnRefreshClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses ExtActns; function DownloadURLFile(const URL_XML, File_Locale : TFileName) : boolean; begin Result:=True; with TDownLoadURL.Create(nil) do try URL:=URL_XML; Filename:=File_Locale; try ExecuteTarget(nil); except Result:=False; end; finally Free; end; end; procedure TForm1.btnRefreshClick(Sender: TObject); const URL_XML = 'http://localhost/index.xml'; var File_Locale : TFileName; StartItemNode : IXMLNode; ANode : IXMLNode; STitle, sDesc : widestring; begin File_Locale := IncludeTrailingPathDelimiter(ExtractFilePath(Application.ExeName)) + 'temp.adpheadlines.xml'; Screen.Cursor:=crHourglass; try if not DownloadURLFile(URL_XML, File_Locale) then begin Screen.Cursor:=crDefault; Raise Exception.CreateFmt('Non Φ stato possibile connettersi al Web',[]); Exit; end; if not FileExists(File_Locale) then begin Screen.Cursor:=crDefault; raise exception.Create('Errore!'); Exit; end; lv.Clear; XMLDoc.FileName := File_Locale; XMLDoc.Active:=True; StartItemNode:=XMLDoc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('item'); ANode := StartItemNode; repeat STitle := ANode.ChildNodes['titolo'].Text; sDesc := ANode.ChildNodes['descrizione'].Text; with LV.Items.Add do begin Caption := STitle; SubItems.Add(sDesc) end; ANode := ANode.NextSibling; until ANode = nil; finally DeleteFile(File_Locale); Screen.Cursor:=crDefault; end; end; end. |
![]() |
Come interagire con un database Access |
import java.sql.*; class JavaDatabase { public static void main(String[] args) { try { // Carico il driver JDBC-ODBC Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // Apro una connessione con il database Connection con = DriverManager.getConnection( "jdbc:odbc:MioDatabase" ); // Preparo l'oggetto che mi permetterα // l'utilizzo di SQL Statement stat = con.createStatement(); // Eseguo l'interrogazione, ottentendo // un oggetto ResultSet come risultato ResultSet res = stat.executeQuery( "SELECT * FROM Persone" ); // Scorro ogni record presente e stampo // l'output sul video while (res.next()) { System.out.println( res.getString("Nome") + ", " + res.getString("Cognome") + ", " + res.getString("Indirizzo") ); } // Chiudo il ResultSet res.close(); // Chiudo lo Statement stat.close(); // Chiudo la connessione con.close(); } catch (Exception e) { System.out.println("Problema: " + e.toString()); } } } |
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); |
jdbc:odbc:MioDatabase |
![]() |
Downloadare un file dal Web e salvarlo in locale |
public static void download(String url, String filename) { try { URL u = new URL(url); URLConnection conn = u.openConnection(); InputStream in = conn.getInputStream(); FileOutputStream out = new FileOutputStream(filename); byte[] bytes = new byte[1024]; int l = 0; while ((l = in.read(bytes)) != -1) out.write(bytes,0,l); out.close(); in.close(); } catch (Exception e) { System.out.println("Problema: " + e.toString()); } } |
download("http://www.ioprogrammo.it/hello.zip","hello_ioprogrammo.zip"); |
![]() |
Una funzione TRIM evolutaà |
<%@ LANGUAGE="JScript"%> function trim(stringa){ var i; var inizio=-1; var fine=stringa.length; for(i=0;i<stringa.length;i++){ if(stringa.charAt(i)==" ") inizio=i; else break; } for(i=stringa.length-1;i>0;i--){ if(stringa.charAt(i)==" ") fine=i; else break; } stringa = stringa.substring(inizio+1,fine); return(stringa); } function ltrim(stringa){ var i; var inizio=-1; for(i=0;i<stringa.length;i++){ if(stringa.charAt(i)==" ") inizio=i; else break; } stringa = stringa.substring(inizio+1,stringa.length); return(stringa); } function rtrim(stringa){ var i; var fine=stringa.length; for(i=stringa.length-1;i>0;i--){ if(stringa.charAt(i)==" ") fine=i; else break; } stringa = stringa.substring(0,fine); return(stringa); } %> |
![]() |
La verifica della carta di credito |
<?php ## Creato da Rosario Sensale ## ## E.Mail gsensa@freemail.it ## function CheckPIva($partita_iva) { $dimensione=strlen($partita_iva); $somma_disp=0; $somma_pari=0; $somma_totale=0; $temp=0; //ritorna 0 se c'Φ un errore e 1 nel caso contrario //controllo la dimensione if ($dimensione == 11) { $somma_disp=intval($partita_iva[0]) + intval($partita_iva[2]) + intval($partita_iva[4]) + intval($partita_iva[6]) + intval($partita_iva[8]); //controllo pari $temp_somma=intval($partita_iva[1])*2; $temp_str=strval($temp_somma); if ($temp_somma >= 10){ $somma_pari=$somma_pari + intval($temp_str[0]) + intval($temp_str[1]); }else{ $somma_pari=$somma_pari + $temp_somma; } $temp_somma=intval($partita_iva[3])*2; $temp_str=strval($temp_somma); if ($temp_somma >= 10){ $somma_pari=$somma_pari + intval($temp_str[0]) + intval($temp_str[1]); }else{ $somma_pari=$somma_pari + $temp_somma; } $temp_somma=intval($partita_iva[5])*2; $temp_str=strval($temp_somma); if ($temp_somma >= 10){ $somma_pari=$somma_pari + intval($temp_str[0]) + intval($temp_str[1]); }else{ $somma_pari=$somma_pari + $temp_somma; } $temp_somma=intval($partita_iva[7])*2; $temp_str=strval($temp_somma); if ($temp_somma >= 10){ $somma_pari=$somma_pari + intval($temp_str[0]) + intval($temp_str[1]); }else{ $somma_pari=$somma_pari + $temp_somma; } $temp_somma=intval($partita_iva[9])*2; $temp_str=strval($temp_somma); if ($temp_somma >= 10){ $somma_pari=$somma_pari + intval($temp_str[0]) + intval($temp_str[1]); }else{ $somma_pari=$somma_pari + $temp_somma; } //somma totale $somma_totale=$somma_pari+$somma_disp; //elemento unita' $temp_str=strval($somma_totale); $controllo=10-intval($temp_str[1]); if (intval($partita_iva[10]) == $controllo) { $temp=1; }else{ $temp=0; } }else{ $temp=0; //non sono 11 caratteri } return $temp; } ?> |
![]() |
Come creare un'icona partendo da un'immagine |
Option Explicit Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Crea_Icona(Directory.GetCurrentDirectory & "\web.jpg") End Sub Public Sub Crea_Icona(ByVal StrPercorso As String) Dim bmp As New Bitmap(StrPercorso) Dim img As IntPtr = bmp.GetHicon Dim ico As Icon = Icon.FromHandle(img) Dim fStream As New FileStream(Directory.GetCurrentDirectory & "\web.ico", FileMode.Create) ico.Save(fStream) fStream.Flush() fStream.Close() MsgBox("Icona Creata", MsgBoxStyle.Information, "Creazione Icone") End Sub |
![]() |
Come gestire la taskbar |
'Dichiarazione della struttura per la gestione dell'Icona di notifica Private Type NOTIFYICONDATA cbSize As Long hWnd As Long uId As Long uFlags As Long uCallBackMessage As Long hIcon As Long szTip As String * 64 End Type 'Comandi per l'inserimento, la modifica e cancellazione dell'Icona di notifica Private Const NIM_ADD = &H0 Private Const NIM_MODIFY = &H1 Private Const NIM_DELETE = &H2 'Ritorno informazioni del mouse integrate con l'Icona di Notifica Private Const WM_MOUSEMOVE = &H200 Private Const WM_LBUTTONDOWN = &H201 'Pulsante sinistro gi∙ Private Const WM_LBUTTONUP = &H202 'Pulsante sinistro su Private Const WM_LBUTTONDBLCLK = &H203 'Doppio click pulsante sinistro Private Const WM_RBUTTONDOWN = &H204 'Pulsante destro gi∙ Private Const WM_RBUTTONUP = &H205 'Pulsante destro su Private Const WM_RBUTTONDBLCLK = &H206 'Doppio click pulsante destro 'Valori dei flag per attivare il messaggio, l'icona ed il tooltip Private Const NIF_MESSAGE = &H1 Private Const NIF_ICON = &H2 Private Const NIF_TIP = &H4 'Dichiarazione della chiamata alla funzione API Private Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" _ (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean Dim nid As NOTIFYICONDATA Public Sub AddIconaNotifica() nid.cbSize = Len(nid) nid.hWnd = Form1.hWnd nid.uId = vbNull nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE nid.uCallBackMessage = WM_MOUSEMOVE nid.hIcon = Form1.Icon nid.szTip = "Icona di notifica" & vbNullChar Shell_NotifyIcon NIM_ADD, nid End Sub Private Sub DeleteIconaNotifica() Shell_NotifyIcon NIM_DELETE, nid End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Dim msg As Long Dim sToolTip As String msg = X / Screen.TwipsPerPixelX Select Case msg Case WM_LBUTTONDOWN Case WM_LBUTTONUP Case WM_LBUTTONDBLCLK MsgBox "E' stato premuto il tasto sinistro" Case WM_RBUTTONDOWN sToolTip = InputBox("Inserire il nuovo tooltip:", "Conferma") If sToolTip <> "" Then nid.szTip = sToolTip & vbNullChar Shell_NotifyIcon NIM_MODIFY, nid End If Case WM_RBUTTONUP Case WM_RBUTTONDBLCLK End Select End Sub |
![]() |
Un download manager |
![]() |
Una funzione per chiamare un numero telefonico |
Option Explicit Private Declare Function tapiRequestMakeCall& Lib "TAPI32.DLL" (ByVal DestAddress$, ByVal AppName$, ByVal CalledParty$, ByVal Comment$) Private Const TAPIERR_NOREQUESTRECIPIENT = -2& Private Const TAPIERR_REQUESTQUEUEFULL = -3& Private Const TAPIERR_INVALDESTADDRESS = -4& Private Sub cmdChiama_Click() Dim Strtemp As String Dim nResult As Long nResult = tapiRequestMakeCall&(Trim$(txtNumero), CStr(Caption), "Test telefono", "") If nResult <> 0 Then Strtemp = "Errore durante la composizione del numero: " Select Case nResult Case TAPIERR_NOREQUESTRECIPIENT Strtemp = Strtemp & "Non Φ possibile avviare l'applicazione Windows si supporto" Case TAPIERR_REQUESTQUEUEFULL Strtemp = Strtemp & "Il sistema Φ attualmente impegnato in altre composizioni telefoniche" Case TAPIERR_INVALDESTADDRESS Strtemp = Strtemp & "Il numero telefonico non Φ corretto" Case Else Strtemp = Strtemp & "Errore sconosciuto" End Select MsgBox Strtemp End If End Sub Private Sub Form_Load() Abilita_Chiamata End Sub Private Sub cmdExit_Click() Unload Me End Sub Private Sub Abilita_Chiamata() cmdChiama.Enabled = Len(Trim$(txtNumero)) > 0 End Sub Private Sub txtNumero_Change() Abilita_Chiamata End Sub |