Подгрузить из файла
Добрый день!
У меня возник вопрос. Мне требуется подгрузить формулу из txt-файла. Например, у меня есть:
In1:=ReadValue('PET-7017_1.AIs.Ch00');
In2:=ReadValue('PET-7017_1.AIs.Ch01');
I1:=StrToFloat(In1);
I2:=StrToFloat(In2);
Тут мне требуется подгрузить формулу из файла, к примеру, чтобы сложить эти два числа. В файле первой (нулевой) строкой будет написано "I1+I2":
sum:=LoadFromTxtFile('C:/f.txt',0);
Сейчас сумма получается в виде строки. Как сделать, чтобы это сумма действительно посчиталась?
sum1:=StrToFloat(sum) ничего не дает
У меня возник вопрос. Мне требуется подгрузить формулу из txt-файла. Например, у меня есть:
In1:=ReadValue('PET-7017_1.AIs.Ch00');
In2:=ReadValue('PET-7017_1.AIs.Ch01');
I1:=StrToFloat(In1);
I2:=StrToFloat(In2);
Тут мне требуется подгрузить формулу из файла, к примеру, чтобы сложить эти два числа. В файле первой (нулевой) строкой будет написано "I1+I2":
sum:=LoadFromTxtFile('C:/f.txt',0);
Сейчас сумма получается в виде строки. Как сделать, чтобы это сумма действительно посчиталась?
sum1:=StrToFloat(sum) ничего не дает
Как пример можно сделать так:
var I1,I2: double; formula, val1str, val2str: string; val1, val2, Res: double; i, j: integer; oper: byte; begin // test i1 := 3; i2 := 5; formula := 'I1 + I2'; j := 0; for i := 1 to length(formula) do begin if formula[i] in ['+','-','*','/'] then begin case formula[i] of '+': oper := 1; '-': oper := 2; '*': oper := 3; '/': oper := 4; end; j := i; break; end; end; if j > 0 then begin val1str := Lowercase(Trim(Copy(formula, 1, j - 1))); val2str := Lowercase( Trim(Copy(formula, j + 1, length(formula) - j))); if val1str = 'i1' then val1 := I1 else if val1str = 'i2' then val1 := I2; if val2str = 'i1' then val2 := I1 else if val2str = 'i2' then val2 := I2; case oper of 1: res := val1 + val2; 2: res := val1 - val2; 3: res := val1 * val2; 4: res := val1 / val2; end; end; end.