Преобразуване на Стринг в Команда?

10 отговора 469 прегледа
#1

Преобразуване на Стринг в Команда?

Я някой спец да се изкаже :)

Трябва ми функция аналогична на метода eval от JavaScript (ако има такава), която да конвертира даден текст в команда...

примерно да работи следния код

x$ = "a=b and (c>25 or d<4)"
If EvalCavalIliKvotoETam(x$) then ...

може да ви изглежда малко безсмислено, но за мен има смисъл защото работя със собствен тип бази данни (с мно'у мно'у записи :) и е най-удачно вместо да претърсвам базата всеки път за сходни неща, просто да претърсвам на базата по резултата от предходната мутация :)

Т.е. ако в по-горния пример a,b,c,d са полета от база данни,
то имайки резултатите(филтър) от c>25 в един файл, d<4 във втори много по-лесно мога да полу4а c>25 or/and d<4 във следващ, и от там процедурата йерархично се повтаря докато стигна до най-сложното ниво ;)

най-нагледно е следното
от 100 човека държали 2 изпита - Информатика и Математика
има 5 Пълни шестици по Информатика и 20 по Математика
имайки тези данни няма смисъл да повтарям търсенето в 100 записа за да намеря кой има и по двата предмета има шестици, след като е достатъ4но да се проверят само 5-те пълни шестици по Информатика за допълнителния критерий по Mатематика...


В моя случай не е точно в команда, а ми трябва логическа стойност еквивалентна на израз от променливи, така че вероятно може да стане дори и да няма такава вградена функция

Благодарско, за всеки който помогне с нещо

Отговор
в отговор на saffin #2

Re: Преобразуване на Стринг в Команда?

Учи SQL и ще си щастлив

Отговор
в отговор на saffin #3

Re: Преобразуване на Стринг в Команда?

MS ScriptControl ActiveX --> Evaluate method...

Не разбрах какво точно искаш да направиш с мутациите и т.н., ама този контрол може да ти помогне да постигнеш първата идея (аналог на Eval в JS)...

Епа, това е моето хоби... [линк]
Отговор
в отговор на NDeu #4

хе :)

Нека изпозлвам една заучена от детските ми години фраза
"Само некадърниците си купуват фабрични вещи. Талантите като нас си правят ... всичко сами!"

Съмнявам се, че Ескюела може да е по-бърз от разработката на спомагателен софтуер писан за конкретна база данни (било и под бейсик :)
Реално и в Ексел може да се направи тази част с един прост филтър, само че в конкретния случай без да преувеличавам е стотици пъти по-бавен.
Поне аз така мисля щото тези танкове поддържат знайни и незнайни допълнителни възможности, а аз съм на принципа че колкото по-просто е изградена една система е, толкова по-добре (стига да тръгне :)

Отговор
в отговор на fiffy #5

Re: Преобразуване на Стринг в Команда?

мерси, ще го видя :)

нещо като опит да направя по-гъвкава обработката на базата си.
колкото по-гъвкаво се задават входните данни, толкова по-мощна е коя да е система. може дори програмата да променя сама кода си ;)
е, далеч съм от идеи за писани на вируси де :))
реално погледнато и самия софтуер представлява входни данни за хардуера за да не се създават отделни устройства като касетофон, печатаща машина, телевизор и т.н.

Отговор
в отговор на saffin #6

Re: хе :)

Пич мислиш ли че ще можеш да напишеш на VB6 (подчертавам VB6) нещо което работи от оптимизирана база от данни. Е може би със 100 записа ще можеш да го "доклатиш" ама я помисли аз 100000, 1000000, 10000000 и т.н.
И недей да говориш глупости че талантите си пишели всичко сами. Едва ли си такъв голям талант що задаваш такива глупави въпоси тук!!!

Отговор
в отговор на RepeatableRead #7

Re: хе :)

Пич 100 записа се обработват като фурия дори и в ексел...
... в момента базата ми (под VB6) е от 25000 записа (по 200 полета всеки) и си работи сравнително бързо без да съм я оптимизирал кой знае колко като алгоритъм.

Освен това подчертах, че става дума за КОНКРЕТНА база данни!
25 000 записа поддържат 10 години назад, а на мен ми трябва не повече от още 10-15 или като цяло не по-вече от 65000 записа, а дори и да река да ги надхвърла просто ще си създам 2-ри файл и ще ги обработвам последователно.

Въпроса може да е глупав, но някой 'глупаци' са се сетили докато създават езици да го предвидят проблема като възможност.
Ако текст който се изпълнява като команда е без смисъл, то тогава на практика цялото програмиране излиза че е безсмислено :))

А ако мислиш че ще ме засегнеш на тема ум - паметта ми наистина е доста слаба и не съм начетен, но повярвай ми създавам си бази данни които работят без проблем...
Освен това нерядко побеждавам шахматисти накълвани с теория или като цяло искам да ти кажа, че ако разчиташ основно на теорията, а не на собствените си сили яко си я закъсал

Отговор
в отговор на saffin #8

ми ако си толкова печен

че да не ти се ползва sql, то написването на един интерпретатор няма да ти е проблем.
всъщност не знам дали sqla ще ти помогне, ама все пак не е зле да му хвърлиш едно око.




NE SUTOR ULTRA CREPIDAM
Отговор
в отговор на saffin #9

браво за ентусиазма...

.. да си направиш собствена база данни... на ВБ6...

и аз като бях ученик ме тресяха подобни гениални идеи и имах ентусиазмът и времето да преоткривам отначало топлата вода..
постепенно ти светва една крушка че така не се правят сериозни неща сега с умиление гледам нещата които съм бил правил и ми е малко смешно и тъжно...

надявам се поне да не пишеш във файла с

write #1, "my_PRECIOUS_DATA" :)

погледни поне на .нет-а кво може да се направи, там можеш да компилираш рънтаим сорс които да го стартираш динамично.
погледни също SQL-a що за животно е, XML-a. X-PATH-а...

айде пък дано повече бели лястовици като тебе...

Отговор
в отговор на Бялo #10

Re: браво за ентусиазма...

е, не е на 100% собствена :)
използвам щастливия факт, че Ексел поддържа VBA, а с Бейсика се занимавам от 87-ма.
С помоща на макроси Ексела ми върши доста добра работа за обработката на данните, но за да се изготвят крайните записи.

За записите използвам двоичен достъп - много по-лесно ми е.
Записите ми представляват UDT структури и ако се наложи знам кое поле на какво отместване се намира. Всичко друго в моя случай до организация на информацията. в момента стигнах над 40000 записа от по 200 байта в основния файл с данни :)

Инак от мързел да уча скриптов език пишещ върху сървърите бях стигнал до лудоста да създам затворен цикъл Ексел -> VBA -> Java Script -> хостване ;;; потребители -> Java Script -> HTML таблица -> Copy -> Excel

VBA -> JavaScript го използвах за да създавам .js файловете съдържащи масивите с нови данни, които чрез скрипта не можех да запиша върху сървъра ха ха ;)

абе хубаво е човек да си понапъва мозъка и да твори, ако ще да се по;учават изгъзици.. важното е удоволствието

Отговор
в отговор на zaphod #11

разбирам от всякакви алгоритми...

... ако не верваш ела ме ритни

Отговор