Heim > Java > javaLernprogramm > Hauptteil

Analyse der Dateikonvertierung im JTD-Format

巴扎黑
Freigeben: 2017-06-26 09:58:24
Original
4237 Leute haben es durchsucht

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格式文件是由日本的文字处理软件一太郎生成的文件格式
Nach dem Login kopieren

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:

Analyse der Dateikonvertierung im JTD-Format

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
Nach dem Login kopieren
Jeder achtet auf die 10, die eine Kennung ist. 10 bedeutet, dass die Datei im JTD-Format in eine Datei im TXT-Format konvertiert wird , Sie müssen 10 durch andere Bezeichner ersetzen. Das Peinliche ist jedoch, dass wir kein bestimmtes Dokument gefunden haben, das erklärt, welche Zahl welches Dokument darstellt, und dann habe ich es mit 0 bis 100 versucht, und es kamen viele unordentliche Formate heraus. Das einzig Nützliche war 10, was bedeutet, dass nur Dateien im JTD-Format in Dateien im TXT-Format konvertiert werden können. In diesem Fall sind die Bilder in der Originaldatei verschwunden, aber unsere Aufgabe besteht darin, den Dateiinhalt zu lesen und einzugeben Solr zum Abrufen. Wenn also kein Bild vorhanden ist, wird es auch kein Bild geben. Später haben wir diese Methode übernommen, um das Problem zu lösen.

Mit dem obigen Skript können Sie jtd-Dateien ohne Passwörter in txt-Dateien konvertieren. Das Peinlichste ist jedoch, dass unsere Dateien im Jtd-Format Passwörter haben, aber zum Glück wurde es am Ende gelöst. Ich habe damals vergessen, wie man es löst, aber die Lösung lautet wie folgt:

//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
Nach dem Login kopieren
Nachdem das Skript abgeschlossen ist, klicken Sie einfach auf „Ausführen“, um die

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
Nach dem Login kopieren

Durch die obige Reihe von Schritten kann die JTD-Datei erfolgreich in eine TXT-Datei konvertiert werden, es gibt jedoch mehrere Probleme:

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);
   }
}
Nach dem Login kopieren

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.

  1. 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.

  2. 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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage