ASPTipsSkapa länkarna dynamisktKonvertera ASP till HTML
[ Hem ] Allmänt ASP XML SQL ADO HTML CSS VB Java Design Karta
Grunder Input/output VBScript Databaser Tips Exempel

Konvertera ASP till HTML

Men om min Internet provider inte har ASP, då kan jag inte använda ovanstående metoder, eller?

FEL !

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.

Detta görs genom att skapa en ASP site enligt ovanstående ideér och sedan konvertera resultatet till HTML

Detta kan göras programmatiskt!

Prova följande

  • Starta Visual Basic
    (Instruktionerna är för version 5. Borde gå att tillämpa även i version 6, men jag har inte tillgång till denna version)

  • Skapa ett Standard EXE projekt

  • Välj menyn Project, Components och se till att Microsoft Internet Transfer Control ... är valt.
    (Slutet på texten kan variera beroende på servicepacks och VB version)

  • Sätt in följande på formen

    • Tre enradiga TextBoxar med namnen Text1, Text2 och Text3

    • En ListBox med namnet List1

    • En Inetkontroll med namnet Inet1
      (syns som en dator med jordglob bakom sig i Toolboxen, och kom dit när vi valde Components ovan)

    • En CommandButton med namnet Command1

    • Några Labels för förklaringstext

  • Kopiera in följande kod till formen

    Option Explicit
    Dim fileContents As String

    Private Sub Command1_Click()
          ' Lite Quick And Dirty men fungerar!
          ' (c) aen 1999
          Dim baseURL As String
          Dim listFile As String
          Dim outDirectory As String
          Dim fileName As String
          Dim strTemp As String
          Dim indTemp As Integer
          Dim indTab As Integer
          Dim indASP As Long
          Dim strHTML As String
          Dim fileNameHTML As String

          baseURL = Text1.Text
          listFile = Text2.Text
          outDirectory = Text3.Text

          Inet1.URL = baseURL & "/" & listFile
          Inet1.Execute , "GET"

          ' Det står fel i VB:s hjälp. Jämför inte StillExecuting med True
          Do While Inet1.StillExecuting
                DoEvents
          Loop

          strTemp = fileContents
          indTab = InStr(strTemp, Chr(9))

          Do While indTab > 0
                fileName = Left(strTemp, indTab - 1)
                Inet1.URL = baseURL & "/" & fileName
                Inet1.Execute , "GET"

                Do While Inet1.StillExecuting
                      DoEvents
                Loop

                If InStr(fileName, ".asp") > 0 Then
                      strHTML = fileContents
                      fileNameHTML = outDirectory & "\" & _
                            Left(fileName, InStr(fileName, ".asp") - 1) & ".htm"

                      indASP = InStr(LCase(strHTML), ".asp")

                      Do While indASP > 0
                            strHTML = Left(strHTML, indASP - 1) & _
                                  ".htm" & Mid(strHTML, indASP + 4)
                            indASP = InStr(LCase(strHTML), ".asp")
                      Loop

                      Open fileNameHTML For Output As #1
                      Print #1, strHTML
                      Close #1
                End If

                strTemp = Mid(strTemp, indTab + 1)
                indTemp = InStr(strTemp, Chr(10))

                If indTemp > 0 Then
                      strTemp = Mid(strTemp, indTemp + 1)
                End If

                indTab = InStr(strTemp, Chr(9))
                List1.AddItem "Konverterat:" & Chr(9) & fileName
          Loop

    End Sub

    Private Sub Inet1_StateChanged(ByVal State As Integer)
          Select Case State
                Case icResponseCompleted
                      Dim vtData As Variant
                      Dim strData As String: strData = ""
                      Dim bDone As Boolean: bDone = False
                      vtData = Inet1.GetChunk(1024, icString)

                      Do While Not bDone
                            strData = strData & vtData
                            vtData = Inet1.GetChunk(1024, icString)
                            If Len(vtData) = 0 Then
                                  bDone = True
                            End If
                      Loop

                      fileContents = strData
          End Select
    End Sub


  • Prova detta program genom att:

    • Skriv in webadressen till din katalog som innehåller ASP koden i Text1
      Om datorn heter pentti och det finns en virtuell katalog med namet aspsidor så skriver du pentti/aspsidor

    • Skriv in namnet på en listfil i Text2. T.ex. links.txt

    • Skriv in katalognamet dit du vill att de konverterade HTML sidorn skall komma i Text3. T.ex. c:\htmsidor
      OBS! Katalogen måste finnas, programmet skapar den inte

    • Clicka på Command1 knappen

    • Kontrollera vad som finns i c:\htmsidor katalogen. Om links.txt 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

    • Tag in en av dessa sidor i din browser och prova länkarna

Programmet byter ut ALLA href="enfil.asp" till href="enfil.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...

I praktiken byter den ut ALLA .asp till .htm, även fast det inte var en länk. Kanske man inte brukar skriva .asp så ofta i vanliga sidor

För enkelhetens skull får det duga, modifiera gärna vidare om du kan/orkar/ids

Programmet kopierar inte bilder till resultatkatalogen utan dessa måste kopieras separat.

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

Men det som är kul med denna metod är att man kan använda include och dynamiska länkar 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

Pretty Cool! Detta är dock min personliga åsikt och vem har väl någonsin brytt sig i den?

  Ett förslag till layoutmetodKompletterande saker till layoutmetoden
Tips
Använd include!
Mångspråkiga sidor
Skapa länkarna dynamiskt
Ett förslag till layoutmetod
Konvertera ASP till HTML
Kompletterande saker till layoutmetoden
Browserkontroll


Top
< Ett förslag till layoutmetod Kompletterande saker till layoutmetoden>
© Anders Enges, Vörå 2002  | 10.10.01 10:21 Visa asp koden