Вопрос № 102153: Уважаемые эксперты, есть вопрос: как с помощью JavaScript можно сосчитать количество символов в многострочном тексте. Особенно хочу услышать вариант скрипта, который сам открывает независимый текстовый файл и считает количество символов.
--------...
Вопрос № 102.153
Уважаемые эксперты, есть вопрос: как с помощью JavaScript можно сосчитать количество символов в многострочном тексте. Особенно хочу услышать вариант скрипта, который сам открывает независимый текстовый файл и считает количество символов.
-----------------------------------------------------------------------------------------------
У меня есть, конечно, свой вариант скрипта, вот он:
Приложение:
Отправлен: 15.09.2007, 19:28
Вопрос задал: Warobushek (статус: 1-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
"Особенно хочу услышать вариант скрипта, который сам открывает независимый текстовый файл"
Должен сказать, что в детстве тоже был мечтателем.
Увы, это невозможно из соображений безопасности.
Никто Вам не даст доступ к файловой системе конечного пользователя.
Если же Вы говорите о файле находящемся на сервере, то без серверной части которая будет читать файл и прописывать его содержимое на странице не обойтись. Но в таком случае Вам не нужно использовать JavaScript для подсчёта символов. Вы это легко сделаете со стороны сервера.
Удачи.
Ответ отправил: Иоффе Мэир Вэлевич (статус: 1-ый класс)
Ответ отправлен: 16.09.2007, 10:21 Оценка за ответ: 2
Отвечает: HookEst
Здравствуйте, Warobushek!
Посмотрите, например, вариант с использованием AxtiveX FileSystemObject.
Это работает только локально и только в IE!
метод FileSystemObject.OpenTextFile - открывает файл, и возвращает объект TextStream для доступа к содержимому файла. Разные форматы(FormatASCII, FormatUnicode...)просто показывают, в каком формате открывать файл.
Ну и метод TextStream.ReadAll - возвращает все содержимое файла как строку.
Успехов.
<script>
var FormatASCII=0;
var FormatUnicode=-1;
var FormatDefault=-2;
function calculate(format){
var ForReading = 1;
var fname=f.value
if(!fname)return alert('Не выбран файл!')
try{
var fso=new ActiveXObject("Scripting.FileSystemObject")
}catch(e){}
if(!fso)return alert('Не удалось создать ActiveX!')
try{
var ts = fso.OpenTextFile(fname, ForReading,false,format)
}catch(e){}
if(!ts)return alert('Не удалось открыть файл "'+fname+'"')
alert('Размер содержимого файла "'+fname+'"\n'+ts.ReadAll().length+' символов')
ts.Close()
}
</script>
<input type=file id=f><br>
<input type=button value=calculateUnicode onclick="calculate(FormatUnicode)"><br>
<input type=button value=calculateASCII onclick="calculate(FormatASCII)">
Ответ отправил: HookEst (статус: Студент)
Ответ отправлен: 18.09.2007, 09:04 Оценка за ответ: 5 Комментарий оценки: Я считаю что я получил очень хороший ответ, большое спасибо!