powered by simpleCommunicator - 2.0.54     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / replace в цикле.
25 сообщений из 33, страница 1 из 2
replace в цикле.
    #38875549
last_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе утро!
Вот такая ситуация
как осуществить replace в выражении в цикле? Выражение имеет вид например {1}*{2}-{3}
типа такого где отмечено красным
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
  int count = 0;
            foreach (var column in srcFields.Split(','))
            {
                var srcTableAlias = column.Split('.')[0];
                var srcTable = Outt.Data.Tables[GetTableIndex(srcTableAlias)];
               
                var rows = srcTable.Select(srcfilter);
                if (rows.Length == 1)
                {
                    var srcRowIndex = srcTable.Rows.IndexOf(rows[0]);
                    string value;
                    value = GetValue(Outt.Data, srcRowIndex, column).ToString();
                [color=red] expression = expression.Replace("{"+count+"}",value[count]);[/color]
                }
                count++;
            }
...
Рейтинг: 0 / 0
replace в цикле.
    #38875646
LameUser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_man,
Ничего не понял, что вам требуется.

Давайте так - входные данные (только уберите левый мусор (Data.Tables) и прочее)
Потом, что хочется получить на выходе.
...
Рейтинг: 0 / 0
replace в цикле.
    #38875664
last_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
входные данные: ячейки со значениями: 1.num,2.num,3.num
я их считываю
дополнительно у меня есть строка с выражением {1}*{2}-{3}
в выражении нужно заменить {n} на соответствующее значение value[n] и затем вычислить результат
...
Рейтинг: 0 / 0
replace в цикле.
    #38875679
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я тоже ничего не понял.
в посте есть вопрос
в посте есть ответ

а проблема в чем?
...
Рейтинг: 0 / 0
replace в цикле.
    #38875683
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_man,

Зачем замена, есть же метод проще:

Код: c#
1.
2.
3.
4.
5.
6.
7.
string calculationTemplate = "{0}*{1}+{2}";

int N1 = 3;
int N2 = 4;
int N3 = 5;

string expressonWithValues = string.Format(calculationTemplate, N1, N2, N3);
...
Рейтинг: 0 / 0
replace в цикле.
    #38875688
Фотография Belavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_manвходные данные: ячейки со значениями: 1.num,2.num,3.num
я их считываю
дополнительно у меня есть строка с выражением {1}*{2}-{3}
в выражении нужно заменить {n} на соответствующее значение value[n] и затем вычислить результат
))) а {1}*{2}-{3} - точно выражение?
А зачем весь код, если Вы уже заранее знаете значения в ячейках? Я это к чему...3.num - это значение или его "маска"?
...
Рейтинг: 0 / 0
replace в цикле.
    #38875690
last_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нужно это сделать в цикле, там же где вычисляются value[n]
...
Рейтинг: 0 / 0
replace в цикле.
    #38875696
last_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или можно создать массив записать туда values , потом заменить в исходном выражении и вычислить его?
...
Рейтинг: 0 / 0
replace в цикле.
    #38875697
Фотография Belavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D129last_man,

Зачем замена, есть же метод проще:

Код: c#
1.
2.
3.
4.
5.
6.
7.
string calculationTemplate = "{0}*{1}+{2}";

int N1 = 3;
int N2 = 4;
int N3 = 5;

string expressonWithValues = string.Format(calculationTemplate, N1, N2, N3);


Теперь допер что такое выражение ))) "Выражение" может меняться? string.Format(calculationTemplate, N1, N2, N3); не подходит - ТС в результате видимо нужно получить число (умножить и просуммировать значения).
...
Рейтинг: 0 / 0
replace в цикле.
    #38875705
last_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
выражение - это подстановочное выражение, куда нужно подставить вычисленные значения
...
Рейтинг: 0 / 0
replace в цикле.
    #38875707
