Källkoden för /anders.enges/asp/exhtml.asp

<!--  #include file="../inc/navstuff.asp" -->
Men om min Internet provider inte har ASP, då kan jag inte använda
ovanstående metoder, eller?<p>
<font size="+2" color="990000"><b>FEL !</b></font><p>
Man kan använda Content Linking och include även om man inte kan sätta ut
asp koden på nätet. Bara man själv har tillgång till ASP på egen dator.<p>
Detta görs genom att skapa en ASP site enligt ovanstående ideér och sedan
konvertera resultatet till HTML<p>
Detta kan göras programmatiskt!<p>
Prova följande<ul>
<li>Starta Visual Basic <br>
(Instruktionerna är för version 5. Borde gå att tillämpa även i version 6,
men jag har inte tillgång till denna version)<br><br>
<li>Skapa ett Standard EXE projekt<br><br>
<li>Välj menyn <b><u>P</u>roject</b>, <b>C<u>o</u>mponents</b> och se till att
<b>Microsoft Internet Transfer Control ...</b> är valt. <br>
(Slutet på texten kan variera beroende på servicepacks och VB version)<br><br>
<li>Sätt in följande på formen<br><br>
<ul>
<li>Tre enradiga <b>TextBox</b>ar med namnen <b>Text1</b>, <b>Text2</b> och <b>Text3</b><br><br>
<li>En <b>ListBox</b> med namnet <b>List1</b><br><br>
<li>En <b>Inet</b>kontroll med namnet <b>Inet1</b> <br>
(syns som en dator med jordglob bakom sig i Toolboxen, och kom dit när vi valde Components ovan)<br><br>
<li>En <b>CommandButton</b> med namnet <b>Command1</b><br><br>
<li>Några <b>Label</b>s för förklaringstext<br><br>
</ul>
<li>Kopiera in följande kod till formen<br>
<div class="code">
<br>
<font color="0000CC">Option Explicit</font><br>
<font color="0000CC">Dim</font> fileContents <font color="0000CC">As String</font><br>
<br>
<font color="0000CC">Private Sub</font> Command1_Click()<br>
      <font COLOR="#006400">' Lite Quick And Dirty men fungerar!</font><br>
      <font COLOR="#006400">' (c) aen 1999</font><br>
      <font color="0000CC">Dim</font> baseURL <font color="0000CC">As String</font><br>
      <font color="0000CC">Dim</font> listFile <font color="0000CC">As String</font><br>
      <font color="0000CC">Dim</font> outDirectory <font color="0000CC">As String</font><br>
      <font color="0000CC">Dim</font> fileName <font color="0000CC">As String</font><br>
      <font color="0000CC">Dim</font> strTemp <font color="0000CC">As String</font><br>
      <font color="0000CC">Dim</font> indTemp <font color="0000CC">As Integer</font><br>
      <font color="0000CC">Dim</font> indTab <font color="0000CC">As Integer</font><br>
      <font color="0000CC">Dim</font> indASP <font color="0000CC">As Long</font><br>
      <font color="0000CC">Dim</font> strHTML <font color="0000CC">As String</font><br>
      <font color="0000CC">Dim</font> fileNameHTML <font color="0000CC">As String</font><br>
<br>
      baseURL = Text1.Text<br>
      listFile = Text2.Text<br>
      outDirectory = Text3.Text<br>
<br>
      Inet1.URL = baseURL & "/" & listFile<br>
      Inet1.Execute , "GET"<br>
<br>
      <font COLOR="#006400">' Det står fel i VB:s hjälp. Jämför inte StillExecuting med True</font><br>
      <font color="0000CC">Do While</font> Inet1.StillExecuting<br>
            DoEvents<br>
      <font color="0000CC">Loop</font><br>
<br>
      strTemp = fileContents<br>
      indTab = InStr(strTemp, Chr(9))<br>
<br>
      <font color="0000CC">Do While</font> indTab > 0<br>
            fileName = Left(strTemp, indTab - 1)<br>
            Inet1.URL = baseURL & "/" & fileName<br>
            Inet1.Execute , "GET"<br>
<br>
            <font color="0000CC">Do While</font> Inet1.StillExecuting<br>
                  DoEvents<br>
            <font color="0000CC">Loop</font><br>
<br>
            <font color="0000CC">If</font> InStr(fileName, ".asp") > 0 <font color="0000CC">Then</font><br>
                  strHTML = fileContents<br>
                  fileNameHTML = outDirectory & "\" & _ <br>
                        Left(fileName, InStr(fileName, ".asp") - 1) & ".htm"<br>
<br>
                  indASP = InStr(LCase(strHTML), ".asp")<br>
<br>
                  <font color="0000CC">Do While</font> indASP > 0<br>
                        strHTML = Left(strHTML, indASP - 1) & _<br>
                              ".htm" & Mid(strHTML, indASP + 4)<br>
                        indASP = InStr(LCase(strHTML), ".asp")<br>

                  <font color="0000CC">Loop</font><br>
