Dans le projet sur lequel je m'occupe depuis la fin de l'année, le module dont je suis principalement responsable est la partie analyse des fichiers. Quand je le faisais, j'ai fait toutes sortes d'erreurs et au moins des ennuis. c'est enfin terminé. Maintenant, j'ai rassemblé toutes les parties du projet. Résumons l'analyse de ces fichiers pour référence future. Les principaux documents analysés dans ce projet incluent les fichiers office, pdf, csv, rtf, txt, jtd et. emails aux formats eml, msg et pst, ainsi que compression rar et zip Lors de la décompression du package, il existe effectivement un fichier au format mlf Cependant, après mes recherches et les recherches des patrons de l'entreprise, je n'arrive pas à m'en sortir. la difficulté pour le moment, je ne peux donc qu'abandonner le fichier dans ce format pour le moment, et d'autres analyses n'ont pas été faites, principalement celles-ci, je les résumerai toutes un par un plus tard. analyse de fichiers, j'utilise Tika d'Apache.
Aujourd'hui, nous allons d'abord examiner l'analyse de ce fichier jtd Certaines personnes ne savent peut-être pas ce qu'est ce fichier jtd :
jtd格式文件是由日本的文字处理软件一太郎生成的文件格式
Cela peut être. compris comme format jtd Le fichier est le mot que nous utilisons habituellement. Il vous suffit d'utiliser le logiciel Ichitaro pour l'éditer et l'ouvrir. Laissez-moi vous montrer à quoi ressemble ce logiciel Ichitaro :
<.> Je viens de voir cette exigence, j'étais très gêné à l'époque. Comment faire ça ? C'est un logiciel japonais, je ne l'ai pas compris même en recherchant des informations dessus, je ne l'ai pas trouvé même sur Baidu et. Stackoverflow. Merci à un grand patron de l'entreprise qui sait lire et comprendre le japonais. Ce patron a trouvé une solution sur un site Web japonais. L'adresse du site Web est http://d.hatena.ne.jp/satorufujimori/20070227/1172549793. La solution est d'utiliser un script vbs pour convertir jtd. Le fichier de format est converti en fichier txt, puis le txt correspondant est analysé pour obtenir le contenu. Le script sur le site Web est le suivant :
<.>Tout le monde fait attention au 10, qui est un identifiant. 10 signifie que le format jtd sera Le fichier est converti en fichier au format txt Si vous souhaitez convertir le fichier au format jtd en un fichier dans d'autres formats. , vous devez remplacer 10 par d'autres identifiants. Cependant, ce qui est embarrassant, c'est que nous n'avons pas trouvé de document spécifique expliquant quel numéro représente quel document, puis j'ai essayé de 0 à 100, et beaucoup de formats désordonnés sont sortis. Le seul utile était 10, ce qui signifie qu'il ne peut convertir que les fichiers au format jtd en fichiers au format txt. Dans ce cas, les images du fichier d'origine seront toutes disparues, mais notre tâche consiste à lire le contenu du fichier et à le saisir. Solr pour la récupération, donc s'il n'y a pas d'image, il n'y aura pas d'image. Plus tard, nous avons adopté cette méthode pour résoudre le problème.
//taro2txt.vbs Set taro = CreateObject("JXW.Application") taro.Visible = True taro.Documents.Open "c:\taro\a.jtd" taro.ActiveDocument.SaveAs "c:\out\a.txt", "", "", "", 10, "ShiftJIS" //※1 taro.Quit
Une fois le script terminé, cliquez simplement sur Exécuter pour convertir le fichier
spécifique//taro2txt.vbs Set taro = CreateObject("JXW.Application") taro.Visible = True taro.Documents.Open "c:\taro\a.jtd",password//在此处加上密码 taro.ActiveDocument.SaveAs "c:\out\a.txt", "", "", "", 10, "ShiftJIS" //※1 taro.Quit
Le problème ci-dessus a été résolu, mais il y a toujours un problème. Je n'arrive pas à créer un fichier script pour tous les fichiers jtd. De plus, je ne sais pas de quels fichiers le client dispose, alors j'y ai pensé. en l'ajoutant à vbs. Le script passe les paramètres. Bien que je ne connaisse pas la syntaxe de VBS, je l'ai quand même écrit selon ce qui est dit sur Internet :
Où a0 représente le chemin du fichier jtd, a1 indique le chemin du fichier au format txt à générer, et a2 indique le mot de passe du fichier jtd. En fait, c'est le processus de passage de paramètres pour appeler la fonction. Une fois le script perfectionné, il s'agit d'utiliser java pour appeler le script vbs. J'ai trouvé la réponse à cette question sur stackoverflow. La méthode d'appel est la suivante :Option Explicit Dim a0 : a0 = WScript.Arguments(0) Dim a1 : a1 = WScript.Arguments(1) Dim a2 : a2 = WScript.Arguments(2) Dim taro ExchangeFile a0, a1, a2 Sub ExchangeFile(src,dest,password) Set taro = CreateObject("JXW.Application") taro.Visible = True taro.Documents.Open src,password taro.ActiveDocument.SaveAs dest, "", "", "", 10, "" taro.Quit End Sub
Grâce à la série d'étapes ci-dessus, le fichier jtd peut être converti avec succès en fichier txt, mais il y a plusieurs problèmes :
public static void main(String[] args) { try { Runtime.getRuntime().exec( "wscript D:/Send_Mail_updated.vbs" ); } catch( IOException e ) { System.out.println(e); System.exit(0); } }
Si le fichier jtd est trop volumineux, par exemple, lorsque le fichier atteint 30 Mo, la vitesse de conversion du script sera très lente. La question 2 mentionne également que pendant le processus de conversion du fichier, le client peut le faire. le programme Ichitaro est vu sur le serveur, si le client tue directement Itaro pendant cette période, alors la conversion du fichier échouera définitivement
Les problèmes ci-dessus n'ont pas encore été résolus, et là ; sera plus tard. Cela dépend de l'utilisation après le déploiement chez le client. Si les fichiers au format jtd chez le client font tous moins de 10 Mo, il ne devrait pas y avoir de problème particulier. Cependant, si les fichiers dépassent 30 Mo, le nombre de fichiers sera supérieur à 30 Mo. le processus de conversion sera certainement lent. Et il y a toujours le risque que le logiciel Ichitaro soit tué pendant le processus de conversion. La situation spécifique dépend de la situation d'essai du client.
C'est tout pour l'instant sur l'analyse des fichiers au format jtd Quant à l'extraction du contenu après conversion des fichiers au format jtd en fichiers au format txt, j'en parlerai plus tard.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!