Помогите, плиз! :(
Как встроить автозапуск 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:41. |