Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/2: Рейтинг темы: голосов - 2, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 05.02.2011
Сообщений: 20
1

Как прицепить файл, содержащий формулу, к программе?

01.12.2011, 15:20. Просмотров 487. Ответов 4
Метки нет (Все метки)

Согласен, из названия нечего не понятно. Теперь более подробно: есть основная программа которая получает и сохраняет в файл три массива данных - это сила, перемещение и время.
Теперь что касается вопроса: эти полученные массивы обсчитываются по разным формулам и этих формул много. вот и хотелось бы иметь набор файлов содержащих формулы для обсчета, которые можно былобы выбрать например из выпадающего списка до получения массивов, а после получения массивов производился бы обсчет по выбранным формулам?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2011, 15:20
Ответы с готовыми решениями:

Прицепить g++ к программе
Сабж. Люди, кто-нибудь таким занимался? Пишу, в общем, задачник (олимпиадный) по информатике,...

Создать и прицепить к программе курсор
Какие требования к файлу курсора и как его подцепить? Я создал было ico файл с разрешением 100x100...

Дан файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам). Создать новый файл, содержащий элеме
Дан файл вещественных чисел, содержащий элементы квадратной матрицы (по строкам). Создать новый...

Как в программе написать эту формулу?
V=r3

4
871 / 542 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
01.12.2011, 17:24 2
помести формулы в код и выбирай их в комбобоксе .Очень удобно с оператором Case.Зачем тебе нужны лишнии файлы?Просто мусор дополнительный.
0
0 / 0 / 0
Регистрация: 05.02.2011
Сообщений: 20
01.12.2011, 17:31  [ТС] 3
если бы все было так просто проблемма в том что формулы могут быть разные и они "какбы еще не известны" (глупо конечно), а каждый раз лазить в код программы не очень то и хочется да и ненужно это. Заказчик в тругом городе, хотелось бы просто высылать ему определенный файл с формулой, он его цепляет к программе и работает.
0
871 / 542 / 117
Регистрация: 24.11.2009
Сообщений: 1,329
01.12.2011, 17:40 4
тогда пиши парсер в коде проги.Считываешь из файла формулу - парсишь и вычисляешь.Тема парсера здесь рассматривалась не раз.Ну а иначе не как.
вот код для примера
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
 var
  InpStr:   string; //Копия входной строки
  InpPos,a:   integer;//Номер текущего символа
  CurrChar: char;   //Копия текущего символа
  b,c: Real;
 
{$R *.dfm}
//Процедура берёт следующий символ из строки
procedure GetNextChar;
begin
  if InpPos < length(InpStr) then begin
    Inc(InpPos);
    CurrChar := InpStr[InpPos];
  end
  else
    CurrChar := #0;
end;
 
//отсеивает ненужные символы
procedure SkipSpace;
begin
  while CurrChar in [' ', #9,#95] do
     GetNextChar;
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  Edit2.Text := FloatToStr(Parser(Edit1.Text));
end;
 
 
//Функция чтения числа
 function GetNumber:Double;
begin
  result := 0;
  SkipSpace;
  while CurrChar in ['0'..'9'] do begin
      result := result * 10 + ord(CurrChar) - ord('0');
      GetNextChar;
       end;
  SkipSpace;
end;
 
 
//Парсер :)
function Parse():Double ;
begin
  Result := GetNumber;
  repeat
    case CurrChar of
      #0: exit; //Достигли конца строки
      '+':      //Нужно сложить
      begin
        GetNextChar;
        Result := Result + GetNumber;
      end;
      '-':      //Нужно вычесть
      begin
        GetNextChar;
        Result := Result - GetNumber;
      end;
      '*':      //Нужно умножить
      begin
        GetNextChar;
        Result := Result * GetNumber;
      end;
      '/':      //Нужно разделить
      begin
        GetNextChar;
        Result := Result/GetNumber;
      end;
      '.':      //Нужно добавить разделитель
      begin
        GetNextChar;
        b:= GetNumber;
        a:= Length(FloatToStr(b));
        Result := Result + b*IntPower(0.1,a);
        a:= 0;
      end;
      ',':      //Нужно добавить разделитель
      begin
        GetNextChar;
        b:= GetNumber;
        a:= Length(FloatToStr(b));
        Result := Result+b*IntPower(0.1,a);
        a:= 0;
      end;
      '^':      //Нужно возвести в степень
      begin
        GetNextChar;
        Result:= Power(Result,GetNumber);
      end;
      else  //Какой-то неизвестный символ.
        raise Exception.CreateFmt(
          'Я пока не умею выполнять действие с '#13#10+
          '  обнаруженным символом " %s " позиции :  %d',
          [CurrChar, InpPos]);
    end;
  until False;
 
end;
0
0 / 0 / 0
Регистрация: 05.02.2011
Сообщений: 20
01.12.2011, 20:32  [ТС] 5
ну почему же больше не как. Можно использовать MappingFile: и две программы будут обмениваться данными, но это по моему както не очень хорошо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2011, 20:32

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Прицепить Mail-файл
Привет всем..Скажите пожалуйста, можно ли прицепить к вновь зарегистрированному пользователю...

Прицепить файл с изображением курсора к Dll
Помогите решить проблему с встроенными ресурсами. Хочу прицепить файл с изображением курсора к...

С формы прицепить файл PDF в поле OLE
Подскажите, гуру access. Нужно пристегнуть файл PDF в таблицу в поле OLE. Перед этим файл с...

Парсинг формулы или как взять из TextBox формулу для дальнейшего расчета в программе
Нужно забить формулу в TextBox и посчитать значение функции в точках. Как посчитать разберусь, но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.