in

DotNetSide

Dot Net South Italy Developers User Group

Tips

October 2006 - Posts

  • Convertire HTML in Testo

    Autore: Stefano De Mattia

    Quella che segue è una funzione che converte una stringa HTML in una di testo semplice.

    Sono necessari i seguenti Imports:

    Imports System.Text
    Imports System.Text.RegularExpressions

    Il codice della funzione:

    ''' <summary>
    '
    '' Funzione che converte una stringa HTML in una di testo semplice
    '
    '' </summary>
    '
    '' <param name="html">Stringa da convertire</param>
    '
    '' <returns>Stinga semplice</returns>
    '
    '' <remarks></remarks>
    Function Html2Text(ByVal html As String) As String
    ' pattern per la rimozione dei tag HTML
    Dim pattern As String = "\<[^\>]*\>"
    Dim re As New Regex(pattern, RegexOptions.IgnoreCase)

    'qui posso modificare la formattazione sui
    'tag che mi interessano, prima di eliminarli ad esempio
    'html = html.Replace("<p>", vbCrLf)
    'html = html.Replace("<\p>", vbCrLf & vbCrLf)
    'html = html.Replace("&nbsp;", " ")
    html = html.Replace("<br />", vbCrLf)

    'applico l'espressione regolare,
    'sostituendo i caratteri speciali con la stringa vuota
    html = re.Replace(html, String.Empty)

    Return html

    End Function
    Posted Oct 31 2006, 11:53 AM by VitoA with 2 comment(s)
    Filed under: ,
  • Hyperlink in WPF

    Autore: Vito Arconzo

    Un quesito ricorrente nei forum su Windows Presentation Foundation è come creare un hyperlink per aprire il browser su una pagina web indicata.

    La risposta è differente a seconda se si tratti di un'applicazione standalone o browser.

    Browser

    Nelle applicazioni di tipo browser la cosa è molto semplice:

    <TextBlock> <Hyperlink NavigateUri="http://www.dotnetside.org" TargetName="_top"> Navigate the top-level window to DotNetSide </Hyperlink> </TextBlock>

    Standalone

    Sfortunatamente, nelle applicazioni standalone, la cosa non è così immediata e il modo più semplice è quello di utilizzare l'evento RequestNavigate del controllo HyperLink e, quindi, gestire l'apertura del browser nel code-behind:

    <TextBlock> <Hyperlink RequestNavigate="HandleRequestNavigate" Name="hl"
    NavigateUri="http://www.dotnetside.org"> Open DotNetSide in the default browser </Hyperlink> </TextBlock>
    void HandleRequestNavigate(object sender, RoutedEventArgs e) { string navigateUri = hl.NavigateUri.ToString(); Process.Start(), e.g. check to see Process.Start(new ProcessStartInfo(navigateUri)); e.Handled = true; }
    Posted Oct 17 2006, 09:00 PM by VitoA with 14 comment(s)
    Filed under: ,
  • Impedire avvio istanza MS SQL Server

    Autore: Francesco Quaratino

    Ecco alcune funzionalità poco note di MS-Sql Server, per la realizzazione di un'applicazione in grado di impedire a un'istanza di MS-Sql Server di avviarsi.

    Premetto che sarà bene provare il codice che presento di seguito, SOLTANTO in ambienti molto poco critici e MAI (!!!) in ambienti di produzione. Non deve essere bello, infatti, vedere che Sql Server non rispondere ai nostri ripetuti "inviti" ad avviarsi.

    Apriamo una connessione al nostro server sql, con credenziali di amministratore (per intenderci l'utente SA va benissimo), entrando nel contesto del database master.

     

    --Transact SQL
    USE master
    GO

    Iniziamo col creare una stored procedure di sistema, cioè che risiederà nel database master. Questa procedura avrà l'ingrato compito di arrestare il servizio SQL Server (mssqlserver è il servizio di default, mssql$istanzanominata in caso di istanza con nome) richiamando la stored procedure estesa xp_cmdShell.

    Per crearla come stored procedure di sistema, basta denominarla con il prefisso sp_.

     

    --Transact SQL
    CREATE PROC sp_StopService
    AS
    EXEC xp_cmdshell 'net stop mssqlserver', NO_OUTPUT
    GO

    A questo punto, la rendiamo una "autostart procedure". In tal modo, la nostra procedura sarà eseguita automaticamente subito dopo la partenza del servizio Sql, producendo lo spiacevole effetto di arrestare lo stesso servizio.

     

    --Transact SQL
    sp_procoption sp_StopService, 'startup', 'true'

    A questo punto, possiamo arrestare il servizio manualmente o, se preferite un po' più di suspense, riavviare il computer. Se non ci sono stati intoppi, il servizio Sql non si avvierà mai più perchè arrestato dalla nostra procedura auto-partente subito dopo l'avvio.

    Per disattivare la proprietà auto-partente della sp_StopService, è necessario avviare Sql Server in modalità applicazione mediante SQLSERVR.EXE usando il il trace flag 4022. Quindi, apriamo un prompt dei comandi e dopo esserci spostati nella directory che ospita SQLSERVR.EXE, digitiamo il comando dal prompt dei comandi

    (se istanza nominata, in questo esempio Sql2005 è il nome dell'istanza)

    sqlservr -sSql2005 -T4022

    (se istanza di default)

    sqlservr -T4022

    Quindi, per disattivare il comportamento auto-partente della nostra procedura, apriamo una connessione a Sql mediante credenziali amministrative entrando nel contesto del database master, e lanciamo:

     

    --Transact SQL
    sp_procoption sp_StopService, 'startup', 'false'

    Solo adesso, saremo in grado di avviare il servizio Sql (ma prima bisogna terminare l'esecuzione di sqlservr chiudendo la finestra DOS o premendo CTRL+BREAK). Lo scherzo è bello quando dura poco :)

    Posted Oct 12 2006, 08:00 AM by VitoA with 1 comment(s)
    Filed under:
Powered by Community Server (Commercial Edition), by Telligent Systems