• User Attivo

    filesystemobject e title

    salve
    ho un codice che tramite il file system object legge i nomi dei files contenuti in una cartella e li riporta in formato elenco nella pagina
    nel caso specifico sono tutti file html

    invece di stampare l'elenco dei nomi dei files, vorrei stampare i title
    è possibile farlo?


  • User Attivo

    Devi leggere il testo contenuto in ogni singolo file ed andare a cercare la stringa che si trova tra <title> e </title>


  • User Attivo

    il codice è questo

    
         <% Dim fso, f, f1, fc, s
            Set fso = CreateObject("Scripting.FileSystemObject")
                   Set f = fso.GetFolder(server.mappath("cartellafile"))
            
            Set fc = f.Files
            
            For Each f1 in fc
          
            s = f1.name       
            Response.Write "<li><a href='cartellafile/"& s &"' class='type' target='_blank'>" & s & "</a></li>"%><br>     
         
         <%Next%>
    
    
    

    come posso prelevare il title di questi html posti nella cartella "cartellafile" e non il nome?

    :mmm:


  • User Attivo

    Prova ad utilizzare il metodo OpenTextFile per inserire il testo del file in una variabile. Poi splittane il contenuto in base ai tag <title> e </title> in maniera tale da ricavare la stringa tra essi contenuta.


  • User Attivo

    @madai said:

    Prova ad utilizzare il metodo OpenTextFile per inserire il testo del file in una variabile. Poi splittane il contenuto in base ai tag <title> e </title> in maniera tale da ricavare la stringa tra essi contenuta.

    😞 😄 in italiano ho capito ehhehe

    in codice come sarebbe?
    mi sapresti dare cortesemente uno spunto ?

    mi disp non sono così bravo nel programmare
    so fare cose base

    :ciauz:


  • User Attivo

    Prova così:

    <%
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFolder(Server.MapPath("cartellafile"))
    
    Set fc = f.Files
    
    For Each f1 in fc
    
        s = f1.Name
        Set objTextFile = fso.OpenTextFile(Server.MapPath("cartellafile/" & s), 1)
        html = objTextFile.ReadAll
        
        If InStr(html,"<title>") > 0 and InStr(html,"</title>") > 0 then
            title = Split(html,"<title>")(1)
            title = Split(title,"</title>")(0)
        Else
            title = "Titolo non disponibile per <i>" & s & "</i>"
        End if
        
        Response.Write("<li><a href='cartellafile/"& s &"' class='type' target='_blank'>" & title & "</a></li><br>")
        
        objTextFile.Close
        
    Next
    %>
    

    :ciauz:


  • User Attivo

    funziona..

    sei troppo forte 😄
    per me è arabo quello che hai scritto eheheh

    mi mette un ">" prima del titolo

    ultima cosa

    se volessi usare prendere il testo contenuto nel meta content al posto del title (per altre cose), vale lo stesso discorso?

    grazie


  • User Attivo

    Per la descrizione prova così... in grassetto le "aggiunte" che ho apportato:

    <%
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFolder(Server.MapPath("cartellafile"))
    
    Set fc = f.Files
    
    For Each f1 in fc
    
        s = f1.Name
        Set objTextFile = fso.OpenTextFile(Server.MapPath("cartellafile/" & s), 1)
        html = objTextFile.ReadAll
        
        If InStr(html,"<title>") > 0 and InStr(html,"</title>") > 0 then
            title = Split(html,"<title>")(1)
            title = Split(title,"</title>")(0)
        Else
            title = "Titolo non disponibile per <i>" & s & "</i>"
        End if
    
    **     If InStr(html,"<meta name=""description"" content=""") > 0 then
            descr = Split(html,"<meta name=""description"" content=""")(1)
            descr = Split(title,"""")(0)
        Else
            descr = "Descrizione non disponibile per <i>" & s & "</i>"
        End if**
    
        Response.Write("<li><a href='cartellafile/"& s &"' class='type' target='_blank'>" & title & "</a><br>**<i>"&descr&"</i>**</li><br>")
        
        objTextFile.Close
        
    Next
    %>
    

    Per quell' ">" a prima vista non trovo l'errore... almeno questo scovalo tu 😄

    Ciao :ciauz:


  • Moderatore

    Okkio!

    il punto

    descr = Split(title,"""")(0)

    Dovrebbe essere ```
    **descr = Split(descr,"""")(0)**
    

    Per l'">" non lo trovo neanch'io...