2013-03-23 6 views
2

Я только начал изучать JavaScript и у меня небольшая проблема. У меня есть текстовый файл с некоторым текстом. Я могу прочитать содержимое текстового файла в браузере (я имею в виду в .hta), но текст отображается как одна строка. Я хочу добавить разрывы строк в каждую строку. Как мне это сделать?Чтение локального текстового файла в JavaScript

содержимое текстового файла:
Я хочу жить там, где душа встречает тело
И пусть солнце обернуть свои руки вокруг меня
...

JS:

var fso = new ActiveXObject("Scripting.FileSystemObject"); 
var txtFile = fso.OpenTextFile("C:\\myJS\\test.txt", 1, false, 0); 
var fText = txtFile.Read(1000); 
document.write(fText); 
txtFile.Close(); 
fso = null; 

Выход:
Я хочу жить там, где душа встречает тело И пусть солнце обнимает меня вокруг меня ...

Любые советы, предложение приветствуется.

ответ

5

Это происходит потому, что HTML не распознает строки в текстовом файле. Вам нужно добавить HTML-код для вывода. Что-то вроде этого:

function readFile (path) { 
    var fso = new ActiveXObject('Scripting.FileSystemObject'), 
     iStream=fso.OpenTextFile(path, 1, false); 
    while(!iStream.AtEndOfStream) { 
     document.body.innerHTML += iStream.ReadLine() + '<br/>'; 
    }   
    iStream.Close(); 
} 

Эта функция считывает весь файл. Если вы хотите прочитать ровно 1000 строк, вы можете использовать цикл for, но вам нужно проверить, что файл не короче 1000 строк, используя свойство AtEndOfStream.

Просто позаботьтесь об этой функции, вызванной в теге body или в обработчике window.onload. Обратите внимание, что в моем коде используется DOM-манипуляция вместо document.write().

+0

Хм. Я либо делаю что-то неправильно, либо это не работает = \ – akinuri

+0

@akinuri OOPS, извините, я использовал неправильное свойство в состоянии цикла, я исправил код. – Teemu

+0

Он все еще не работает. Он ничего не печатает. Можете ли вы попробовать посмотреть, что-нибудь напечатает? Забудьте о разрывах строк, я даже не знаю, будет ли он печатать текст. И, похоже, это не так. – akinuri

Смежные вопросы