Вычисление текстовой строки

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Taqaey
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 07.12.2003 (Вс) 12:25

Вычисление текстовой строки

Сообщение Taqaey » 07.12.2003 (Вс) 12:31

Как произвести вычисление текстовой строки и результат поместить в число
Например
dim iStr as string
dim iNum as Integer
iStr="(2+3)*3
iNum=Я идиот! Убейте меня, кто-нибудь!":roll:

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 07.12.2003 (Вс) 12:48

Посмотри такую библиотеку как Microsoft Script Control (msscript.ocx).

У контрола есть метод Eval, пример:

Код: Выделить всё
Private Sub Form_Load()
MsgBox ScriptControl1.Eval("1+1*3+4*2")
End Sub
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 07.12.2003 (Вс) 12:48


Taqaey
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 07.12.2003 (Вс) 12:25

спасибо

Сообщение Taqaey » 07.12.2003 (Вс) 12:56

спасибо - получилось
А без этого контрола что нельзя сделать?
Зачем еще нужен этот контрол?

Cyrax
Cyberninja
Cyberninja
Аватара пользователя
 
Сообщения: 891
Зарегистрирован: 25.04.2002 (Чт) 21:20
Откуда: Magnitogorsk, Russia

Re: спасибо

Сообщение Cyrax » 07.12.2003 (Вс) 14:39

Taqaey писал(а):спасибо - получилось
А без этого контрола что нельзя сделать?
Зачем еще нужен этот контрол?

можно... но в этом случае тебе придется самому писать синтаксический анализатор для разбора строки на операнды и операторы, реализовывать свои функции для каждого оператора... плюс еще отслеживать скобки и очередность выполнения арифметических действий...
Ты это ему расскажи. Я уже пять болтов отвинтил, и конца не видно... (озадаченно) А это в какую сторону тянуть? Ну-ка... Ага, этот был лишний, этот вообще не отсюда, и этот... Точно, два болта.

Welcome to IRC

_NeoN_
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 178
Зарегистрирован: 14.08.2003 (Чт) 9:48
Откуда: Новосибирск

Сообщение _NeoN_ » 08.12.2003 (Пн) 20:03

это пишется за... минут 25-30 (+ сутки на отладку :wink: ибо не бывает программ без глюков, бывают глюки без программ)... по крайней мере я такое на с++ писал... тута не наю как... там списки были, делаешь стек и на нем все вычисления производишь =) как реализовать это в басике не нзаю =) может быть просто массив переопределять


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 80

    TopList