<br>
                  <font color="0000CC">Open</font> fileNameHTML <font color="0000CC">For Output As </font>#1<br>
                  <font color="0000CC">Print</font> #1, strHTML<br>
                  <font color="0000CC">Close </font>#1<br>
            <font color="0000CC">End If</font><br>
<br>
            strTemp = Mid(strTemp, indTab + 1)<br>
            indTemp = InStr(strTemp, Chr(10))<br>
<br>
            <font color="0000CC">If</font> indTemp > 0 <font color="0000CC">Then</font><br>
                  strTemp = Mid(strTemp, indTemp + 1)<br>
            <font color="0000CC">End If</font><br>
<br>
            indTab = InStr(strTemp, Chr(9))<br>
            List1.AddItem "Konverterat:" & Chr(9) & fileName<br>
      <font color="0000CC">Loop</font><br>
<br>
<font color="0000CC">End Sub</font><br>
<br>
<font color="0000CC">Private Sub</font> Inet1_StateChanged(<font color="0000CC">ByVal</font> State <font color="0000CC">As Integer</font>)<br>
      <font color="0000CC">Select Case</font> State<br>
            <font color="0000CC">Case </font>icResponseCompleted<br>
                  <font color="0000CC">Dim </font>vtData <font color="0000CC">As Variant</font><br>
                  <font color="0000CC">Dim </font>strData <font color="0000CC">As String</font>: strData = ""<br>
                  <font color="0000CC">Dim</font> bDone <font color="0000CC">As Boolean</font>: bDone = <font color="0000CC">False</font><br>
                  vtData = Inet1.GetChunk(1024, icString)<br>
<br>
                  <font color="0000CC">Do While Not </font>bDone<br>
                        strData = strData & vtData<br>
                        vtData = Inet1.GetChunk(1024, icString)<br>
                        <font color="0000CC">If</font> Len(vtData) = 0 <font color="0000CC">Then</font><br>
                              bDone = <font color="0000CC">True</font><br>
                        <font color="0000CC">End If</font><br>
                  <font color="0000CC">Loop</font><br>
<br>
                  fileContents = strData<br>
      <font color="0000CC">End Select</font><br>
<font color="0000CC">End Sub</font><br><br>
</div>
<br>
<li>Prova detta program genom att:<ul><br>
<li>Skriv in webadressen till din katalog som innehåller ASP koden i <b>Text1</b><br>
Om datorn heter <b>pentti</b> och det finns en virtuell katalog med namet <b>aspsidor</b> så skriver du <b>pentti/aspsidor</b><br><br>
<li>Skriv in namnet på en listfil i <b>Text2</b>. T.ex. <b>links.txt</b><br><br>
<li>Skriv in katalognamet dit du vill att de konverterade HTML sidorn skall komma i Text3. T.ex. <b>c:\htmsidor</b><br>
OBS! Katalogen måste finnas, programmet skapar den inte<br><br>
<li>Clicka på <b>Command1</b> knappen<br><br>
<!--  <li>Resultatet blir detta<br>
<img src="../images/vbres.gif" WIDTH="351" HEIGHT="248"><br><br> -->

<li>Kontrollera vad som finns i <b>c:\htmsidor</b> katalogen. Om <b>links.txt</b>
innehöll hänvisningar till sid1.asp, sid2.asp o.s.v så bode du nu ha fått sid1.htm, sid2.htm o.s.v<br><br>
<li>Tag in en av dessa sidor i din browser och prova länkarna<br><br>
</ul>
</ul>
<p>
Programmet byter ut ALLA href="<i>enfil.</i>asp" till href="<i>enfil</i>.htm".
Även externa hänvisningar. Om detta stör dina länkar så går det nog att modifiera
programmet så att det beaktar skillnaden mellan externa och interna länkar... <p>
I praktiken byter den ut ALLA <b>.asp</b> till <b>.htm</b>, även fast det inte var en länk.
Kanske man inte brukar skriva .asp så ofta i vanliga sidor <p>
För enkelhetens skull får det duga, modifiera gärna vidare om du kan/orkar/ids<br>

<p>
Programmet kopierar inte bilder till resultatkatalogen utan dessa måste
kopieras separat.<p>
<ul>
<li><a href="sid1.htm" target="_new">Klicka här för att se exempel på de konverterade sidorna från föregående kapitel, Observera att filerna har typen HTM och även länkarna beaktar detta!</a><p>
</ul><p>
Denna metod fungerar ju inte så bra med riktigt dynamiska sidor med databaser,
counters med mera, men kan ändå vara bra att känna till<p>
Men det som är kul med denna metod är att man kan använda <b>include</b> och
<b>dynamiska länkar</b> för att "prototypa" sidorna. Man man är nöjd så kör
man dem genom detta program och kan sedan sätta upp dem på vilken server
som helts. Till och med en Linux burk utan ASP<p>
<font color="FF0000">Pretty Cool!</font> <font color="666666">Detta är dock min personliga åsikt och vem har väl <b>någonsin</b> brytt sig i den?</font><p>
<!--#include file="../inc/footer.asp" -->