トップページ -> プログラミング -> Java プログラミング入門 -> IE テキストセーブ設定ファイル生成プログラム
[サイトマップへ], [サイト内検索へ]

IE テキストセーブ設定ファイル生成プログラム

IE テキストセーブで,Internet Explorer の「保存」を行うと, HTMLタグで name属性かid属性が指定されている項目のデータが,テキストファイルとして保存されう. 保存されるデータは下記コントロールの入力データ.

データはテキスト形式(タブ区切り)で保存されます。 拡張子は *.ietxt

下記のプログラムは,フリーソフトのIEテキストセーブと同時に使う. IE テキストセーブでの保存ファイルを,簡単に書き換えることができるプログラムである. 値を,所定のWebフォームに入力することを手助けできる.

package hoge.hoge.com;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashMap;
import java.util.StringTokenizer;

/* フリーソフト
 * IEテキストセーブの「保存ファイル」を読み込んで,更新し,書き戻すプログラム
 * 必要な前準備:
 * 1.IEテキストセーブを http://www.onepg.com/web/ie/index.html
 *   からダウンロード
 * 2. c:\ietextsave に展開
 * 3. プログラム中のURLを設定してください.
 * 4. 本プログラムを実行し,IEテキストセーブをの機能で,sample.ietxt という名前で,設定ファイルを保存しておいてください
 *   (このとき,sample.ietxtが存在しないので,実行エラーがでます).
 * 5. write の行のファイル名を適切に設定した後,もう1度実行.この名前でファイルができる(今のプログラムは,単にファイルのコピーと同じこと)
 */
public class IETextSaveHandler {
    /* Shift_JIS, ISP-2022-JP, EUC-JP Windows-31J */
    /* 出力時に JISAutoDetect の指定は不可 */
    private String inFileName;
    private String lastWriteFileName;
    private static String outFileCoding = "Shift_JIS";
    private static String browser = "C:\\Program Files\\Internet Explorer\\IEXPLORE.EXE";
    private static String URL = "http://www.yahoo.co.jp";
    private HashMap<String, String> dict;
    
    public static void main(String[] args) {
        IETextSaveHandler handler = new IETextSaveHandler( "c:\\ietextsave\\sample.ietxt");
        handler.read();
        handler.printDict();
        handler.write( "C:\\ietextsave\\報告.ietxt");
        handler.lauchBrowser( "C:\\ietextsave\\IeTxSave.exe", "C:\\ietextsave\\IeTxSave.ini", "C:\\ietextsave\\" );
    }
    
    public IETextSaveHandler( String inFile ) {
        inFileName = inFile;
        dict = new HashMap<String,String>();
    }
    public void read() {
        /* タブ区切りのテキストファイル(例えば下記)の1列目,2列目を読み込み,
         * 1列目の値をキーとし,2列目の値を持つ連想配列を作る.
         * uid    1234
         * name    hoge
         */
        try{
            String line;
            BufferedReader inFile = new BufferedReader(
                    new InputStreamReader( new FileInputStream( inFileName ), "JISAutoDetect" ) );
            while((line=inFile.readLine()) != null) {
                StringTokenizer st = new StringTokenizer(line, "\t");
                int length = st.countTokens();
                if ( length >= 2 ) {
                    String key = st.nextToken();
                    String val = st.nextToken();
                    dict.put( key, val );
                }
            }
            inFile.close();
        }
        catch(IOException e){
            e.printStackTrace();
        }
        
    }

    public void printDict() {
        Object [] keys = dict.keySet().toArray();
        for( int i = 0; i < keys.length; i++ ) {
            System.out.println( keys[i] + ":" + dict.get(keys[i]) );
        }
    }
    
    public void write( String outFileName ) {
    /* ファイルが存在しない場合には新たに作成.存在する場合には上書き */
        try{
            Object [] keys = dict.keySet().toArray();
            BufferedWriter outFile = new BufferedWriter(
                new OutputStreamWriter( new FileOutputStream( outFileName ), outFileCoding ) );
            for( int i = 0; i < keys.length; i++ ) {
                StringBuffer buf = new StringBuffer();
                buf.append( keys[i] );
                buf.append("\t");
                buf.append( dict.get(keys[i]) );
                outFile.write(buf.toString());
                outFile.newLine();
            }
            outFile.close();
            lastWriteFileName = outFileName;
        }
        catch(IOException e){
            e.printStackTrace();
        }
    }
    
    public void lauchBrowser( String prog, String iniFileName, String path ) {
            try{
                BufferedWriter outFile = new BufferedWriter(
                    new OutputStreamWriter( new FileOutputStream( iniFileName ), outFileCoding ) );
                /* [NONTITLED] */
                outFile.write("[NONTITLED]");
                outFile.newLine();
                outFile.write("FileSavePath=" + path);
                outFile.newLine();            
                outFile.close();
                Runtime.getRuntime().exec(new String[] {browser, URL});
                Runtime.getRuntime().exec(new String[] {prog, path + lastWriteFileName});
            }
            catch(IOException e){
                e.printStackTrace();
            }
        }
}

参考Webページ: http://www.onepg.com/web/ie/index.html


本サイトは金子邦彦研究室のWebページです.サイトマップは,サイトマップのページをご覧下さい. 本サイト内の検索は,サイト内検索のページをご利用下さい.

問い合わせ先: 金子邦彦(かねこ くにひこ) [image]