HTMLのテーブルに入力された値をテキストファイルへ保存



0   名前: ゆみ : 2007/09/05(水) 12:34  ID:TaF8pNUP sub-I6
【何をしたいのか】
→ HTMLのテーブルに入力された値をテキストファイルに保存する。
【現在の状況】
→ HTMLでテーブルを作成し値を入力できるように設定。


JAVASCRIPTではテキストファイルに書込めないのでしょうか??
誰か教えてくださいm(=_=)m



【何をしてみたのか】
→ ネットで8時間調べた。

【検索用語】
→ FileSystemObject 、テキストファイル出力

1   名前: mug : 2007/09/05(水) 12:34  ID:BDozSyfB sub-6m
> JAVASCRIPTではテキストファイルに書込めないのでしょうか??
> 誰か教えてくださいm(=_=)m

var fso = new ActiveXObject("Scripting.FileSystemObject");
var writer = fso.OpenTextFile("ファイル名", 2, true);
writer.Write("書き込む内容");
writer.Close();

これのことでしょうか。
セキュリティ上の問題もご存知の上ででしたらよいのですが。

2   名前: 匿名 : 2007/09/05(水) 12:34  ID:OFTRZz/W sub-Cz
ついで。
function writeToFile (filePath, content) {
    try {
        netscape.security.PrivilegeManager.enablePrivilege ('UniversalXPConnect');
        
        var file = Components.classes["@mozilla.org/file/local;1"]
                             .createInstance (Components.interfaces.nsILocalFile);
        file.initWithPath (filePath);
        if (! file.exists ()) file.create (0, 0664);
        
        var out = Components.classes["@mozilla.org/network/file-output-stream;1"]
                            .createInstance (Components.interfaces.nsIFileOutputStream);
        out.init (file, 0x20 | 0x02, 00004, null);
        out.write (content, content.length);
        out.flush ();
        out.close ();
        
    } catch (err) {
        throw err;
    }
}

writeToFile ('C:\\test.txt', 'TEST\n'); // for Win

3   名前: ゆみ : 2007/09/05(水) 12:34  ID:TaF8pNUP sub-I6
返信ありがとうございます。
しかし、どうしても上手くテキストFileに落とせません↓
ちなみに下のソースはメインのHTMLです。

<html>
<title>テスト</title>
<head>
<script type="text/javascript" src="A.js"></script>
</head>
<body leftmargin="50" topmargin="50">
<h1 align="center">入力画面</h1>
<p><input type="button" value="行追加" onclick="addRow()"></p>
<p><input type="button" value="変換" onclick="writeToFile()"></p>
<hr>
<table Border Bordercolor="#000000" Cellspacing="0" id="T1">
<tr><th>例題0</th><th>例題1</th></tr>
</table>
</body>
</html>

このテーブルに行を追加したい場合、HTMLの行追加ボタンをクリックすると1行追加されます。
以下が行追加のソースです。
function addRow(){
var eki1='1',eki2='2';
var T = document.getElementById('T1');
T.insertRow(T.rows.length);
T.rows[T.rows.length -1].insertCell(0);
T.rows[T.rows.length -1].insertCell(1);
var newInput1 = document.createElement('input');
T.rows[T.rows.length -1].cells[0].appendChild(newInput1);
var newInput2 = document.createElement('input');
T.rows[T.rows.length -1].cells[1].appendChild(newInput2);
}
その後、変換ボタンクリックで、テーブルの値をテキスト形式で保存できますか??

4   名前: mug : 2007/09/05(水) 12:34  ID:Pu52o4sE sub-6m
もしかして・・・と思っていましたが、

出力するテキストファイルの形式とか考えてますか?
セルの区切り(カンマ区切り,タブ区切り,etc)や値の囲い文字("や'など)、改行コードなど。


テーブルに動的に生成したinputの内容をかき集めて、出力したいテキストファイルの形式に合わせて文字列化していますよね?(あとはその文字列を書き込むだけ)


> テーブルの値をテキスト形式で保存できますか??

もしかして、テキストファイルへの書き込み方法ではなく、テキストファイルに書き込む内容のネタを集めて文字列化する方法を聞きたかったのですか?
(もしそうなら、出来上がったテキストファイルのイメージを伝えないと誰も答えられませんよ。)

5   名前: ゆみ : 2007/09/05(水) 12:34  ID:TaF8pNUP sub-I6
出力形式は「.txt」です。

あとは、「mug」さんの言うように、
テーブルに動的に生成したinputの内容をかき集めて、
テキストファイルの形式に合わせて文字列化したいと考えています。

出力結果としては

値,値 //テーブルの1行目
値2,値B //テーブルの2行目

  ・
値n,値m //テーブルのn行目

自動的にカンマで区切られる様になるといいなぁと思っています。

6   名前: mug : 2007/09/05(水) 12:34  ID:Pu52o4sE sub-6m
> 出力形式は「.txt」です。

それは拡張子です。


> テーブルに動的に生成したinputの内容をかき集めて、
> テキストファイルの形式に合わせて文字列化したいと考えています。

つまり、まだ「テキストファイルに書きたい文字列」が生成できていないのですね。


> 自動的にカンマで区切られる様になるといいなぁと思っています。

使う人から見たら自動でも、あなたが意図的にカンマを付ける必要がありますよ。



とりあえず、「書きたい文字列をどう生成するか」は、「どうやってテキストファイルに書き込みするか」とは異なる話です。
このスレッドはどうするのでしょうか。。。
>>5
ではわからないですよ。

(仮に書きたい文字列は後で作ることとして、テキストファイルに固定(ダミー)の文字列を書き込んでみて、このスレッドはクローズにしてみたらどうでしょうか?)

7   名前: 匿名 : 2007/09/05(水) 12:34  ID:OFTRZz/W sub-Cz
そのままタグ付きで保存すれば、再読み込み即 DOM/SAX(MSXML)可能だろうに。

一覧へ戻る