Vb2html

Description

Oui je sais encore une source qui transforme du VB pour le formater dans une page Web...

Source / Exemple :


Public Function vb2html(szCode As String) As String
' Principe : On parcourt le code ligne par ligne pour isoler les lignes de commentaire
' ensuite on parse chaque ligne à la recherche de keyword

Dim szLigne() As String
Dim tmpCode As String
Dim szTampon As String
Dim i As Long
Dim j As Long
Dim bChaine As Boolean
bChaine = False

If mcolKeyword Is Nothing Then loadKeyword
' on stocke le code dans un tableau
szLigne = Split(szCode, vbCrLf)

tmpCode = vbNullString
For i = LBound(szLigne) To UBound(szLigne)
    
    If Trim$(szLigne(i)) Like "'*" Then ' c'est une ligne complète en commentaire
        tmpCode = tmpCode & mComment & htmlEncode(szLigne(i)) & mFin & "<BR>" & vbCrLf
    Else
        szTampon = vbNullString
        For j = 1 To Len(szLigne(i)) + 1
            
            
            If bChaine Then
                ' on est dans une chaine de caractères on recopie sans rien changer
                tmpCode = tmpCode & htmlEncode(Mid$(szLigne(i), j, 1))
            ElseIf Mid$(szLigne(i), j, 1) <> """" Then ' nous ne sommes pas dans une chaine de caractères
                ' commentaire de fin de ligne
                If Mid$(szLigne(i), j, 1) = "'" And Not bChaine Then
                    tmpCode = tmpCode & mComment & Mid$(szLigne(i), j) & mFin & "<BR>" & vbCrLf
                    Exit For
                End If
                
            
                If j > Len(szLigne(i)) Then
                    If isKeyword(Trim$(szTampon)) Then
                        If Mid$(szLigne(i), j, 1) <> "(" Then
                            tmpCode = tmpCode & mKeyword & szTampon & mFin
                        Else
                            tmpCode = tmpCode & mFunction & szTampon & "</B>" & mFin
                        End If
                        tmpCode = tmpCode & "<BR>" & vbCrLf
                    Else
                        tmpCode = tmpCode & szTampon & "<BR>" & vbCrLf
                    End If
                End If
                
                If (Mid$(szLigne(i), j, 1) <> " " And Mid$(szLigne(i), j, 1) <> "(" And Mid$(szLigne(i), j, 1) <> ")" And Mid$(szLigne(i), j, 1) <> vbTab And _
                    Mid$(szLigne(i), j, 1) <> vbCrLf And Mid$(szLigne(i), j, 1) <> "_") Or szTampon = vbNullString Then
                    ' on rempli le Tampon...
                    szTampon = szTampon & htmlEncode(Mid$(szLigne(i), j, 1))
                Else
                    ' a ce moment le curseur pointe sur un espace ou bien une (
                    
                    ' on compare le mot avec la liste des mots connus
                    If isKeyword(Trim$(szTampon)) Then
                        If Mid$(szLigne(i), j, 1) <> "(" Then
                            tmpCode = tmpCode & mKeyword & szTampon & mFin
                        Else
                            tmpCode = tmpCode & mFunction & szTampon & "</B>" & mFin
                        End If
                        tmpCode = tmpCode & htmlEncode(Mid$(szLigne(i), j, 1))
                    Else
                        tmpCode = tmpCode & szTampon & htmlEncode(Mid$(szLigne(i), j, 1))
                    End If
                    szTampon = vbNullString
                End If
            End If
            
            ' si bChaine est vrai alors on est dans une chaine de caractères
            If Mid$(szLigne(i), j, 1) = """" Then
                If bChaine Then
                    If i < UBound(szLigne) Then
                        bChaine = (szLigne(i + 1) = """")
                        If Not bChaine Then tmpCode = tmpCode & "</B>" & mFin & mNormal
                    Else
                        bChaine = False
                        tmpCode = tmpCode & "</B>" & mFin & mNormal
                    End If
                Else
                    bChaine = True
                    tmpCode = tmpCode & mString & """"
                End If
            End If
        Next j
    End If
    szTampon = szTampon & "<BR>" & vbCrLf
Next i
vb2html = tmpCode
End Function

Conclusion :


C'est très simple, mais ca va vite !

Codes Sources

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.