Di Admin (del 29/06/2006 @ 13:30:39, in .NET, linkato 364 volte)
Per visualizzare a schermo uno o più files xml, è possibile costruire un semplice programmino che, ciclando su ognuno dei parametri passati alla riga di comando, legga i file utilizzando prima l'oggetto FileStream e poi l'XMLTextReader.
Specificando inoltre di visualizzare il nodo soltanto se ha definito al suo intenro degli attributi mediante la condizione 'HasAttributes', ci garantiamo di escludere i nodi privi di informazioni.
Naturalmente i files XML in ingresso al programma devono essere well-formed in accordo con la normativa e le specifiche del W3C (http://www.w3.org/TR/REC-xml).
Di seguito il codice:
using System; using System.IO; using System.Xml; using System.Collections;
class leggeXml { static void Main(string[] args) { // Ciclo su tutti i files indicati nella riga di comando for (int indicearg = 0; indicearg < args.Length; indicearg++ ) { // ad ognuno associo un oggetto FileStream per la lettura del file try { // verifico se il file specificato esiste o meno FileStream fs = new FileStream(args[indicearg], FileMode.Open); XmlTextReader readxml = new XmlTextReader(fs); //Finchè leggo qualcosa nel file ciclo sui nodi del file xml while (readxml.Read()) { // quando incontro un nodo che ha anche degli attributi allora lo visualizzo in output if (readxml.NodeType == XmlNodeType.Element && readxml.HasAttributes) { while (readxml.MoveToNextAttribute()) { Console.WriteLine(readxml.Name + "= " + readxml.Value); } } } readxml.Close();
fs.Close(); } catch { // No, il file non esiste. System.Console.Write("Nome del file non valido."); } } // fine ciclo sui parametri della riga di comando } }
Di Admin (del 26/06/2006 @ 17:39:33, in .NET, linkato 761 volte)
Per tutti coloro che stanno cercando delle guide che aiutino nella comprensione del linguaggio C#, in rete è possibile reperire un sacco di fonti. Tra queste, ho trovato interessanti questi riferimenti:
Di Admin (del 22/06/2006 @ 10:21:26, in .NET, linkato 579 volte)
Vi sono diversi approcci per verificare se un dato file esista e se esso sia in uso da un'altra applicazione.
Il metodo forse più sicuro per garantirci da eventuali problemi è quello di utilizzare dapprima il metodo System.IO.Exists messo a disposizione da .NET per verificarne l'esistenza che restituisce un booleano in caso affermativo.
Successivamente proviamo ad accedere a quel file in modalità esclusiva; se avremo successo, significa che quel file non è già stato aperto da nessun'altra applicazione, in caso contrario siamo in presenza di una concorrenza di accessi (e quindi attenzione nelle operazioni di salvataggio/eliminazione).
Alla funzione passiamo come parametri il nome del file completo di path di cui vogliamo verificare l'esistenza; la funzione restituisce True se il file esiste e non è in uso , False negli altri due casi.
Private Function FileFree(ByVal nomefile As String) As Boolean If System.IO.File.Exists(nomefile) Then Try Dim ObjFs As New System.IO.FileStream(nomefile, IO.FileMode.Open, IO.FileAccess.ReadWrite, IO.FileShare.None) ObjFs.Close() Return True ' Il file esiste e non è aperto da altre applicazioni Catch ObjEx As Exception Return False ' Il file esiste ma è in uso da almeno un'altra applicazione (il file è in LOCK) End Try Else Return False ' Il file non esiste End If End Function
Di Admin (del 16/06/2006 @ 11:13:47, in .NET, linkato 503 volte)
Utilizzare gli strumenti messi a disposizione da windows potrebbe non dare risultati veritieri perchè la API incaricata di verificare la connessione potrebbe dare esito negativo se è stato configurato male o non è stato configurato Internet Explorer. La soluzione è quella di testare il collegamento con un sito sicuramente funzionante e capire in questo modo se il computer è collegato correttamente alla rete.
La seguente funzione effettua questo tipo di verifica. Prova a collegarsi con un sito arbitrario da voi scelto e nel caso la comunicazione abbia esito positivo (connessione funzionante) restituisce un booleano TRUE, altrimenti FALSE.
Function ConnectionOn() As Boolean
Dim UrlTest As New System.Uri("http://www.google.com/") ' Setup WebRequest Dim Risposta As System.Net.WebResponse Dim Richiesta As System.Net.WebRequest Richiesta = System.Net.WebRequest.Create(UrlTest)
Try Risposta = Richiesta.GetResponse Risposta.Close() Richiesta = Nothing Return True Catch ex As Exception Risposta.Close() Richiesta = Nothing Return False End Try
La funzione, dopo aver definito gli oggetti Richiesta e Risposta e l'indirizzo di prova (ricordate di sceglierne uno sicuramente funzionante...) prova a richiedere una risposta (risposta = richiesta.GetResponse) a fronte di una interrogazione.
Nel costrutto Try...Catch è racchiusa la verifica della connessione: se abbiamo risposta la funzione restituisce TRUE, altrimenti (Catch cattura l'errore derivante dal fallimento della negoziazione) FALSE.
Con alcune semplici istruzioni in più sarebbe possibile aggiungere un timer per il controllo periodico della connessione, magari con la scrittura di un file di log che tiene traccia degli stati della connection.
Di Admin (del 16/06/2006 @ 10:57:23, in ASP, linkato 265 volte)
L'utilizzo di feed RSS è diffuso in tutte le tipologie di siti o portali a livello mondiale. RSS è un formato per la distribuzione di contenuti sul Web ed è strutturato come un'applicazione XML, perciò deve essere conforme alle specifiche XML (http://www.w3.org/TR/REC-xml) Con poche righe di codice è possibile creare veloce un flusso RSS prelevando i dati da un database. Vediamo prima come è strutturato un semplice file RSS:
I miei annunci L'elenco degli annunci di questa settimana Automobile Vendesi auto modello Topolino http://miosito/annunci/topolino.htm http://miosito/annunci/images/topolino.htm
Per la serializzazione del corpo centrale (quella dell'annuncio vero e proprio), possiamo costruire una semplice applicazione asp che ciclando sugli elementi di un database crei il feed RSS.
<% ' Definizione stringa di connessione al db ed inizializzazione della connessione str_conn = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & server.MapPath("/db") & "\bacheca.mdb" Set Conn = Server.CreateObject("ADODB.Connection") Conn.ConnectionTimeout = 5 Conn.CommandTimeout = 1 ' Conn.Open str_conn
' Definizione stringa sql, parametri recordset str_sql ="SELECT * FROM annunci ORDER BY data_pub DESC" Set rs_feed = Server.CreateObject("ADODB.RecordSet") rs_feed.CursorLocation=3 rs_feed.CacheSize=5 rs_feed.Open str_sql, Conn, 1,1
' Costruzione del feed str_feed = "I miei annunciL'elenco degli annunci di questa settimana"
' Dopo aver impostato il prologo tipico dei files XML, ciclo suglie elementi della tabella del db If Not rs_feed.oef then Do until rs.eof str_feed = str_feed & "" & rs_feed("articolo") & "" & rs_feed("messaggio") & "" &_ "" & rs_feed("link") & "" & rs_feed("foto") & "" rs_feed.movenext Loop End If
' Chiudo il file str_feed = str_feed & ""
Response.Write str_feed
' Chiudo il recordset e la connessione alla fine delle operazioni rs_feed.close set rs_feed = Nothing Conn.Close set Conn=nothing %>
Totale articoli postati: 185
Totale letture: 141204
Totale commenti: 158
In questo sito si parla di programmazione in ASP e in ambiente .NET (con esempi e cosigli su come utilizzare controlli, creare controlli dinamicamente e poi validarli, utilizzo delle Regular Expression, Dataset e Datareader, Datagrid, Themes ed altro), di SQL Server (utilizzo dei vari costrutti, definizione ed uso dei cursori, normalizzazione, ...) di tecnologia in genere, di news in ambito informatico e di alcuni miei interessi.