Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Добрый день!
Переменная var0 может иметь одно из 12-ти значений, буквально: 1,2,3,4,5,6,7,8,9,11,12.
Как написать снипет, чтобы выполнялось следующее условие:
Если значение var0 = 1 или 2 или 3, то оно получает значение var1;
Если значение var0 = 4 или 5 или 6, то оно получает значение var2;
Если значение var0 = 7 или 8 или 9, то оно получает значение var3;
Если значение var0 = 10 или 11 или 12, то оно получает значение var4.
Отрабатывает, но выдает пустое значение.
Например var0 изначально равен 12, а var4 по умолчанию имеет значение F11.
После выполнения шаблона var0 не имеет вообще никаких значений, а по идее должен получить значение F11.
lock(SyncObjects.TableSyncer)
{
var sourceTable = project.Tables["Table From"];
// если ячейка в колонке _MAIN_CATEGORY_ содержит в любом месте текст "из" - удалить строку полностью строку
int k = sourceTable.GetRow(0).ToList().IndexOf("_MAIN_CATEGORY_");
if(k > -1){
for(int i = 1; i < sourceTable.RowCount; i++){
if(sourceTable.GetCell(k, i).Trim().Contains("из")) {
sourceTable.DeleteRow(i);
}
}
}
}
Подскажите пожалуйста, что делаю не правильно, почему данный код удаляет строки через одну? а нужно подряд, удалить все строки которые удовлетворяют выражению if(sourceTable.GetCell(k, i).Trim().Contains("из"))
При повторном выполнении кода, удаляет ещё через одну строку и т.д.
Подскажите пожалуйста, что делаю не правильно, почему данный код удаляет строки через одну? а нужно подряд, удалить все строки которые удовлетворяют выражению if(sourceTable.GetCell(k, i).Trim().Contains("из"))
[
lock(SyncObjects.TableSyncer)
{
var sourceTable = project.Tables["Table From"];
// если ячейка в колонке _MAIN_CATEGORY_ содержит в любом месте текст "из" - удалить строку полностью строку
int k = sourceTable.GetRow(0).ToList().IndexOf("_MAIN_CATEGORY_");
if(k > -1){
for(int i = sourceTable.RowCount-1; i >= 0; i--){
if(sourceTable.GetCell(k, i).Trim().Contains("из")) {
sourceTable.DeleteRow(i);
}
}
}
}
lock(SyncObjects.TableSyncer)
{
var sourceTable = project.Tables["Table From"];
// если ячейка в колонке _MAIN_CATEGORY_ содержит в любом месте текст "из" - удалить строку полностью строку
int k = sourceTable.GetRow(0).ToList().IndexOf("_MAIN_CATEGORY_");
if(k > -1){
for(int i = sourceTable.RowCount-1; i >= 0; i--){
if(sourceTable.GetCell(k, i).Trim().Contains("из")) {
sourceTable.DeleteRow(i);
}
}
}
}
Добрый день, есть две таблицы, у обеих таблицах есть по две колонки ID, NAME в каждой.
нужно из таблицы 1 построчно брать данные и записывать в переменные, решил это так:
C#:
lock(SyncObjects.TableSyncer)
{
var sourceTable = project.Tables["fromTable"];
// берем данные из колонки ID
int k = sourceTable.GetRow(0).ToList().IndexOf("ID");
if(k > -1){
project.Variables["get_fromTable_id"].Value = sourceTable.GetCell(k, 1);
}
// берем данные из колонки для сопоставления
k = sourceTable.GetRow(0).ToList().IndexOf("NAME");
if(k > -1){
project.Variables["get_fromTable_name"].Value = sourceTable.GetCell(k, 1);
}
// удаляем только что взятую строку
k = sourceTable.GetRow(0).ToList().IndexOf(CompareColumnName);
if(k > -1){
sourceTable.DeleteRow(1);
}
}
далее нужно переменные (взятые из таблицы 1), проверить на вхождение в таблице 2, в колонке NAME и записать совпадения в таблицу 3, решил это так:
C#:
// берем из переменной id текста, который нужно искать
var productId = project.Variables["get_fromTable_id"].Value;
// берем из переменной текст, который надо искать
var findText = project.Variables["get_fromTable_name"].Value;
// получаем таблицу, в которой будем искать
var sourceTable = project.Tables["whereTable"];
// таблица в которую будем вставлять результат найденных сопоставленных комбинаций
var resultTable = project.Tables["resultTable"];
// ищем в каждой строчке в таблице
lock(SyncObjects.TableSyncer)
{
int h = sourceTable.GetRow(0).ToList().IndexOf("ID");
int k = sourceTable.GetRow(0).ToList().IndexOf("NAME");
if((h > -1) & (k > -1)){
for(int i = sourceTable.RowCount-1; i >= 1; i--){
string textCell = sourceTable.GetCell(k, i).Trim().ToLower();
string textContains = findText.Trim().ToLower();
if(textCell.EndsWith(textContains)){ //EndsWith - поиск в конце
if(!String.IsNullOrEmpty(textCell)){
resultTable.AddRow(new []{productId, sourceTable.GetCell(h, i), findText, sourceTable.GetCell(k, i)});
}
}
}
}
}
return "no";
Помогите пожалуйста объединить эти два кода, что бы работало одним кубиком. и не было вот так:
переменная number2 может иметь одно из буквенных значений: a, b, c, d
переменная num3 может иметь одно из цифровых значений: 1, 2, 3, 4
Как написать снипет, чтобы выполнялось следующее условие:
если number2 = a, то num3 = 1;
если number2 = b, то num3 = 2;
если number2 = c, то num3 = 3;
если number2 = d, то num3 = 4;
переменная number2 может иметь одно из буквенных значений: a, b, c, d
переменная num3 может иметь одно из цифровых значений: 1, 2, 3, 4
Как написать снипет, чтобы выполнялось следующее условие:
если number2 = a, то num3 = 1;
если number2 = b, то num3 = 2;
если number2 = c, то num3 = 3;
если number2 = d, то num3 = 4;
switch (project.Variables["number2"].Value)
{
case "a" : return "1";
case "b" : return "2";
case "c" : return "3";
case "d" : return "4";
}
Нужно снять галочку "Не возвращать значение" и указать переменную num3
Upd:
Или вот такой пример, если "num3" это абстрактная переменная и имена переменных будут разные в будущем.
Важно, назначение будет происходить сразу, снимать галочку "Не возвращать значение" не нужно.
Если значение не из перечисленных, то выход по красной ветке.
Назначение переменой значением с помощью switch:
switch (project.Variables["number2"].Value)
{
case "a" : project.Variables["num3"].Value = "1"; break;
case "b" : project.Variables["num3"].Value = "2"; break;
case "c" : project.Variables["num3"].Value = "3"; break;
case "d" : project.Variables["num3"].Value = "4"; break;
default: throw new Exception("В переменной number2 нет подходящего варианта");
}
Upd:
Или вот такой пример, если "num3" это абстрактная переменная и имена переменных будут разные в будущем.
Важно, назначение будет происходить сразу, снимать галочку "Не возвращать значение" не нужно.
Если значение не из перечисленных, то выход по красной ветке.
Назначение переменой значением с помощью switch:
switch (project.Variables["number2"].Value)
{
case "a" : project.Variables["num3"].Value = "1"; break;
case "b" : project.Variables["num3"].Value = "2"; break;
case "c" : project.Variables["num3"].Value = "3"; break;
case "d" : project.Variables["num3"].Value = "4"; break;
default: throw new Exception("В переменной number2 нет подходящего варианта");
}
Добрый день, есть две таблицы, у обеих таблицах есть по две колонки ID, NAME в каждой.
нужно из таблицы 1 построчно брать данные и записывать в переменные, решил это так:
C#:
lock(SyncObjects.TableSyncer)
{
var sourceTable = project.Tables["fromTable"];
// берем данные из колонки ID
int k = sourceTable.GetRow(0).ToList().IndexOf("ID");
if(k > -1){
project.Variables["get_fromTable_id"].Value = sourceTable.GetCell(k, 1);
}
// берем данные из колонки для сопоставления
k = sourceTable.GetRow(0).ToList().IndexOf("NAME");
if(k > -1){
project.Variables["get_fromTable_name"].Value = sourceTable.GetCell(k, 1);
}
// удаляем только что взятую строку
k = sourceTable.GetRow(0).ToList().IndexOf(CompareColumnName);
if(k > -1){
sourceTable.DeleteRow(1);
}
}
далее нужно переменные (взятые из таблицы 1), проверить на вхождение в таблице 2, в колонке NAME и записать совпадения в таблицу 3, решил это так:
C#:
// берем из переменной id текста, который нужно искать
var productId = project.Variables["get_fromTable_id"].Value;
// берем из переменной текст, который надо искать
var findText = project.Variables["get_fromTable_name"].Value;
// получаем таблицу, в которой будем искать
var sourceTable = project.Tables["whereTable"];
// таблица в которую будем вставлять результат найденных сопоставленных комбинаций
var resultTable = project.Tables["resultTable"];
// ищем в каждой строчке в таблице
lock(SyncObjects.TableSyncer)
{
int h = sourceTable.GetRow(0).ToList().IndexOf("ID");
int k = sourceTable.GetRow(0).ToList().IndexOf("NAME");
if((h > -1) & (k > -1)){
for(int i = sourceTable.RowCount-1; i >= 1; i--){
string textCell = sourceTable.GetCell(k, i).Trim().ToLower();
string textContains = findText.Trim().ToLower();
if(textCell.EndsWith(textContains)){ //EndsWith - поиск в конце
if(!String.IsNullOrEmpty(textCell)){
resultTable.AddRow(new []{productId, sourceTable.GetCell(h, i), findText, sourceTable.GetCell(k, i)});
}
}
}
}
}
return "no";
Помогите пожалуйста объединить эти два кода, что бы работало одним кубиком. и не было вот так:
project.Tables["resultTable"].Clear();
var fromTable = project.Tables["fromTable"];
var whereTable = project.Tables["whereTable"];
var resultTable = project.Tables["resultTable"];
lock(SyncObjects.TableSyncer)
{
// автопривязка колонок по названию
int h = fromTable.GetRow(0).ToList().IndexOf("ID");
int k = fromTable.GetRow(0).ToList().IndexOf("NAME");
//Процесс взятия колонок из таблицы fromTable (циклично)
if((h > -1) & (k > -1)){
for(int i = fromTable.RowCount-1; i >= 1; i--){
var productId = fromTable.GetCell(h, i); // id, который нужно искать
var findText = fromTable.GetCell(k, i); // имя, которое нужно искать
fromTable.DeleteRow(i);
//resultTable.AddRow(new []{productId, findText});
int f = whereTable.GetRow(0).ToList().IndexOf("ID"); // h -> f
int t = whereTable.GetRow(0).ToList().IndexOf("NAME"); // k -> t
if((f > -1) & (t > -1)){
for(int j = whereTable.RowCount-1; j >= 1; j--){
string textCell = whereTable.GetCell(t, j).Trim().ToLower();
string textContains = findText.Trim().ToLower();
if(textCell.EndsWith(textContains)){ //EndsWith - поиск в конце
if(!String.IsNullOrEmpty(textCell)){
resultTable.AddRow(new []{productId, whereTable.GetCell(f, j), findText, whereTable.GetCell(t, j)});
}
}
}
}
}
}
}
var rand =new random();
var randyear= rand.Next("1999","2022");
var randmonth=rand.Next("1","12");
var date= randyear.toString()+"-"+randmonth.toString();
var rand =new random();
var randyear= rand.Next("1999","2022");
var randmonth=rand.Next("1","12");
var date= randyear.toString()+"-"+randmonth.toString();
var rand =new Random();
var randyear= rand.Next("1999","2022");
var randmonth=rand.Next("1","12");
var date= randyear.ToString()+"-"+randmonth.ToString();
var rand =new random();
var randyear= rand.Next("1999","2022");
var randmonth=rand.Next("1","12");
var date= randyear.ToString()+"-"+randmonth.ToString();
Компиляция кода Ошибка в действии "CS0246" "The type or namespace name 'random' could not be found (are you missing a using directive or an assembly reference?)". [Строка: 1; Cтолбец: 15]
var rand =new Random();
var randyear= rand.Next("1999","2022");
var randmonth=rand.Next("1","12");
var date= randyear.ToString()+"-"+randmonth.ToString();
Как правильно поправить этот код, что бы заработал? Сейчас выдает ошибки:
10:33:25 Компиляция кода Ошибка в действии "CS1503" "Argument 1: cannot convert from 'int' to 'string'". [Строка: 9; Cтолбец: 23]
10:33:25 Компиляция кода Ошибка в действии "CS1503" "Argument 3: cannot convert from 'double' to 'string'". [Строка: 9; Cтолбец: 29]
C#:
lock(SyncObjects.TableSyncer)
{
var sourceTable = project.Tables["startTable"];
/*Округлить цены до целых чисел*/
int k = sourceTable.GetRow(0).ToList().IndexOf("Price");
if(k > -1){
for(int i = 1; i < sourceTable.RowCount; i++){
sourceTable.SetCell(k, i, Math.Round(double.Parse(sourceTable.GetCell(k, i).Trim().Replace(".", ",")), 0));
}
}
}
lock(SyncObjects.TableSyncer)
{
var sourceTable = project.Tables["startTable"];
/*Округлить цены до целых чисел*/
int k = sourceTable.GetRow(0).ToList().IndexOf("Price");
if(k > -1){
for(int i = 1; i < sourceTable.RowCount; i++){
sourceTable.SetCell(k, i, Convert.ToString(Math.Round(double.Parse(sourceTable.GetCell(k, i).Trim().Replace(".", ",")), 0)));
}
}
}
lock(SyncObjects.TableSyncer)
{
var sourceTable = project.Tables["startTable"];
/*Округлить цены до целых чисел*/
int k = sourceTable.GetRow(0).ToList().IndexOf("Price");
if(k > -1){
for(int i = 1; i < sourceTable.RowCount; i++){
sourceTable.SetCell(k, i, Convert.ToString(Math.Round(double.Parse(sourceTable.GetCell(k, i).Trim().Replace(".", ",")), 0)));
}
}
}
var rand =new Random();
var randyear= rand.Next(1999,2022);
var randmonth=rand.Next(1,12);
var date= randyear.ToString()+"-"+randmonth.ToString();
return date;
Скажи, пожалуйста, как генерировать месяц в формате 01, 02, 03 т.д, сейчас генерит от 1- до 12 без нуля перед цифрой одиночной
var rand =new Random();
var randyear= rand.Next(1999,2022);
var randmonth=rand.Next(1,12);
var date= randyear.ToString()+"-"+randmonth.ToString();
return date;
Скажи, пожалуйста, как генерировать месяц в формате 01, 02, 03 т.д, сейчас генерит от 1- до 12 без нуля перед цифрой одиночной