Tips&Tricks I trucchi del mestiere

 




Come ottenere il contenuto di una cartella

Per analizzare il contenuto di una cartella del server attraverso un documento ASP, Φ necessario ricorrere all'oggetto ActiveX Scripting.FileSystemObject. La funzione qui di seguito riportata prende in ingresso il nome di una cartella, e quindi ne analizza il contenuto restituendo un array di stringhe dove ogni elemento rappresenta il nome di uno dei file contenuti nella cartella (il codice Φ JScript): trucco fornito da Carlo Pelliccia.
function Cartella(nomeCartella) {
  fso = new ActiveXObject("Scripting.FileSystemObject");
  folder = fso.GetFolder(Server.MapPath(nomeCartella));
  folderFiles = new Enumerator(folder.files);
  var arr = new Array();
  var i = 0;
  while (!folderFiles.atEnd()) {
    temp = fso.GetFile(folderFiles.item());
    arr[i++] = temp.Name;
    folderFiles.moveNext();
  }
  return arr;
}


Come inviare e-mail senza il componente CDONTS

Non tutti i Web server che supportano ASP sono abilitati all'invio di e-mail tramite il noto componente CDONTS. Un'alternativa parecchio diffusa Φ rappresentata infatti dall'ActiveX AspEmail di Persist Software (http://www.aspemail.com/). Vediamo come inviare una e-mail tramite questo componente (il codice Φ VBScript): trucco fornito da Carlo Pelliccia.
Dim MailSender
Set MailSender = Server.CreateObject("Persits.MailSender")

' Host utilizzato
MailSender.Host = "smtp.miohost.com"

' Mittente
MailSender.From = "mestesso@miohost.com"

' Nome del mittente
MailSender.FromName = "Pinco Pallino"

' Destinatari
MailSender.AddAddress "destinatario1@host1.com"
MailSender.AddAddress "destinatario2@host2.com"
MailSender.AddAddress "destinatario3@host3.com"

' Oggetto
MailSender.Subject = "Mail Automatica"

' Corpo del messaggio
MailSender.Body = "Ciao a tutti!"

' Invio della missiva
MailSender.Send()

Set MailSender = Nothing
        
      


Come connettersi ad un DB con ASP.NET

La connessione ad un DB, utilizzando ASP.NET, rimane abbastanza simile nel caso di ASP. E' tuttavia utile riproporre il nuovo metodo di connessione; in questo esempio si realizza la connessione ad database Microsoft Access.
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data.OleDb" %>

<script runat=server>
void Page_Load(Object sender, EventArgs e)
{
  String ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +
        Server.MapPath("ProvaDB.mdb");

  OleDbConnection cn = new OleDbConnection(ConnString);

   cn.Open();

  // à
  // ...
  // ...

  cn.Close();
}
</script>

<html>
<head>
  <title> Prova di connessione ad un DB Access con ASP.NET 
</head>
<body>
</body>
</html>


Come evidenziare una parola all'interno di un testo

Con questo script vogliamo mostrare come, utilizzando la funzione Replace combinata ad un ciclo, sia possibile creare un'opportuna funzione di evidenziazione parole; in questo contesto faremo uso del tag Span e dei CSS.
<% 
Function Evidenzia (strTesto, strParola, strPre, strPost) 
   Dim intPos, intLen, intLenAll 
   Dim strTemp 
   
   intLen = Len(strParola) 
   intLenAll = intLen + Len(strPre) + Len(strPost) + 1 

   strTemp = strTesto 

   If intLen > 0 And Len(strTemp) > 0 Then 
     intPos = InStr(1, strTemp, strParola, 1) 
     Do While intPos > 0 
       strTemp = Left(strTemp, intPos - 1) & strPre & Mid(strTemp, intPos, intLen) & strPost & 
Mid(strTemp, intPos + intLen) 
       intPos = InStr(intPos + intLenAll, strTemp, strParola, 1) 
     Loop 
   End If 
   
   Evidenzia = strTemp 
End Function 


Testo = "Questo Φ un semplice testo, cerchiamo di capire come funziona la funzione Replace, in questo esempio Φ evidenziata la parola funziona" 
Parola = "funziona" 

%><html> 
<head> 
<style> span {background-color: #B0C4DE;}  
</head> 

<body> 

<% 
Response.write (Evidenzia (Testo, Parola, "", "")) 
%>
</body> 
</html>

Come reperire il contenuto di una cartella

Per analizzare il contenuto di una cartella del server attraverso un documento ASP, Φ necessario ricorrere all'oggetto ActiveX Scripting.FileSystemObject. La funzione qui di seguito riportata prende in ingresso il nome di una cartella, e quindi ne analizza il contenuto restituendo un array di stringhe dove ogni elemento rappresenta il nome di uno dei file contenuti nella cartella (il codice Φ JScript): trucco fornito da Carlo Pelliccia
function Cartella(nomeCartella) {
  fso = new ActiveXObject("Scripting.FileSystemObject");
  folder = fso.GetFolder(Server.MapPath(nomeCartella));
  folderFiles = new Enumerator(folder.files);
  var arr = new Array();
  var i = 0;
  while (!folderFiles.atEnd()) {
    temp = fso.GetFile(folderFiles.item());
    arr[i++] = temp.Name;
    folderFiles.moveNext();
  }
  return arr;
}