L'historique des commandes comme jeu de test Dernière Modification le : 2024-01-13Le ZIP des Ressources On dispose d'un historique de commandes sur une profondeur d'une vingtaine d'année. Chaque commande a été enregistrée manuellement, eet conservée au format PDF Petit nettoyage Une base de données spécifique à la mise au point de l'identification automatique est crée: les colonnes Numeros de commandes et PDF de commande de l'historique sont transférées à cette nouvelle base de données. Un petit nettoyage est nécéssaire: certains PDF sont manquants. D'autres fichiers, présents dans l'archive ont des extensions non-PDF. Ceux que l'on a pu transformer en PDF l'on été et l'enregistrement dans la base de données modifié en conséquence. Ce nettoyage élimine environ 0,4 % des fichiers. Les PDF corrompus Le petit programme en ligne de commande pdfinfo.exe, disponible avec Xpdf pdftotext, cherche à les infos contenues dans le PDF et l'exit code (return value) nous renseigne sur le PDF: si la réponse est autre que zero (La valeur de succès), alors le PDF n'a pas pu être lu... On ne cherche même pas à corriger: on marque que le PDF n'est pas valide dans la base de données. Le nombre de pages J. Winograd nous montre, en vidéo, PDFinfo, en ligne de commande. Il récupère les informations d'un PDF, y compris le nombre de pages, et isole le nombre de pages. Il permet les fichiers batch, programmes et scripts. Lire → Il utilise un tuyau (pipe), ce qui est original, amusant et rapide. La même méthode sera utilisée pour isoler des données comme la réponse de validité du VIES (TVA). ' // A personaliser. Ici, on a défini par ailleurs un RecordSet par une connection à la base de données. ' // La valeur par défaut dans la base de données est 9999. Pour les Record ayant cette valeur, le nombre de page n'a pas encore été documenté. Set oShell = CreateObject("WScript.Shell") Set regExNumerical = New RegExp regExNumerical.Global = true regExNumerical.ignoreCase = true regExNumerical.Pattern = "[^0-9]" sFileName = "MonFichier.txt" ' // A personaliser sDossier = "C:\Users\MonPC\Documents\MonDossier\" ' // A personaliser sDossierLogiciels = "C:\MesLogiciels\" ' // A personaliser sDossierPages = "C:\Users\MonPC\Documents\MonDossier\Pages\" ' // A personaliser, c'est là qu'on met les résultats sFilePath = sDossier & sFileName sFileName_Bat = "MonFichierBat.bat" sFilePath_Bat = sDossier & sFileName sPagesFilePath = sDossierPages & sFileName if RsNumeros("Pages").value = 9999 AND objFSO.FileExists(sPagesFilePath) then objFSO.DeleteFile sFilePath ' // Si un résultat ancien existe, on l'efface if NOT objFSO.FileExists(sPagesFilePath) then objFSO.CreateTextFile sPagesFilePath ' // On crée le fichier à l'avance,car le batch ne le fera pas... sCommand = """" & sDossierLogiciels & "pdfinfo.exe"" " & sArgConfig & " """ & sFilePath & """ | Find /i ""Pages:"" > """ & sPagesFilePath & """ " ' // il faut passer par une commande bat ' // voir : https://help.highbond.com/helpdocs/analytics/125/scripting-guide/en-us/Content/lang_ref/commands/r_execute.htm Set objFile = objFSO.OpenTextFile(sFilePath_Bat, ForWriting, true) ' // 2 = true, le fichier sera crée à la demande objFile.Write sCommand objFile.Close Set objFile = nothing sCommand_Bat = """" & sFilePath_Bat & """ " oShell.Run sCommand_Bat, 0, True End If if objFSO.FileExists(sPagesFilePath) then ' // on lit le fichier contenant le nombre de pages sPages = "" Set objOpen = objFSO.OpenTextFile(sPagesFilePath, ForReading,true) If NOT objOpen.AtEndOfStream then sPages = objOpen.ReadLine objOpen.Close Set objOpen = nothing sPages = trim(regExNumerical.Replace(sPages,"")) ' // on ne conserve que la partie numerique de la réponse if sPages <> "" then if IsNumeric(sPages) then RsNumeros("Pages").value = CInt(sPages) RsNumeros.Update ' // Mise à jour de la base de données End If End If End If Les bons pour accord Les bons pour accord ne portent pas de numeros de commande: on les retire de notre Jeu de test Ces nettoyages successifs retirent environ 9 % de nos commandes Correction manuelle du Jeu d'entrainement. 1/3 des entrées ont un numéro conforme à notre expression régulière de référence et sont lus dans la version texte du PDF de commande (Extraction ou OCR) Quand ce n'est pas conforme, plusieurs causes sont possibles: La saisie manuelle ne reflète pas fidèlement ce que le client a écrit sur la commande. La méthode d'extraction/OCR n'est pas assez performante et pourrait être améliorée. Le bon de commande n'entre pas dans le champs des cas automatisables. Par exemple un numero écrit à la main Précedent Suivant