Помогите, плиз! :(
Как встроить автозапуск vbs скрипта в сообщение по e-mail????????
|
Во-первых, уважаемый называйте темы подобающим образом, чтобы было понятно о чем они.
во-вторых, ваша задача, не имеет общего решения ее можно попытатся решить для конкртеного веб-сервиса(ключевое слово попытатся) в-третьих, это не законно, и такой эксплоит стоил бы бешенные деньги. и в четвртых:Какого хрена вы полезли со своим VBS-ом на форум по JavaScript-у? |
Помогите!!!!!!!
Люди добрые! Кто -нибудь может помочь сделать следующую задачу:
Написать скрипт “статистика”. В текстовую область заносится произвольный текст и по нажатию кнопки подсчитывается число знаков (включая пробелы) и число слов и эти значения выводятся в отдельное окно. (Используйте свойство length и методы indexOf(), charAt() текстовых переменных.). Заранее огромное спасибо!!!!! |
можем помочь, определенно: спрашивай
|
Цитата:
писать скрипт тебе никто не будет но помочь можем. потому что помощь мы видим, как все то, что поможет тебе научится, и немного вырасти над собой, до создания сообщения выше а для этого надо, чтобы ты задал конкретные вопросы, по непонятному моменту. |
Мне непонятно как использовать методы indexOf(), charAt() и свойство length. Как их так применить, что они работали для подсчёта слов и элементов в тексте? Я прошла 2-х часовой урок по javascript, прочитала об этих методах, но я всё равно ничего не понимаю. Мне в инсте дали это задание, но мы этого даже не проходили. Поэтому если можете, то объясните как-нить на простом языке, зачёт-то нужен!
|
почитайте в гугле про конечные автоматы.
там же вы сможете найти как реализуется конечный автомат для вашего случая вкратце, вы просматриваете по очереди все символы строки, меняя состояние специальной переменной основные состояния:текущая позиция в слове, текущая позиция на пробеле, текущая позиция на первом символе слова при обнаружении третьего состояния, увеличиваете счетчик слов
var qwe="qwee qwed asds";
var state=0;//состояние
var length=qwe.length;//длина строки в символах
for(var i=0;i<qwe.length;i++){
//тут реализуются условия конечного автомата для каждого символа текущего
if(qwe.charAt(i)=' ')//если i-й символ пробел
state=2;//пробельное состояние
//дальше реализуем остальные состояния.....
}
|
Спасибо!!!=)
|
ну конечные автоматы это как-то слишком научно и для более сложных ситуаций, имхо
я бы сказал так: делаем цикл по символам (for(var i=0;i<qwe.length;i++){), а в цикле - если текущий символ - пробел, а предыдущий - не пробел, увеличиваем счетчик слов p.s. надо еще учесть, что строка может заканчиваться непробельным символом |
x-yuri,
а разве ты сейчас не конечный автомат описал словами? простейший, но все же конечный автомат |
не знаю, но в любом случае я не вижу как может теория автоматов помочь мне в решении этой задачи
например, в педивикии написано, что "практически, теория автоматов применяется при разработке лексеров и парсеров для языков программирования, а также при построении компиляторов и разработке самих языков программирования" |
вы бы еще написали регулярку простейшую, и сказали бы что для решения этой задачи не нужно знания регулярок, подразумевая знание сложных регулярок.
вы описали кончный автомат. в нем есть флаг состояния(предыдущий символ пробел или нет), и он анализирует строку символ за символ, и на основании обоих этих данных строит суждение о количестве слов. все сходится с теорией конечного автомата. то, что вы додумались до этого решения, не зная о конечных автоматах, не означает что они тут не были использованы. |
я не говорил, что я описал не конечный автомат. Я говорил, что не вижу как мне это знание может помочь. Эту задачу сложно решить без знания теории автоматов?
аналогия с регулярными выражениями неудачна, имхо p.s. вроде на ты до этого говорили :-? |
Цитата:
потому что стиль мышления такой. и у меня такой же. а вот, человек не смог. вот я и направил его учить теорию тебе знание этой теории не нужно для такой простой задачи а ему может быть поможет. надеюсь что так. Цитата:
в особенности на форуме. по сути безусловный рефлекс я бы даже сказал для того чтобы общатся на ты, мне надо либо начать общатся лично с человеком, например в аське, либо знать его в реале так что не обращай внимание на ВЫкание |
Цитата:
|
Конечно, несколько поздновато, но всё же.. :)
Нафига тут конечные автоматы? :)
/*
* Функция подсчета количества символов и слов в тексте
* obj - id текстового поля, в которое вводится текст
* obj_word - id поля, куда выводится количество слов
* obj_char - id поля, куда выводится количество символов
*/
function count(obj, obj_word, obj_char) {
var text = document.getElementById(obj).value;
var char_cnt = text.length;
while (text.indexOf(' ') != -1)
text = text.replace(' ', ' ');
if (char_cnt > 0) {
var arWord = text.split(' ');
var word_cnt = arWord.length;
}
else
var word_cnt = 0;
if(text.charAt(text.length - 1) == ' ')
word_cnt--;
document.getElementById(obj_word).value = word_cnt;
document.getElementById(obj_char).value = char_cnt;
}
|
ну я бы тогда начал с (хотя условие подразумевает проход по строке)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>title</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script>
function count( s, word, char ) {
var text = document.getElementById(s).value;
document.getElementById(char).value = text.length;
document.getElementById(word).value = text.replace(/^\s+/, '')
.replace(/\s+$/, '')
.split(/\s+/).length;
}
</script>
</head>
<body>
<input id="s" type="text">
<input id="word" type="text">
<input id="char" type="text">
<input type="button" onclick="count('s', 'word', 'char');">
</body>
</html>
|
Понятно, что с регулярками проще, но по заданию надо использовать indexOf() и charAt().
И, кстати, нигде в условии задачи я не увидел обязательного прохода по строке. З.Ы. А вот про пробелы в начале строки я и не подумал.. :( |
Цитата:
function count( s, word, char ) {
var text = document.getElementById(s).value;
document.getElementById(char).value = text.length;
var i = 0, wordCnt = 0;
while( i >= 0 ) {
while( text.charAt(i) == ' ' )
i++;
if( i < text.length )
wordCnt++;
i = text.indexOf(' ', i);
}
document.getElementById(word).value = wordCnt;
}
|
решение с конечными автоматами (это же оно?). Получилось неожиданно (для меня) симпатично. Gvozd, я их недооценивал :thanks: Хоть и с регэкспами читабельнее
function count( s, word, char ) {
var text = document.getElementById(s).value;
document.getElementById(char).value = text.length;
var prv = ' ', wordCnt = 0;
for( var i=0; i<text.length; i++ ) {
if( text.charAt(i) != ' ' && prv == ' ' )
wordCnt++;
prv = text.charAt(i);
}
document.getElementById(word).value = wordCnt;
}
UPD: похоже это все-таки не конечные автоматы |
хотя... предыдущий вариант же - производный от
function count( s, word, char ) {
var text = document.getElementById(s).value;
document.getElementById(char).value = text.length;
var word, wordCnt=0;
for( var i=0; i<text.length; i++ ) {
if( word )
if( text.charAt(i) == ' ' )
word = false;
else
word = true;
else if( word == false )
if( text.charAt(i) == ' ' )
word = false;
else {
wordCnt++;
word = true;
}
else
if( text.charAt(i) == ' ' )
word = false;
else {
wordCnt++;
word = true;
}
}
document.getElementById(word).value = wordCnt;
}
|
| Часовой пояс GMT +3, время: 18:13. |