Voici un petit code qui m'a fait perde des heures
j'essai tout simplement de lire le sujet d'un pdf. si on ouvre un pdf en format binaire, c'est très facile de trouver le sujet, puisqu'il commence par "/subject".
mais pour un pdf sécurisé, le pdf se trouve avec des centaine de char 0 dans le fichier et VB prend ce char 0 pour un EOF et se refuse de continuer à lire, autant en binaire ou non
j'ai du passer par un petit stratagène pour pas que BV voie ses char 0 et continue à lire.
ok, le code ets pas parfait, puisqu'il y a une possibilité qu'un char 0 soit lu, mais c'est tellement infime et au pire, il donne comme résultat une chaine vide, donc c'est pas si pire. Au pire, il faut tout simplement augmenter la précision du string
Source / Exemple :
Const sujet = "/SUBJECT"
Public Function getDescriptionPDF(strFile As String) As String
Dim texte As String * 10000
Dim trouver As Boolean
Dim position As Integer
Dim compteur As Long
Dim j As Integer
trouver = False
Open strFile For Binary As #1 Len = Len(texte)
compteur = 1
While Not trouver
Get #1, compteur, texte
position = InStr(1, UCase(texte), sujet)
If position <> 0 Then
trouver = True
getDescriptionPDF = Mid(texte, position + Len(sujet) + 2, InStr(position + Len(sujet) + 2, texte, ")") - (position + Len(sujet) + 2))
ElseIf Mid(texte, 1, 1) = Chr(0) And Mid(texte, 9999, 1) = Chr(0) And _
Mid(texte, 500, 1) = Chr(0) And Mid(texte, 10, 1) = Chr(0) And _
Mid(texte, 800, 1) = Chr(0) And Mid(texte, 1000, 1) = Chr(0) And _
Mid(texte, 5000, 1) = Chr(0) And Mid(texte, 7500, 1) = Chr(0) Then
trouver = True
getDescriptionPDF = ""
End If
compteur = compteur + 10000
Wend
Close #1
End Function
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.