Accueil > > > COLORIAGE SYNTHAXIQUE D'UN CODE VB
COLORIAGE SYNTHAXIQUE D'UN CODE VB
Information sur la source
Description
Pour colorier un code de VB dans un richtextbox, il est dépendant du control mais la prochaine version qui n'est pas très fiable n'aura plus besoin il reconnait entre les "", les (), et les keyWord Mettez sa dans un module
Source
- '*****************************************
- ' *
- 'Coloriage shythaxique selon max *
- 'En cas de problème ou de modification *
- 'Contacter a max12@iquebec.com *
- 'SVP envoyer les modif par mail *
- 'N'éffacer pas les commentaires SVP *
- 'Bug à réglé si vous trouver la solution *
- 'Il serais bon de me m'envoyer les modif *
- ' *
- '*****************************************
- Public a As Long, LaCouleur As Long
- Public NoColorise As Boolean, InGuimette As Boolean, InParenthèse As Boolean, InComment As Boolean
- Public LeTexteRTF As String, Texte1 As String, Debut As Long, RtfBox As RichTextBox
- Declare Function GetTickCount Lib "kernel32" () As Long
- Private Const Entete = "{\rtf1\ansi\ansicpg1252\deff0\deflang3084{\fonttbl{\f0\fnil\fcharset0 Courier New;}}" & vbCrLf & "{\colortbl ;\red0\green0\blue255;\red255\green0\blue0;\red0\green128\blue0;}"
- Public Function TransfertRTF()
- On Error Resume Next
- NoColorise = False
- InComment = False
- a = 0
- InGuimette = False
- InParenthèse = False
- Texte1 = RtfBox.Text
- LeTexteRTF = Entete & vbCrLf & "\viewkind4\uc1\pard\fs20"
- Debut = GetTickCount
- Do
- a = a + 1
- '========================
- 'Détecte les keywords
- If Mid(Texte1, a, 2) = "If" Or Mid(Texte1, a, 2) = "As" Or Mid(Texte1, a, 2) = "Do" Or Mid(Texte1, a, 2) = "In" Or Mid(Texte1, a, 2) = "Is" Or Mid(Texte1, a, 2) = "On" Or Mid(Texte1, a, 2) = "Or" Or Mid(Texte1, a, 2) = "To" Then
- If IsCompleteWord(2, Mid(Texte1, a - 1, Len(Texte1))) = True Then
- If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf1 "
- If InComment = True And InGuimette = True Then LeTexteRTF = LeTexteRTF & "\cf3 "
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 2)
- If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf0 "
- a = a + 1
- Else
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
- End If
- ElseIf Mid(Texte1, a, 3) = "End" Or Mid(Texte1, a, 3) = "Sub" Or Mid(Texte1, a, 3) = "Dim" Or Mid(Texte1, a, 3) = "Xor" Or Mid(Texte1, a, 3) = "Dim" Or Mid(Texte1, a, 3) = "Tab" Or Mid(Texte1, a, 3) = "Set" Or Mid(Texte1, a, 3) = "Get" Or Mid(Texte1, a, 3) = "Let" Or Mid(Texte1, a, 3) = "New" Or Mid(Texte1, a, 3) = "Imp" Or Mid(Texte1, a, 3) = "For" Or Mid(Texte1, a, 3) = "Eqv" Or Mid(Texte1, a, 3) = "And" Or Mid(Texte1, a, 3) = "Lib" Then
- If IsCompleteWord(3, Mid(Texte1, a - 1, Len(Texte1))) = True Then
- If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf1 "
- If InComment = True And InGuimette = True Then LeTexteRTF = LeTexteRTF & "\cf3 "
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 3)
- If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf0 "
- a = a + 2
- Else
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
- End If
- ElseIf Mid(Texte1, a, 4) = "Then" Or Mid(Texte1, a, 4) = "Else" Or Mid(Texte1, a, 4) = "Base" Or Mid(Texte1, a, 4) = "Byte" Or Mid(Texte1, a, 4) = "Call" Or Mid(Texte1, a, 4) = "Case" Or Mid(Texte1, a, 4) = "CCcur" Or Mid(Texte1, a, 4) = "CDbl" Or Mid(Texte1, a, 4) = "CDec" Or Mid(Texte1, a, 4) = "CInt" Or Mid(Texte1, a, 4) = "CLng" Or Mid(Texte1, a, 4) = "CStr" Or _
- Mid(Texte1, a, 4) = "CVar" Or Mid(Texte1, a, 4) = "Enum" Or Mid(Texte1, a, 4) = "Line" Or Mid(Texte1, a, 4) = "Lock" Or Mid(Texte1, a, 4) = "Loop" Or Mid(Texte1, a, 4) = "LSet" Or Mid(Texte1, a, 4) = "Name" Or Mid(Texte1, a, 4) = "Next" Or Mid(Texte1, a, 4) = "Open" Or Mid(Texte1, a, 4) = "RSet" Or Mid(Texte1, a, 4) = "Seek" Or Mid(Texte1, a, 4) = "Stop" Or Mid(Texte1, a, 4) = "True" Or Mid(Texte1, a, 4) = "Type" Or Mid(Texte1, a, 4) = "Wend" Or Mid(Texte1, a, 4) = "With" Or Mid(Texte1, a, 4) = "Long" Or Mid(Texte1, a, 4) = "Goto" Or Mid(Texte1, a, 4) = "Read" Or Mid(Texte1, a, 4) = "Like" Then
- If IsCompleteWord(4, Mid(Texte1, a - 1, Len(Texte1))) = True Then
- If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf1 "
- If InComment = True And InGuimette = True Then LeTexteRTF = LeTexteRTF & "\cf3 "
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 4)
- If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf0 "
- a = a + 3
- Else
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
- End If
- ElseIf Mid(Texte1, a, 5) = "Const" Or Mid(Texte1, a, 5) = "Alias" Or Mid(Texte1, a, 5) = "ByVal" Or Mid(Texte1, a, 5) = "CBool" Or Mid(Texte1, a, 5) = "CByte" Or Mid(Texte1, a, 5) = "CDate" Or Mid(Texte1, a, 5) = "Close" Or Mid(Texte1, a, 5) = "CVErr" Or Mid(Texte1, a, 5) = "Erase" Or Mid(Texte1, a, 5) = "Error" Or Mid(Texte1, a, 5) = "False" Or Mid(Texte1, a, 5) = "GoSub" Or Mid(Texte1, a, 5) = "Input" Or Mid(Texte1, a, 5) = "Print" Or Mid(Texte1, a, 5) = "Write" Or Mid(Texte1, a, 5) = "InStr" Or Mid(Texte1, a, 5) = "ByRef" Then
- If IsCompleteWord(5, Mid(Texte1, a - 1, Len(Texte1))) = True Then
- If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf1 "
- If InComment = True And InGuimette = True Then LeTexteRTF = LeTexteRTF & "\cf3 "
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 5)
- If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf0 "
- a = a + 4
- Else
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
- End If
- ElseIf Mid(Texte1, a, 6) = "ElseIf" Or Mid(Texte1, a, 6) = "Binary" Or Mid(Texte1, a, 6) = "DefCur" Or Mid(Texte1, a, 6) = "DefDbl" Or Mid(Texte1, a, 6) = "DefDec" Or _
- Mid(Texte1, a, 6) = "DefInt" Or Mid(Texte1, a, 6) = "DefLng" Or Mid(Texte1, a, 6) = "DefObj" Or Mid(Texte1, a, 6) = "DefSng" Or Mid(Texte1, a, 6) = "DefStr" Or Mid(Texte1, a, 6) = "DefVar" Or Mid(Texte1, a, 6) = "Double" Or Mid(Texte1, a, 6) = "Object" Or Mid(Texte1, a, 6) = "Option" Or Mid(Texte1, a, 6) = "Output" Or Mid(Texte1, a, 6) = "Public" Or Mid(Texte1, a, 6) = "Random" Or Mid(Texte1, a, 6) = "Resume" Or Mid(Texte1, a, 6) = "Return" Or Mid(Texte1, a, 6) = "Select" Or Mid(Texte1, a, 6) = "Single" Or Mid(Texte1, a, 6) = "Static" Or Mid(Texte1, a, 6) = "String" Or Mid(Texte1, a, 6) = "UBound" Or Mid(Texte1, a, 6) = "Unlock" Or Mid(Texte1, a, 6) = "ElseIf" Or Mid(Texte1, a, 6) = "Decimal" Or Mid(Texte1, a, 6) = "LBound" Or Mid(Texte1, a, 6) = "Global" Or Mid(Texte1, a, 6) = "Output" Or Mid(Texte1, a, 6) = "Resume" Then
- If IsCompleteWord(6, Mid(Texte1, a - 1, Len(Texte1))) = True Then
- If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf1 "
- If InComment = True And InGuimette = True Then LeTexteRTF = LeTexteRTF & "\cf3 "
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 6)
- If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf0 "
- a = a + 5
- Else
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
- End If
- ElseIf Mid(Texte1, a, 7) = "Boolean" Or Mid(Texte1, a, 7) = "Compare" Or Mid(Texte1, a, 7) = "Declare" Or Mid(Texte1, a, 7) = "DefBool" Or Mid(Texte1, a, 7) = "DefByte" Or Mid(Texte1, a, 7) = "DefDate" Or Mid(Texte1, a, 7) = "Integer" Or Mid(Texte1, a, 7) = "Private" Or Mid(Texte1, a, 7) = "Nothing" Or Mid(Texte1, a, 7) = "Variant" Then
- If IsCompleteWord(7, Mid(Texte1, a - 1, Len(Texte1))) = True Then
- If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf1 "
- If InComment = True And InGuimette = True Then LeTexteRTF = LeTexteRTF & "\cf3 "
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 7)
- If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf0 "
- a = a + 6
- Else
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
- End If
- ElseIf Mid(Texte1, a, 8) = "Currency" Or Mid(Texte1, a, 8) = "Function" Or Mid(Texte1, a, 8) = "Explicit" Then
- If IsCompleteWord(8, Mid(Texte1, a - 1, Len(Texte1))) = True Then
- If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf1 "
- If InComment = True And InGuimette = True Then LeTexteRTF = LeTexteRTF & "\cf3 "
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 8)
- If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf0 "
- a = a + 7
- Else
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
- End If
- Else
- Select Case Mid(Texte1, a, 1)
- 'Début du coloriage des guimette
- Case """"
- If InComment = False Then
- If InGuimette = False Then
- LeTexteRTF = LeTexteRTF & "\cf3 "
- InGuimette = True
- Else
- NoColorise = True
- LaCouleur = vbBlack
- InGuimette = False
- LeTexteRTF = LeTexteRTF & "\cf3 "
- LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
- End If
- End If
- 'Fin du coloriager des guilmette
- 'Début du coloriage des Parathèse
- Case "'"
- LeTexteRTF = LeTexteRTF & "\cf3\i "
- InComment = True
- Case Chr(10)
- LeTexteRTF = LeTexteRTF & vbCrLf & "\par "
- LeTexteRTF = LeTexteRTF & "\cf0\i0 "
- InComment = False
- 'Fin du coloriager des Commentaire
- End Select
- If NoColorise = False Then LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
- End If
- '========================
- NoColorise = False
- cLog.Trace "Presque terminer"
- Form1.Caption = Int((a / Len(Texte1)) * 100)
- If a >= Len(Texte1) Then LeTexteRTF = LeTexteRTF & vbCrLf & "}": RtfBox.TextRTF = LeTexteRTF: Exit Function 'RtfBox.TextRTF = LeTexteRTF: Form1.Caption = (GetTickCount - Debut) / 1000
- cLog.Trace "Terminer"
- Loop
- End Function
- Public Function IsCompleteWord(NormLong As Long, Texte As String) As Boolean
- If Len(Left(Right(Texte, Len(Texte) - 1), InStr(Right(Texte, Len(Texte) - 1), " ") - 1)) = NormLong Or Len(Left(Right(Texte, Len(Texte) - 1), InStr(Right(Texte, Len(Texte) - 1), Chr(13)) - 1)) = NormLong Or Len(Left(Right(Texte, Len(Texte) - 1), InStr(Right(Texte, Len(Texte) - 1), ")") - 1)) = NormLong Then
- If Left(Texte, 1) = " " Or Left(Texte, 1) = vbTab Or Left(Texte, 1) = Chr(10) Then
- IsCompleteWord = True
- End If
- Else
- IsCompleteWord = False
- End If
- End Function
'*****************************************
' *
'Coloriage shythaxique selon max *
'En cas de problème ou de modification *
'Contacter a max12@iquebec.com *
'SVP envoyer les modif par mail *
'N'éffacer pas les commentaires SVP *
'Bug à réglé si vous trouver la solution *
'Il serais bon de me m'envoyer les modif *
' *
'*****************************************
Public a As Long, LaCouleur As Long
Public NoColorise As Boolean, InGuimette As Boolean, InParenthèse As Boolean, InComment As Boolean
Public LeTexteRTF As String, Texte1 As String, Debut As Long, RtfBox As RichTextBox
Declare Function GetTickCount Lib "kernel32" () As Long
Private Const Entete = "{\rtf1\ansi\ansicpg1252\deff0\deflang3084{\fonttbl{\f0\fnil\fcharset0 Courier New;}}" & vbCrLf & "{\colortbl ;\red0\green0\blue255;\red255\green0\blue0;\red0\green128\blue0;}"
Public Function TransfertRTF()
On Error Resume Next
NoColorise = False
InComment = False
a = 0
InGuimette = False
InParenthèse = False
Texte1 = RtfBox.Text
LeTexteRTF = Entete & vbCrLf & "\viewkind4\uc1\pard\fs20"
Debut = GetTickCount
Do
a = a + 1
'========================
'Détecte les keywords
If Mid(Texte1, a, 2) = "If" Or Mid(Texte1, a, 2) = "As" Or Mid(Texte1, a, 2) = "Do" Or Mid(Texte1, a, 2) = "In" Or Mid(Texte1, a, 2) = "Is" Or Mid(Texte1, a, 2) = "On" Or Mid(Texte1, a, 2) = "Or" Or Mid(Texte1, a, 2) = "To" Then
If IsCompleteWord(2, Mid(Texte1, a - 1, Len(Texte1))) = True Then
If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf1 "
If InComment = True And InGuimette = True Then LeTexteRTF = LeTexteRTF & "\cf3 "
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 2)
If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf0 "
a = a + 1
Else
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
End If
ElseIf Mid(Texte1, a, 3) = "End" Or Mid(Texte1, a, 3) = "Sub" Or Mid(Texte1, a, 3) = "Dim" Or Mid(Texte1, a, 3) = "Xor" Or Mid(Texte1, a, 3) = "Dim" Or Mid(Texte1, a, 3) = "Tab" Or Mid(Texte1, a, 3) = "Set" Or Mid(Texte1, a, 3) = "Get" Or Mid(Texte1, a, 3) = "Let" Or Mid(Texte1, a, 3) = "New" Or Mid(Texte1, a, 3) = "Imp" Or Mid(Texte1, a, 3) = "For" Or Mid(Texte1, a, 3) = "Eqv" Or Mid(Texte1, a, 3) = "And" Or Mid(Texte1, a, 3) = "Lib" Then
If IsCompleteWord(3, Mid(Texte1, a - 1, Len(Texte1))) = True Then
If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf1 "
If InComment = True And InGuimette = True Then LeTexteRTF = LeTexteRTF & "\cf3 "
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 3)
If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf0 "
a = a + 2
Else
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
End If
ElseIf Mid(Texte1, a, 4) = "Then" Or Mid(Texte1, a, 4) = "Else" Or Mid(Texte1, a, 4) = "Base" Or Mid(Texte1, a, 4) = "Byte" Or Mid(Texte1, a, 4) = "Call" Or Mid(Texte1, a, 4) = "Case" Or Mid(Texte1, a, 4) = "CCcur" Or Mid(Texte1, a, 4) = "CDbl" Or Mid(Texte1, a, 4) = "CDec" Or Mid(Texte1, a, 4) = "CInt" Or Mid(Texte1, a, 4) = "CLng" Or Mid(Texte1, a, 4) = "CStr" Or _
Mid(Texte1, a, 4) = "CVar" Or Mid(Texte1, a, 4) = "Enum" Or Mid(Texte1, a, 4) = "Line" Or Mid(Texte1, a, 4) = "Lock" Or Mid(Texte1, a, 4) = "Loop" Or Mid(Texte1, a, 4) = "LSet" Or Mid(Texte1, a, 4) = "Name" Or Mid(Texte1, a, 4) = "Next" Or Mid(Texte1, a, 4) = "Open" Or Mid(Texte1, a, 4) = "RSet" Or Mid(Texte1, a, 4) = "Seek" Or Mid(Texte1, a, 4) = "Stop" Or Mid(Texte1, a, 4) = "True" Or Mid(Texte1, a, 4) = "Type" Or Mid(Texte1, a, 4) = "Wend" Or Mid(Texte1, a, 4) = "With" Or Mid(Texte1, a, 4) = "Long" Or Mid(Texte1, a, 4) = "Goto" Or Mid(Texte1, a, 4) = "Read" Or Mid(Texte1, a, 4) = "Like" Then
If IsCompleteWord(4, Mid(Texte1, a - 1, Len(Texte1))) = True Then
If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf1 "
If InComment = True And InGuimette = True Then LeTexteRTF = LeTexteRTF & "\cf3 "
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 4)
If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf0 "
a = a + 3
Else
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
End If
ElseIf Mid(Texte1, a, 5) = "Const" Or Mid(Texte1, a, 5) = "Alias" Or Mid(Texte1, a, 5) = "ByVal" Or Mid(Texte1, a, 5) = "CBool" Or Mid(Texte1, a, 5) = "CByte" Or Mid(Texte1, a, 5) = "CDate" Or Mid(Texte1, a, 5) = "Close" Or Mid(Texte1, a, 5) = "CVErr" Or Mid(Texte1, a, 5) = "Erase" Or Mid(Texte1, a, 5) = "Error" Or Mid(Texte1, a, 5) = "False" Or Mid(Texte1, a, 5) = "GoSub" Or Mid(Texte1, a, 5) = "Input" Or Mid(Texte1, a, 5) = "Print" Or Mid(Texte1, a, 5) = "Write" Or Mid(Texte1, a, 5) = "InStr" Or Mid(Texte1, a, 5) = "ByRef" Then
If IsCompleteWord(5, Mid(Texte1, a - 1, Len(Texte1))) = True Then
If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf1 "
If InComment = True And InGuimette = True Then LeTexteRTF = LeTexteRTF & "\cf3 "
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 5)
If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf0 "
a = a + 4
Else
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
End If
ElseIf Mid(Texte1, a, 6) = "ElseIf" Or Mid(Texte1, a, 6) = "Binary" Or Mid(Texte1, a, 6) = "DefCur" Or Mid(Texte1, a, 6) = "DefDbl" Or Mid(Texte1, a, 6) = "DefDec" Or _
Mid(Texte1, a, 6) = "DefInt" Or Mid(Texte1, a, 6) = "DefLng" Or Mid(Texte1, a, 6) = "DefObj" Or Mid(Texte1, a, 6) = "DefSng" Or Mid(Texte1, a, 6) = "DefStr" Or Mid(Texte1, a, 6) = "DefVar" Or Mid(Texte1, a, 6) = "Double" Or Mid(Texte1, a, 6) = "Object" Or Mid(Texte1, a, 6) = "Option" Or Mid(Texte1, a, 6) = "Output" Or Mid(Texte1, a, 6) = "Public" Or Mid(Texte1, a, 6) = "Random" Or Mid(Texte1, a, 6) = "Resume" Or Mid(Texte1, a, 6) = "Return" Or Mid(Texte1, a, 6) = "Select" Or Mid(Texte1, a, 6) = "Single" Or Mid(Texte1, a, 6) = "Static" Or Mid(Texte1, a, 6) = "String" Or Mid(Texte1, a, 6) = "UBound" Or Mid(Texte1, a, 6) = "Unlock" Or Mid(Texte1, a, 6) = "ElseIf" Or Mid(Texte1, a, 6) = "Decimal" Or Mid(Texte1, a, 6) = "LBound" Or Mid(Texte1, a, 6) = "Global" Or Mid(Texte1, a, 6) = "Output" Or Mid(Texte1, a, 6) = "Resume" Then
If IsCompleteWord(6, Mid(Texte1, a - 1, Len(Texte1))) = True Then
If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf1 "
If InComment = True And InGuimette = True Then LeTexteRTF = LeTexteRTF & "\cf3 "
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 6)
If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf0 "
a = a + 5
Else
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
End If
ElseIf Mid(Texte1, a, 7) = "Boolean" Or Mid(Texte1, a, 7) = "Compare" Or Mid(Texte1, a, 7) = "Declare" Or Mid(Texte1, a, 7) = "DefBool" Or Mid(Texte1, a, 7) = "DefByte" Or Mid(Texte1, a, 7) = "DefDate" Or Mid(Texte1, a, 7) = "Integer" Or Mid(Texte1, a, 7) = "Private" Or Mid(Texte1, a, 7) = "Nothing" Or Mid(Texte1, a, 7) = "Variant" Then
If IsCompleteWord(7, Mid(Texte1, a - 1, Len(Texte1))) = True Then
If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf1 "
If InComment = True And InGuimette = True Then LeTexteRTF = LeTexteRTF & "\cf3 "
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 7)
If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf0 "
a = a + 6
Else
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
End If
ElseIf Mid(Texte1, a, 8) = "Currency" Or Mid(Texte1, a, 8) = "Function" Or Mid(Texte1, a, 8) = "Explicit" Then
If IsCompleteWord(8, Mid(Texte1, a - 1, Len(Texte1))) = True Then
If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf1 "
If InComment = True And InGuimette = True Then LeTexteRTF = LeTexteRTF & "\cf3 "
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 8)
If InComment = False And InGuimette = False Then LeTexteRTF = LeTexteRTF & "\cf0 "
a = a + 7
Else
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
End If
Else
Select Case Mid(Texte1, a, 1)
'Début du coloriage des guimette
Case """"
If InComment = False Then
If InGuimette = False Then
LeTexteRTF = LeTexteRTF & "\cf3 "
InGuimette = True
Else
NoColorise = True
LaCouleur = vbBlack
InGuimette = False
LeTexteRTF = LeTexteRTF & "\cf3 "
LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
End If
End If
'Fin du coloriager des guilmette
'Début du coloriage des Parathèse
Case "'"
LeTexteRTF = LeTexteRTF & "\cf3\i "
InComment = True
Case Chr(10)
LeTexteRTF = LeTexteRTF & vbCrLf & "\par "
LeTexteRTF = LeTexteRTF & "\cf0\i0 "
InComment = False
'Fin du coloriager des Commentaire
End Select
If NoColorise = False Then LeTexteRTF = LeTexteRTF & Mid(Texte1, a, 1)
End If
'========================
NoColorise = False
cLog.Trace "Presque terminer"
Form1.Caption = Int((a / Len(Texte1)) * 100)
If a >= Len(Texte1) Then LeTexteRTF = LeTexteRTF & vbCrLf & "}": RtfBox.TextRTF = LeTexteRTF: Exit Function 'RtfBox.TextRTF = LeTexteRTF: Form1.Caption = (GetTickCount - Debut) / 1000
cLog.Trace "Terminer"
Loop
End Function
Public Function IsCompleteWord(NormLong As Long, Texte As String) As Boolean
If Len(Left(Right(Texte, Len(Texte) - 1), InStr(Right(Texte, Len(Texte) - 1), " ") - 1)) = NormLong Or Len(Left(Right(Texte, Len(Texte) - 1), InStr(Right(Texte, Len(Texte) - 1), Chr(13)) - 1)) = NormLong Or Len(Left(Right(Texte, Len(Texte) - 1), InStr(Right(Texte, Len(Texte) - 1), ")") - 1)) = NormLong Then
If Left(Texte, 1) = " " Or Left(Texte, 1) = vbTab Or Left(Texte, 1) = Chr(10) Then
IsCompleteWord = True
End If
Else
IsCompleteWord = False
End If
End Function
Conclusion
Le code n'est pas très claire mais pour la prochaine génération du module indépendant, je vais me reprendre.
Historique
- 07 juillet 2009 23:08:49 :
- Correction, merci a PiWEE
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Quand faut y aller [ par Xaviou ]
Tout d'abord, chapeau, pour le site.Ensuite, comme on est censés être sur un forum VB, je vais poser une question à propos de VB.Je voulais juste savo
Pb de compilation [ par Xaviou ]
Salut à tousJ'ai un petit problème à la compilation d'un petit jeu de cartes genre FreeCell.Lorsque je lance la création de l'EXE, VB compile, puis, a
Formation VB [ par Julien ]
Bonjour à tous,souhaitant suivre une formation à Visual Basic (hé oui, j'en ai besoin :)), je suis interressé par celle proposée par le CNED (VB-Delph
créer un tableau [ par maryem ]
salut! je suis débutante en Vb et1- je voudrais savoir comment créer un tableau pour y stocker des valeurs constantes2- je voudrais savoir comment fa
Disquettes d'installation VB version 6 [ par Mzk ]
Je veux bien connaitre toute la procedure pour créer des disquettesd'installation d'un logiciel développésous VB version 6
GetEnvironmentVariable [ par Boldor ]
Bonjour,Je voudrai recuperer la valeur des variables d'environnement a partir d'un programme VB.Comment utiliser la fonction GetEnvironmentVariable ?Y
connexion ODBC [ par nds ]
Je voudrais appeler un etat crystal report7 (.rpt) à partir d'un controle activeX "CrystalReport" dans VB et pouvoir modifier le requete SQL qui alime
URGENT Gestion des interface LTP et COM d un PC sous VB [ par ponch ]
-quel sont les differents modes d'utilisation du port parallele sur un PC ?-Presenter succinctement le fonctionnement du port serie-VB ne possedant pa
|
Derniers Blogs
XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|