|
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 25
|
|
Как заменить переменные извлекая из текстового документа17.02.2017, 10:45. Показов 1303. Ответов 21
Метки нет (Все метки)
Привет. Возможно ли решить такой вопрос?
d - вводится в текстбокс а в коде есть: с = 5.65656 * d + 0.3332 Я сделал доп. форму, которая сохраняет в текстбоксе формулу для расчета с в .txt ну и соответственно извлекает. Как сделать так, чтобы она (формула с= из .txt) заменяла формулу, которая есть в коде. Например, открываем ехе файл, заводим формулу с= 4.56565 * d + 0.8989 нажимаем сохранить и формула заменила, имеющуюся в коде и уже считает с новой формулой пересчет с. Помогите, если кто знает...
0
|
|
| 17.02.2017, 10:45 | |
|
Ответы с готовыми решениями:
21
Переменные из текстового документа
Как сохранить программу в формате текстового документа? |
|
oh my god
|
|
| 17.02.2017, 11:08 | |
|
Ну как... программно все пересчитывать, есть еще класс в виндовсе
Set Script = CreateObject("MSScriptControl.ScriptCont rol") Script.Eval(Expression) - Expression это математическое выражение Добавлено через 4 минуты а переменные лучше отображать так как они есть, не забывайте это же программа 2 + 3 / (3 * 2) никаких D B и тд Добавлено через 2 минуты 2 + D / (B + A) = 2 + val(d) / (val(b)+val(a)) как то так ...
0
|
|
|
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 25
|
|||||||||||
| 17.02.2017, 17:59 [ТС] | |||||||||||
|
Допустим есть форма с двумя текстбоксами, кнопкой и меткой - вот код:
0
|
|||||||||||
|
oh my god
|
||||||
| 17.02.2017, 18:25 | ||||||
|
Замените переменные словарем Dictionary или коллекцией
и можно также оперировать ими только вызываться они будут по ключу этой коллекции
ответ: 5
1
|
||||||
|
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 25
|
|
| 17.02.2017, 18:32 [ТС] | |
|
и формула будет сохраняться после выхода из ехе или по новой? надо чтобы сохранялась
0
|
|
|
oh my god
|
|
| 17.02.2017, 18:42 | |
|
У вас формула в документе ? и вам надо чтото пересчитать
так вот извлекайте из текста латинские буквы пересчитывайте к примеру этим способом: Script.Eval(c(s1) & p & c(s2)) где например s1 это первая переменная p это плюс p="+" или минус неважно или знак умножения s2 это вторая переменная а ответ также можно сохранить в документе
1
|
|
|
103 / 63 / 10
Регистрация: 13.02.2017
Сообщений: 178
|
||||||
| 17.02.2017, 18:43 | ||||||
2
|
||||||
|
oh my god
|
|
| 17.02.2017, 18:51 | |
|
извлекли переменную A присвоили S1="A"
в коллекции с(s1) это ключ A и тд и тп Добавлено через 4 минуты Все легко, нужно только напрячь абстрактное мышление ))
1
|
|
|
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 25
|
|
| 17.02.2017, 19:03 [ТС] | |
|
Sur_L, а можно по конкретнее что к чему плс
0
|
|
|
oh my god
|
||
| 17.02.2017, 19:08 | ||
|
Да тоже самое, только у него ScriptControl1 не объявлен
в байсике его объявлять надо или подключать Set Script = CreateObject("MSScriptControl.ScriptCont rol")
1
|
||
| 17.02.2017, 19:43 | ||||||
|
Birchall
Формулу c = 7.132 * d + 2.561, которая находится в коде вам заменить не удастся. Но если эта формула находится в еще одном текстовом поле например txt3, то ее можно вычислить код приблизительно такой
так, как вы и делаете. Собственно говоря в поле txt3 можно поместить аналогичное выражение. Однако, если вам требуется вычислять совсем разные арифметические выражения, то есть единственный способ - это написать собственный интерпретатор арифметического выражения ... (вещь довольно сложная, но возможная)
1
|
||||||
|
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 25
|
|
| 17.02.2017, 20:03 [ТС] | |
|
echs, я это и хочу сделать))) она будет в текстбоксе на другой форме из .txt подгружаться. Можно как-то по подробнее плс?
Добавлено через 11 минут echs, не знаешь как через scriptcontrol намутить чтото)
0
|
|
|
oh my god
|
||||||
| 17.02.2017, 20:22 | ||||||
|
Ну вот же... все расжеванно извиняюсь что я пропустил язык скрипта ))
ответ 6 Добавлено через 2 минуты вот таким макаром и подставляй свои формулы Добавлено через 4 минуты Как начнет получаться поделись этим радостным известием ))
2
|
||||||
| 17.02.2017, 20:24 | |
|
Birchall
Алгоритм 1. присваиваете арифметическое выражение текстовой переменной 2. прибавляете к этой переменной слева открывающуюся скобку, справа - закрывающуюся 3. ищете первую закрывающуюся скобку. (функция InStr()) Ее номер получает переменная с2. 4. ищете первую открывающуюся скобку от с2 (функция InStrRev()) Ее номер с1. (между этими скобками других скобок нет) 5. вычисляете выражение между с1 и с2 . Поскольку скобок нет,то очередность операций определяется их приоритетом приоритет - (унарный минус) ^ (возведение в степень) *, / (умножение и деление) \ (целочисленное деление) Mod (вычисление остатка) +, - (сложение и вычитание) 6. после вычисления выражения в скобках производится операция. Копируется все, что слева от левой скобки и все, что справа от правой скобки. Части соединяются. А в середину вставляется результат. 7. скобок стало на одну пару меньше 8. опять ищем первую закрывающуюся скобку.... и вычисления повторяются. 9. если скобок нет. А У НАС ВСЁ ВЫРАЖЕНИЕ БЫЛО ЗАКЛЮЧЕНО В СКОБКИ, то считать больше нечего. 10. последний результат и есть результат всех вычислений
1
|
|
|
oh my god
|
||||||
| 17.02.2017, 20:29 | ||||||
|
echs, скрипт тоже неплохо скобочки считает
Это же тоже самое что в IDE среды писать только там текст, можно и корни и квадраты выводить зачем велосипед изобретать ? Кстате синтаксис должен быть такой же как и в среде тоесть +-*/\()^ и тд
2
|
||||||
|
103 / 63 / 10
Регистрация: 13.02.2017
Сообщений: 178
|
|
| 17.02.2017, 20:29 | |
|
Birchall, Я написал готовое решение, а ScriptControl1.. ну я по старинке подключаю через компоненты (Microsoft Script Control 1.0) потом перетаскиваю на форму и объявлять не требуется.
2
|
|
|
oh my god
|
||
| 17.02.2017, 20:36 | ||
|
а так все в порядке, и я чтото новое узнал, чуть не увел автора топика в дебри коллекций и классов пока не подсмотрел вашу строчку ExecuteStatement
1
|
||
|
0 / 0 / 0
Регистрация: 06.02.2017
Сообщений: 25
|
|
| 17.02.2017, 20:38 [ТС] | |
|
Спасибо всем участвующим)) я и не знал, что на этом форуме столько умных, а главное добрых, спешащих на помощь, людей)
0
|
|
| 17.02.2017, 20:38 | |
|
Помогаю со студенческими работами здесь
20
Как вставить содержимое текстового документа в RichTextBlock?
Как составить условие проверки текстового документа Как поставить курсор в начало в поле текстового документа? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|