Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 04.07.2003, 13:57
Random SunFire вне форума Посмотреть профиль Отправить личное сообщение для Random SunFire Посетить домашнюю страницу Random SunFire Найти все сообщения от Random SunFire
  № 1  
Random SunFire
 
Аватар для Random SunFire

Регистрация: Oct 2002
Адрес: Воронеж
Сообщений: 59
Отправить сообщение для Random SunFire с помощью ICQ
По умолчанию Удивил, и очень удивил!

Ранее не сталкивался со следующей проблемой:
Как вычислить выражение вида var_num="2+2"; те получить var_num=4
Функция eval как я уже понял не прокатывает.... Есть ли простой метод это сделать?
__________________
Бороться и искать, найти и перепрятать.

Старый 04.07.2003, 14:01
Dimonius вне форума Посмотреть профиль Отправить личное сообщение для Dimonius Посетить домашнюю страницу Dimonius Найти все сообщения от Dimonius
  № 2  
Dimonius
 
Аватар для Dimonius

Регистрация: Nov 2002
Адрес: Moskow Stone Jungles Статус: Бывший беспредельщик Любит: Гонять нубов в поиск Пользователь: № 0.5
Сообщений: 4,999
Отправить сообщение для Dimonius с помощью ICQ Отправить сообщение для Dimonius с помощью AIM Отправить сообщение для Dimonius с помощью MSN Отправить сообщение для Dimonius с помощью Yahoo
Старым способом, который в школе на бейсике изучал.

а = 2
б = 2
в = а + б

__________________
Учиться и, когда придет время, прикладывать усвоенное к делу - разве это не прекрасно! Беседовать с другом, приехавшим издалека, - разве это не радостно! Не быть по достоинству оцененным светом и не таить обиду - разве это не возвышенно!

Старый 04.07.2003, 14:17
Krisha вне форума Посмотреть профиль Отправить личное сообщение для Krisha Найти все сообщения от Krisha
  № 3  
Krisha

Регистрация: Aug 2002
Адрес: Limassol, Cyprus
Сообщений: 89
Отправить сообщение для Krisha с помощью ICQ
Random SunFire, вся фишка в приведении типов данных и в ассоциативности операторов:

var_num = 2+2 = 4 - оператор сложения, так как оба операнда имеют тип number

var_num = "2"+"2" = 22 - конкатенация, оба операнда имеют тип string

var_num = "2+2" = 2+2 - ни то ни другое, символ "+" это часть строки


Последний раз редактировалось Krisha; 04.07.2003 в 14:20.
Старый 04.07.2003, 14:30
Random SunFire вне форума Посмотреть профиль Отправить личное сообщение для Random SunFire Посетить домашнюю страницу Random SunFire Найти все сообщения от Random SunFire
  № 4  
Random SunFire
 
Аватар для Random SunFire

Регистрация: Oct 2002
Адрес: Воронеж
Сообщений: 59
Отправить сообщение для Random SunFire с помощью ICQ
Все это конечно замечательно , но видимо надо уточнить вопрос.
Допустим вы вводите в текстовое поле выражение вида "2+2", и мы получаем переменную text равную "2+2". А вот теперь вопрос, как из этого получить 4.
Вобще, какой функцией можно поменять тип переменой?
Обыскался... Как определить тип есть, а сменить нет?
__________________
Бороться и искать, найти и перепрятать.

Старый 04.07.2003, 14:51
Random SunFire вне форума Посмотреть профиль Отправить личное сообщение для Random SunFire Посетить домашнюю страницу Random SunFire Найти все сообщения от Random SunFire
  № 5  
Random SunFire
 
Аватар для Random SunFire

Регистрация: Oct 2002
Адрес: Воронеж
Сообщений: 59
Отправить сообщение для Random SunFire с помощью ICQ
Судя по всему найденму, нормальными методами получить 4 из "2+2" нельзя...
Так что, уточняю в догонку вопрос ставший основным.
Как сделать из var_num="2" переменную со значением var_num=2 ?
__________________
Бороться и искать, найти и перепрятать.


Последний раз редактировалось Random SunFire; 04.07.2003 в 14:54.
Старый 04.07.2003, 14:56
Krisha вне форума Посмотреть профиль Отправить личное сообщение для Krisha Найти все сообщения от Krisha
  № 6  
Krisha

Регистрация: Aug 2002
Адрес: Limassol, Cyprus
Сообщений: 89
Отправить сообщение для Krisha с помощью ICQ
var_num = Number(var_num);

А вообще, имхо, что-то ты перемудрил, если у тебя, чтобы сложить 2 числа нужно в одно и тоже поле вписАть 2+2, а не в 2 разных вписАть просто числа


Последний раз редактировалось Krisha; 04.07.2003 в 15:02.
Старый 04.07.2003, 16:08
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 7  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
если в строке только плюсы и минусы - можно сделать так:
Код:
evaluate = function (str) {
	var result = 0;
	var p = str.split("+");
	for (var i = 0; i<p.length; i++) {
		if (typeof (p[i]=p[i].split("-")) != "object") {
			result += Number(p[i]);
		} else {
			result += (p[i][0] != "") ? Number(p[i][0]) : 0;
			p[i].splice(0, 1);
			for (var j = 0; j<p[i].length; j++) {
				result -= Number(p[i][j]);
			}
		}
	}
	return result;
};
//
trace(evaluate("2+2"));
trace(evaluate("2+2-2+2"));
trace(evaluate("10+2+2-3-5"));
trace(evaluate("-5+1+2-5+3+4-5"));
...если есть деление и умножение, да еще скобки не дай бог, тогда придется много морочиться :) можно канеш взять модуль regEXP, но нафига оно надо-то ? :)

Старый 04.07.2003, 16:53
Random SunFire вне форума Посмотреть профиль Отправить личное сообщение для Random SunFire Посетить домашнюю страницу Random SunFire Найти все сообщения от Random SunFire
  № 8  
Random SunFire
 
Аватар для Random SunFire

Регистрация: Oct 2002
Адрес: Воронеж
Сообщений: 59
Отправить сообщение для Random SunFire с помощью ICQ
Угу. А сменить тип на числовой судя из кода - Number(p[i][j]); Спасибо.
У меня кстати идея , собирать строчку для вычисления во Флаше и отправлять её вычислять на PHP, самый чуствую простой способ.
__________________
Бороться и искать, найти и перепрятать.

Создать новую тему   Часовой пояс GMT +4, время: 05:45.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 05:45.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.