2011-06-30 22 views
4

行単位でtxtファイルの内容を取得することは可能ですか?

今、私はこのコードを使用しています:

var file = "http://plapla.com/pla.txt"; 
function getFile(){ 
    $.get(file,function(txt){ 
     save(txt.responseText); 
}); 
} 

を保存する機能は、変数にコンテンツを保存します。 そして、私がそれを印刷した後、検索されたファイルのすべての内容は、行ごとにではなく、互いの最後にあります。

答えて

12

私はあなたがそれそれのファイルをプリントアウトするときという意味かはわかりませんすべて1行にプッシュされるか、ファイルを行単位で分割したいと言っているかどうかを確認します。

問題を表示すると、HTMLページに入れているだけなので、改行は無視されます。 2つのオプションがあります。すべての改行を<br />タグで置き換えるか、すべてのテキストをpreタグに入れます。

var file = "http://plapla.com/pla.txt"; 
function getFile(){ 
    $.get(file,function(txt){ 
     save(txt.responseText.replace(/\n/g, "<br />"); 
    }); 
} 

// OR 

var file = "http://plapla.com/pla.txt"; 
function getFile(){ 
    $.get(file,function(txt){ 
     save($("<pre />").text(txt.responseText)); 
    }); 
} 

あなたはちょうどあなたがそれを受け取った後、次に、あなただけの行上で分割するとして、あなたはそれを好き行うことができ、データを1行ずつ作業したい場合。

var file = "http://plapla.com/pla.txt"; 
function getFile(){ 
    $.get(file,function(txt){ 
     var lines = txt.responseText.split("\n"); 
     for (var i = 0, len = lines.length; i < len; i++) { 
      save(lines[i]); 
     } 
    }); 
} 
2

JavascriptはフルテキストのHTTP応答を返すHTTPリクエストのみを作成できますが、ソケットを開いて行単位で読み取るという行を読むことはできません。

すでにデータ・ライン・バイ・ラインを読んで、あなたは次の操作を行うことができます処理することを意味する場合は、:

lineByLine = readData.split("\n"); 
process(lineByLine[0]); // First line 
0

あなたは(エンコードされた改行を保存)ライン・バイ・ラインを表示しようとしている場合は、それを行うための最も簡単な方法は、textarea要素への代わりに、DIV(または同様にあなたの取得したテキストをプッシュすることです)。ブラウザは、入力テキストを適切にインテリジェントに処理します。

自己更新:技術(data.replace()またはtextareaのみを使用していない)がIE9で動作するように見えることに気付きました。

関連する問題