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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

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

Регистрация: Dec 2005
Адрес: Украина, Ивано-Франковск
Сообщений: 60
Отправить сообщение для MisterX с помощью ICQ Отправить сообщение для MisterX с помощью MSN
По умолчанию строка -> цифра

есть строка
Код:
var d:String="1+2";
Вопрос, есть ли ф-я какаято что мне вернет 3? Имеется ввиду что посчитает то что в строковой константе
З.Ы. В строке могут встречатся только целые числа, и самый простые мат ф-и, тоесть добавление, отнимание, умножение и деление.

Старый 15.03.2007, 02:22
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Нет такой функции. Надо парсить в ручную.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 15.03.2007, 02:24
MisterX вне форума Посмотреть профиль Отправить личное сообщение для MisterX Найти все сообщения от MisterX
  № 3  
Ответить с цитированием
MisterX
 
Аватар для MisterX

Регистрация: Dec 2005
Адрес: Украина, Ивано-Франковск
Сообщений: 60
Отправить сообщение для MisterX с помощью ICQ Отправить сообщение для MisterX с помощью MSN
уууу ... ваще низачет .. млин .. писец вобщем ((
Спасибо за ответ! =)

Старый 15.03.2007, 02:26
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
А вы хотите чтобы в плеер еще и компилятор был встроен?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 15.03.2007, 02:34
MisterX вне форума Посмотреть профиль Отправить личное сообщение для MisterX Найти все сообщения от MisterX
  № 5  
Ответить с цитированием
MisterX
 
Аватар для MisterX

Регистрация: Dec 2005
Адрес: Украина, Ивано-Франковск
Сообщений: 60
Отправить сообщение для MisterX с помощью ICQ Отправить сообщение для MisterX с помощью MSN
ну хотябы с элементарными математическими ф-ями, или может какойто фреймворк есть для этого.. я незнаю, я только учусь, тоесть не учусь а совершенствуюсь =)

Старый 15.03.2007, 05:13
MisterX вне форума Посмотреть профиль Отправить личное сообщение для MisterX Найти все сообщения от MisterX
  № 6  
Ответить с цитированием
MisterX
 
Аватар для MisterX

Регистрация: Dec 2005
Адрес: Украина, Ивано-Франковск
Сообщений: 60
Отправить сообщение для MisterX с помощью ICQ Отправить сообщение для MisterX с помощью MSN
Кароче написал клас, кому надо забирайте, вроде работает только нет приоритета операций. Работает и с целыми и дробными числами, и с отрицательными тоже
Код:
class inc.func.Calc extends Object{
	private function isDigit(Ch:String):Boolean{
		return not isNaN(parseInt(Ch));
	}
	private function isSign(Ch:String):Boolean{
  		var ret:Boolean=(Ch=='+') or (Ch=='-');
		return ret;
	}
	private function isSeparator(Ch:String):Boolean{
  		var ret:Boolean=(Ch=='.');
		return ret;
	}

	private function isOperator(Ch:String):Boolean{
		switch(Ch){
			case '+': return true; break;
			case '-': return true; break;
			case '/': return true; break;
			case '*': return true; break;
			default: return false; break;
		}
	}

	private function Numbers(S:String, P:Number):Array{
		var InitPos:Number;
		InitPos=P;
		
		if((P<S.length) && (this.isSign(S.charAt(P)))){
			P++;
		}
		if((P>=S.length) || !this.isDigit(S.charAt(P))){
				trace("Something fuck");
		}
		P++;
		while(!(P>=S.length) && this.isDigit(S.charAt(P))){
			P++;
		}
		if((P<S.length) && (this.isSeparator(S.charAt(P)))){
			P++;
			if((P>=S.length) || !this.isDigit(S.charAt(P))){
				trace("Something fuck");
			}
			P++;
			while(!(P>=S.length) && this.isDigit(S.charAt(P))){
				P++;
			}
		}
		
		var _ret:Array=Array();
		_ret['result']=parseFloat(S.substr(InitPos,P-InitPos));
		_ret['P']=P;
		return _ret;
	}
	public function expr(S:String):Number{
		var P:Number;
		var opSymb:String;
		var res:Object;
		var Result:Number;
		P=0;
		res=this.Numbers(S,P);
		P=res.P;
		Result=res.result;
		while(P<S.length && this.isOperator(S.charAt(P))){
			opSymb=S.charAt(P);
			P++;
			res=this.Numbers(S,P);
			P=res.P;
			var Result_2:Number=res.result;
			switch(opSymb){
				case '+': Result=Result+Result_2; break;
				case '-': Result=Result-Result_2; break;
				case '/': Result=Result/Result_2; break;
				case '*': Result=Result*Result_2; break;
			}
		}
		if(P<S.length){
			trace("Something fuck");
		}
													 
		return Result;
		
	}
}
//Пример работы
import inc.func.Calc;
var cl:Calc=new Calc();
trace("Result:"+cl.expr("7-8+10")); // Выводит -11.
Если есть идеи как улучшить код, подскажите!

Старый 15.03.2007, 05:32
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Парсеры для ас1, ас2, ас3
http://as3.ru/?p=3#comments
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 15.03.2007, 05:36
MisterX вне форума Посмотреть профиль Отправить личное сообщение для MisterX Найти все сообщения от MisterX
  № 8  
Ответить с цитированием
MisterX
 
Аватар для MisterX

Регистрация: Dec 2005
Адрес: Украина, Ивано-Франковск
Сообщений: 60
Отправить сообщение для MisterX с помощью ICQ Отправить сообщение для MisterX с помощью MSN
йоптиль ... а я два часа потратил ... млин ..ггг низя было подсказать? ))
ну спасибо за линк =))

Старый 15.03.2007, 05:45
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Я пока кино смотрел, вспомнил, что мирамакс что-то по данному вопросу писал. Вспомнил бы раньше, написал тоже бы раньше.
Зато теперь знаете, что к чему
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 15.03.2007, 05:58
MisterX вне форума Посмотреть профиль Отправить личное сообщение для MisterX Найти все сообщения от MisterX
  № 10  
Ответить с цитированием
MisterX
 
Аватар для MisterX

Регистрация: Dec 2005
Адрес: Украина, Ивано-Франковск
Сообщений: 60
Отправить сообщение для MisterX с помощью ICQ Отправить сообщение для MisterX с помощью MSN
Спасибо, выручил! Сильно ! =)

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

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

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


 


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


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