Сравнение переменных с допуском незначительной погрешности.

bitport

Client
Регистрация
15.10.2016
Сообщения
117
Благодарностей
14
Баллы
18
Всем привет, помогите решить задачу.

Есть две переменные, это либо два совершенно разных значения например

var1 https://test.ru/ - var2 анкорtest

либо ссылка без анкора, но без слеша в конце или без http:// в начале строки

var1 https://test.ru/ - var2 https://test.ru


Как при сравнении научиться понимать что это тоже самое значение с условием что отличия в конце и в начале допустимы?


Как вариант можно конечно пробовать обрезать от слеша до точки и оставить "тело" url адреса и сравнить, есть ещё варианты?

Заранее спасибо.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
проверять, является ли 2я вхождением первой, как вариант
 
  • Спасибо
Реакции: bitport

evgen_po

Client
Регистрация
27.08.2013
Сообщения
848
Благодарностей
532
Баллы
93
Можно попробовать проверять на вхождение. Т.е. переменная1 содержит в себе переменную2, а потом наоборот - переменная2, содержит переменную1.
 
  • Спасибо
Реакции: bitport

bitport

Client
Регистрация
15.10.2016
Сообщения
117
Благодарностей
14
Баллы
18
Спасибо, попробую так поэкспериментировать. То-есть regex через обработку текста?
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
540
Благодарностей
395
Баллы
63
Код:
if(var1.Contains(var2) || var2.Contains(var1))
{
    return "true";
}
метод 69)
 
  • Спасибо
Реакции: orka13 и bitport

bitport

Client
Регистрация
15.10.2016
Сообщения
117
Благодарностей
14
Баллы
18

SergSh

Client
Регистрация
10.05.2017
Сообщения
540
Благодарностей
395
Баллы
63
Код:
string var1 = project.Variables["site1"].Value; //Первая переменная с урлом
string var2 = project.Variables["site2"].Value;//Вторая переменная с урлом
if(var1.Contains(var2) || var2.Contains(var1))
{
    return "true";
}
else
{
    return "false";
}
В кубик c# - в кубике внизу выбираешь в какую переменную ответ должен попасть - на выходе true (успех), false (нет совпадений)
 

keltuzhaknut

Client
Регистрация
24.02.2016
Сообщения
221
Благодарностей
3
Баллы
18
Подскажите а как сделать следующее сравнение, пытался делать через обычный экшен, а оно что-то не правильно работает, как-то через раз криво, не ровно.
Хотелось бы в c# кубике реализовать, к примеру в переменной есть числа, которые нужно сравнить и есть просто числа от 1 до 400 которое каждое по отдельности нужно сравнить с переменной, как сделать ? в c#? тут я 0 просто полный...( Сравнения подобного плана.. если в переменной число больше чем указаны просто цифры, то все ок, если меньше то не успех, если больше или равно то успех, к примеру нужно замерить картинку, если высота меньше 400 или ширина меньше 400 , то не успех, если больше и равно то успех, задача следующая - отфильтровать все маленькие картинки, аватарки не нужные и прочие мелкие изображения ... цель - сбор качественных фото
 

keltuzhaknut

Client
Регистрация
24.02.2016
Сообщения
221
Благодарностей
3
Баллы
18
Решил проблему, результат в переменную, если выдает - ок, то число меньше, если другие цифры, то больше сравнимого..
Код:
string value1 = project.Variables["height"].Value;
string value2 = "400";
System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");

if (double.Parse(value1, culture) > double.Parse(value2, culture)) {
    project.SendInfoToLog("Oki Oki");
    return value1;
}
else {
    project.SendErrorToLog("Error");
}
 

SergSh

Client
Регистрация
10.05.2017
Сообщения
540
Благодарностей
395
Баллы
63
Решил проблему, результат в переменную, если выдает - ок, то число меньше, если другие цифры, то больше сравнимого..
Код:
string value1 = project.Variables["height"].Value;
string value2 = "400";
System.Globalization.CultureInfo culture = new System.Globalization.CultureInfo("en-US");

if (double.Parse(value1, culture) > double.Parse(value2, culture)) {
    project.SendInfoToLog("Oki Oki");
    return value1;
}
else {
    project.SendErrorToLog("Error");
}
Код:
var imglst = project.Lists["ImgPathList"];//Список путей к изображениям
var imgres = project.Lists["ImgResultList"];//Список путей к изображениям с подходящими параметрами

int w = 100; //Минимальная высота
int h = 100; //Минимальная ширина

   
    for(int i = 0; i < imglst.Count; i++)
    {
        try{
       
            var img = imglst[i];
       
            using(Bitmap imgsize = new Bitmap(img, true))
            {
                if(imgsize.Height >= h && imgsize.Width >= w)
                {
                    imgres.Add(img);
                }
            }
        }
        catch(Exception ex)
        {}
    }
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)