Фотография D129
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BelavikТеперь допер что такое выражение ))) "Выражение" может меняться? string.Format(calculationTemplate, N1, N2, N3); не подходит - ТС в результате видимо нужно получить число (умножить и просуммировать значения).
Я подобные вещи не делал, это надо Code Dome и что-то типа динамических сборок подключать (?)...
Если топикастер пишет свой интерпритатор своего же языка программирования - то ... безумству храбрых...
:-)

Вопрос был про замену в строке.
...
Рейтинг: 0 / 0
replace в цикле.
    #38875713
Фотография Belavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_man,

"ячейки со значениями: 1.num,2.num,3.num"...не совсем понял.
Например, есть ячейка со значением "1.5,2.7,1.4", требуется "взять" 5,7 и 4, и, в соответствии с выражением "{0}*{1}+{2}" получить 5*7+4=39. Я правильно понял?
...
Рейтинг: 0 / 0
replace в цикле.
    #38875716
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_manвыражение - это подстановочное выражение, куда нужно подставить вычисленные значенияприведенный код это вроде как делает. string.Format альтернативное решение. Так проблема-то в чем? как подставить или как ВЫЧИСЛИТЬ?
...
Рейтинг: 0 / 0
replace в цикле.
    #38875717
last_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как подставить
...
Рейтинг: 0 / 0
replace в цикле.
    #38875724
last_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,
выражение может отличаться от случая к случаю, м.б. 3 переменных, может, 5
на этой строчке у меня ошибка
...
Рейтинг: 0 / 0
replace в цикле.
    #38875735
Фотография Belavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_manShocker.Pro,
выражение может отличаться от случая к случаю , м.б. 3 переменных, может, 5
на этой строчке у меня ошибка
Вот с этого надо было начинать )))
...
Рейтинг: 0 / 0
replace в цикле.
    #38875752
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_man,

параметры можно передавать массивом
string.Format(строка, массив).
Соответственно, если в строке 3 позиции, то и массив должен быть из 3 элементов.
...
Рейтинг: 0 / 0
replace в цикле.
    #38875753
last_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro приведенный код это вроде как делает
надо наверно вынести за фигурные
string value;
value = GetValue(Outt.Data, srcRowIndex, column).ToString();
expression = expression.Replace("{"+count+"}",value[count]).ToString();
...
Рейтинг: 0 / 0
replace в цикле.
    #38875768
last_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
после expression.Replace("{"+1+"}",value[1]).ToString();
выражение каким было таким и осталось {1}*{2}-{3}
а нужно 123.45*{2}-{3}
...
Рейтинг: 0 / 0
replace в цикле.
    #38875773
Фотография Belavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_man123.45
А 123.45 откуда взялось?
...
Рейтинг: 0 / 0
replace в цикле.
    #38875781
last_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BelavikА 123.45 откуда взялось?
value[1]).ToString()
...
Рейтинг: 0 / 0
replace в цикле.
    #38875786
Фотография Belavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_manBelavikА 123.45 откуда взялось?
value[1]).ToString()
А почему не 45.123?
...
Рейтинг: 0 / 0
replace в цикле.
    #38875801
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_manвыражение может отличаться от случая к случаю, м.б. 3 переменных, может, 5По-моему, сначала надо решить, что ты хочешь, а потом это уже программировать.

Что должно происходить, если подстановок меньше, чем аргументов?
Что должно происходить, если подстановок больше, чем аргументов?
...
Рейтинг: 0 / 0
replace в цикле.
    #38875808
last_man
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProЧто должно происходить, если подстановок меньше, чем аргументов?
Что должно происходить, если подстановок больше, чем аргументов?
просто выход
...
Рейтинг: 0 / 0
replace в цикле.
    #38875812
Фотография Belavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
last_manShocker.ProЧто должно происходить, если подстановок меньше, чем аргументов?
Что должно происходить, если подстановок больше, чем аргументов?
просто выход
куда?
...
Рейтинг: 0 / 0
25 сообщений из 33, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / replace в цикле.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]