1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
| Sub test_HTML_Delete_Width_Height()
HTML_Delete_Width_Height myfile
End Sub
Function HTML_Delete_Width_Height(PathSignature)
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim fso, f, ts
Set fso = CreateObject("Scripting.FileSystemObject")
'fso.CreateTextFile "test1.txt" ' Crée un fichier.
Set f = fso.GetFile(PathSignature)
Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
TextStreamTest = ts.ReadAll
ts.Close
On Error GoTo fin
' On crée une expression régulière
Set objRegex = CreateObject("vbscript.regexp") ' On définit le critère qui cherche toute balise HTML
tab_TextStreamTest = Split(TextStreamTest, "<img ", , vbTextCompare)
debut = tab_TextStreamTest(0)
For i = 1 To UBound(tab_TextStreamTest)
tab1_TextStreamTest = Split(tab_TextStreamTest(i), ">", 2, vbTextCompare)
With objRegex
'.Pattern = "(<img.*(width=[^[:space:]]+)|(height=[^[:space:]]+))"
.Pattern = "(width=\S*)|(height=\S*)"
' On fait en sorte que la casse (majuscules/minuscules)soit indifférente
.IgnoreCase = True ' Traitement global (récursif)
.Global = True ' La fonction Test renvoie True si la chaîne
.MultiLine = True
If .test(tab1_TextStreamTest(0)) And InStr(1, tab1_TextStreamTest(0), "Bandeau_Signature_", vbTextCompare) Then
maj = 1
Set objRegMC = .Execute(tab1_TextStreamTest(0))
SupprimerHTML = SupprimerHTML & "<img " & .Replace(tab1_TextStreamTest(0), "") & ">" & tab1_TextStreamTest(1)
Else
SupprimerHTML = SupprimerHTML & "<img " & tab1_TextStreamTest(0) & ">" & tab1_TextStreamTest(1)
End If
End With
Next i
If maj = 1 Then
Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault)
ts.Write debut & SupprimerHTML & fin
ts.Close
End If
Exit Function
fin:
End Function |
Partager