In dem Projekt, mit dem ich seit Ende des Jahres beschäftigt bin, ist das Modul, für das ich hauptsächlich verantwortlich bin, der Dateiparsing-Teil. Dabei habe ich alle möglichen Fehler und Probleme gemacht Jetzt habe ich alle Teile des Projekts zusammengestellt, um sie später als Referenz zu verwenden. Zu den wichtigsten Dokumenten, die in diesem Projekt analysiert werden, gehören Office-Dateien, CSV, RTF, TXT, JTD und E-Mails in den Formaten eml, msg und pst sowie bei der Dekomprimierung des Pakets gibt es tatsächlich eine Datei im mlf-Format. Nach meiner Recherche und der Recherche der Firmenchefs kann ich das jedoch nicht überwinden Vorerst ist es schwierig, daher kann ich die Datei vorerst nur in diesem Format aufgeben, und es wurden keine anderen Analysen durchgeführt. Ich werde sie alle später einzeln zusammenfassen Beim Parsen verwende ich Tika von Apache.
Heute werfen wir zunächst einen Blick auf die Analyse dieser JTD-Datei. Einige Leute wissen möglicherweise nicht, was diese JTD-Datei ist:
jtd格式文件是由日本的文字处理软件一太郎生成的文件格式
Es kann sein verstanden als jtd-Format. Die Datei ist das Wort, das wir normalerweise verwenden. Sie müssen nur die Ichitaro-Software verwenden, um sie zu bearbeiten und zu öffnen:
Ich habe diese Anforderung gerade gesehen. Es war mir sehr peinlich. Es ist eine japanische Software, die ich nicht einmal nachschlagen konnte Stackoverflow. Dank eines großen Chefs im Unternehmen, der Japanisch lesen und verstehen kann. Die Website-Adresse lautet http://d.hatena.ne.jp/satorujimori/1172549793 >
. Die Lösung besteht darin, das VBS-Skript zum Konvertieren von jtd zu verwenden. Die Formatdatei wird in eine TXT-Datei konvertiert und dann wird die entsprechende TXT-Datei analysiert, um den Inhalt zu erhalten. Das Skript auf der Website lautet wie folgt://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
//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
spezifische jtd-Datei in eine txt-Datei zu konvertieren Verarbeiten Sie dann einfach die TXT-Datei, um den Inhalt zu extrahieren (die Inhaltsextraktion von TXT-Formatdateien wird später in einem anderen Artikel erläutert).
Das obige Problem wurde gelöst, aber es gibt immer noch ein Problem. Ich kann nicht für alle JTD-Dateien eine Skriptdatei erstellen. Außerdem weiß ich nicht, welche Dateien der Kunde hat Ich füge es zu vbs hinzu. Obwohl ich die Syntax von VBS nicht kenne, habe ich es dennoch gemäß den Angaben im Internet geschrieben > Wobei a0 den Pfad der JTD-Datei darstellt, A1 den Pfad der zu generierenden TXT-Formatdatei angibt und A2 das Kennwort der JTD-Datei angibt. Tatsächlich handelt es sich um den Prozess der Übergabe von Parametern zum Aufrufen der Funktion. Nachdem das Skript perfektioniert ist, geht es darum, Java zum Aufrufen des VBS-Skripts zu verwenden. Die Antwort auf diese Frage lautet wie folgt: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
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); } }
Der Aufruf des VBS-Skripts über das Java-Programm gibt kein a zurück Wert, der angibt, ob die TXT-Datei tatsächlich generiert wurde. Meine Methode besteht darin, nach einer bestimmten Anzahl von Malen zu überprüfen, ob die TXT-Datei generiert wurde Es wird festgestellt, dass die Konvertierung fehlgeschlagen ist. Die Häufigkeit wird anhand der Dateigröße ermittelt, z. B. 10 Meilen. Die Datei wird insgesamt 10 mal lang überprüft Dies ist Zeitverschwendung beim Ausprobieren des Passworts, und die Datei ist möglicherweise relativ groß oder die Maschinenkonfiguration ist nicht gut genug. Ursprünglich war es möglich, eine TXT-Datei zu generieren, aber nach der Überprüfung war dies der Fall Es wurde direkt festgestellt, dass es nicht korrekt konvertiert werden konnte.
Jedes Mal, wenn Sie das VBS-Skript ausführen, wird die Ichitaro-Software geöffnet. Wenn das Passwort falsch ist, wird a Auf dem Server, auf dem die Anwendung bereitgestellt wird, wird ein Windows-Fehler-Popup-Fenster angezeigt. Der Kunde kann das Itaro-Programm und die Fehlermeldungen jedoch deutlich sehen. Dies ist eine sehr peinliche Sache.
Wenn die JTD-Datei zu groß ist, beispielsweise wenn die Datei 30 MB erreicht, ist die Skriptkonvertierungsgeschwindigkeit sehr langsam. In Frage 2 wurde auch erwähnt, dass der Kunde während des Dateikonvertierungsprozesses Folgendes tun kann: Das Ichitaro-Programm wird auf dem Server angezeigt. Wenn der Kunde Itaro in diesem Zeitraum direkt beendet, schlägt die Dateikonvertierung definitiv fehl.
Die oben genannten Probleme wurden noch nicht gelöst Wird später mehr sein. Dies hängt von der Nutzung nach der Bereitstellung beim Kunden ab. Wenn die Dateien im JTD-Format beim Kunden alle weniger als 10 MB groß sind, sollte es kein großes Problem geben Der Konvertierungsprozess wird definitiv langsam sein und es besteht immer das Risiko, dass die Ichitaro-Software während des Konvertierungsprozesses abstürzt. Die konkrete Situation hängt von der Testsituation des Kunden ab.
Das ist jetzt alles über die Dateianalyse im JTD-Format. Was die Extraktion von Inhalten nach der Konvertierung von Dateien im JTD-Format in Dateien im TXT-Format betrifft, werde ich später darüber schreiben.
Das obige ist der detaillierte Inhalt vonAnalyse der Dateikonvertierung im JTD-Format. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!