]> gitweb.fperrin.net Git - DictionaryPC.git/blob - src/com/hughes/android/dictionary/engine/CheckDictionariesMain.java
2 types of TokenRow.
[DictionaryPC.git] / src / com / hughes / android / dictionary / engine / CheckDictionariesMain.java
1 package com.hughes.android.dictionary.engine;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.io.PrintWriter;
6 import java.io.RandomAccessFile;
7 import java.util.ArrayList;
8 import java.util.Arrays;
9 import java.util.Collections;
10 import java.util.List;
11
12 import com.hughes.android.dictionary.DictionaryInfo;
13 import com.hughes.android.dictionary.engine.Index.IndexEntry;
14
15
16 public class CheckDictionariesMain {
17
18   public static void main(String[] args) throws IOException {
19     final File dictDir = new File(DictionaryBuilderMain.OUTPUTS);
20     
21     final PrintWriter dictionaryInfoOut = new PrintWriter(new File("../Dictionary/res/raw/dictionary_info.txt"));
22     dictionaryInfoOut.println("# LANG_1\t%LANG_2\tFILENAME\tFILESIZE\tNUM_MAIN_WORDS_1\tNUM_MAIN_WORDS_2\tNUM_ALL_WORDS_1\tNUM_ALL_WORDS_2");
23
24     final File[] files = dictDir.listFiles();
25     Arrays.sort(files);
26     for (final File dictFile : files) {
27       if (!dictFile.getName().endsWith("quickdic")) {
28         continue;
29       }
30       System.out.println(dictFile.getPath());
31       
32       final DictionaryInfo dictionaryInfo = new DictionaryInfo();
33       
34       final RandomAccessFile raf = new RandomAccessFile(dictFile, "r");
35       final Dictionary dict = new Dictionary(raf);
36       
37       dictionaryInfo.uncompressedFilename = dictFile.getName();
38       dictionaryInfo.uncompressedSize = dictFile.length();
39
40       // Print it.
41       final PrintWriter textOut = new PrintWriter(new File(dictFile + ".text"));
42       final List<PairEntry> sorted = new ArrayList<PairEntry>(dict.pairEntries);
43       Collections.sort(sorted);
44       for (final PairEntry pairEntry : sorted) {
45         textOut.println(pairEntry.getRawText(false));
46       }
47       textOut.close();
48       
49       // Find the stats.
50       System.out.println("Stats...");
51       for (int i = 0; i < 2; ++i) {
52         dictionaryInfo.langIsos[i] = dict.indices.get(i).sortLanguage.getIsoCode();
53         final Index index = dict.indices.get(i);
54         for (final IndexEntry indexEntry : index.sortedIndexEntries) {
55           final TokenRow tokenRow = (TokenRow) index.rows.get(indexEntry.startRow);
56           dictionaryInfo.allTokenCounts[i]++; 
57           if (tokenRow.hasMainEntry) {
58             dictionaryInfo.mainTokenCounts[i]++; 
59           }
60         }
61       }
62       
63       raf.close();
64       
65       dictionaryInfoOut.println(dictionaryInfo.toTabSeparatedString());
66       dictionaryInfoOut.flush();
67       System.out.println(dictionaryInfo.toTabSeparatedString() + "\n");
68     }
69     
70     dictionaryInfoOut.close();
71   }
72
73 }