Бесплатные снипеты на заказ

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
" - экранируется "" через себя же
 

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
.Replace("\"", "")
это если ковычку хочешь заменить на пустоту
 
  • Спасибо
Реакции: WEISS

WEISS

Client
Регистрация
11.12.2015
Сообщения
115
Благодарностей
25
Баллы
28
.Replace("\"", "")
это если ковычку хочешь заменить на пустоту
Спасибо, и ещё вопрос
в версии 5.10 всё после замены пишет в список через запятую вот этот код
Код:
 Macros.TextProcessing.ToList(str, @",", "Text", project, project.Lists["all"]);
а в версии 5.9 ругается, подскажите плиз.
 

evgen2208

Client
Регистрация
12.10.2016
Сообщения
130
Благодарностей
162
Баллы
43
Уважаемые знатоки, Нужен сниппет для выполнения следующей задачи: "почистить неполные дубли текста".

Имеется список строк (выдача гугла и яндекса) около 27МБ текста. В этом тексте куча повторений, но они не 100% дубли.

Примеры строк звездочкой пометил те самые дубли:

Выполнена транспортировка негабаритного крана РДК-250 из Новгородской обл. в Коломну на трале типа "корыто".
*Выполнение перевозок строительной техники, производственного оборудования и негабаритных грузов в Екатеринбурге
*Выполнение перевозок строительной техники, производственного оборудования и негабаритных грузов в Екатеринбурге, Свердловской области и
*Выполнение перевозок строительной техники, производственного оборудования и негабаритных грузов в Екатеринбурге, Свердловской области и России.
*Выполнение перевозок строительной техники, производственного оборудования и негабаритных грузов в Коротчаево, ХМАО, ЯНАО и России.
Выполнение поручений диспетчера и руководителей строительных объектов по доставке крупногабаритных грузов и техники.
Выполнение работ по перевозке автотранспортных средств и негабаритных грузов автомобильным транспортом включает в себя: -погрузку

**Выполням профессионально и в срок: Перевозка негабаритных и тяжеловесных грузов Компания Разрушим.Ру - работаем в Ростове-на-Дону и РО,
**Выполням профессионально и в срок: Перевозка негабаритных и тяжеловесных грузов Компания Разрушим.Ру - работаем в Ростове-на-Дону и РО, а также по всему ЮФО.
Выполням профессионально и в срок: Перевозка негабаритных и или специфических особенностей нельзя перевозить в закрытом дорожном то спецтехника или

***Высококлассные опытные водители компании Т.К. АВТО ПЛЮС перевозили негабаритные грузы в Санкт-Петербург и Сочи
***Высококлассные опытные водители компании Т.К. АВТО ПЛЮС перевозили негабаритные грузы в Санкт-Петербург и Сочи, Красноярск и
***Высококлассные опытные водители компании Т.К. АВТО ПЛЮС перевозили негабаритные грузы в Санкт-Петербург и Сочи, Красноярск и Нижний Тагил, в Москву и
Раньше работало так:
Было всего 200 строк в тексте (Каждый раз парсилась выдача)

1. регуляркой (\w+\W){6} выбираю ВСЕ словосочетания больше 6 слов - в список1
2. Удаляю дубли с списке1
3. Беру строку1 из списка1 (+Escape) и делаю в исходном тексте поиск-замена .*{строка1}.*
номера совпадений 1-end
повторяю пока не кончатся строки в списке1.

Проблема возникла, когда захотел использовать накопленный текст (там около 27 мб), и таких полу-дублей в нем больше 6 тысяч.
Пока ни разу не хватило терпения дождаться выполнения проекта.
(и хотелось бы чистить номера совпадений от 0 до предпоследнего)
 
Последнее редактирование:

sipoku

Client
Регистрация
04.04.2010
Сообщения
266
Благодарностей
138
Баллы
43
Друзья, помогите разобраться в коде, который тут нашел. И, может, подредактировать под мои цели. Вот код:

Код:
string input = project.Variables["content2"].Value; // Исходный текст
var list = project.Lists["temp"]; // Список выходных строк
list.Clear(); // Очищаем список
int count = 10; // Количество строк
for (int i = 0; i < count; i++)
{
    string pattern = @"^.{0,2800}(\.|\?|\!|\s)"; // где 2800 - максимальная длина выходных строк (в символах)
    Match match = Regex.Match(input, pattern);
    if (match.Success)
    {
        list.Add(match.Value.Trim());
        input = input.Remove(0, match.Length);
    }
}
project.Variables["content2"].Value = input;
На входе берется переменная с текстом внутри (большой объем). На выходе в списке 10 строк с порезанным на блоки контентом. И вот я думал здесь "0,2800" можно задать желаемый объем каждого блока в символах. А они получаются ну очень разными. Нельзя ли как-то задать минимальный и максимальный объем в символах?

На данный момент при каждом запуске разные блоки:
1_блок - 197симв, 2_блок - 475симв, 3_блок - 433симв, 4_блок - 199симв, 5_блок - 482симв, 6_блок - 201симв.
1_блок - 213симв, 2_блок - 453симв, 3_блок - 223симв, 4_блок - 412симв, 5_блок - 410симв, 6_блок - 287симв.

И все далеки от заданных 2800 символов.

Не помню кто автор этого кода, но большое ему спасибо! И заранее спасибо тому, кто поможет сделать результаты его работы более управляемыми.
 

Skrim

Client
Регистрация
23.03.2016
Сообщения
125
Благодарностей
86
Баллы
28
На входе берется переменная с текстом внутри (большой объем). На выходе в списке 10 строк с порезанным на блоки контентом.
Что представляет из себя текст и как нужно разбивать на список? По предложениям или каждый блок заканчивается каким-то символом?
 

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
Что представляет из себя текст и как нужно разбивать на список? По предложениям или каждый блок заканчивается каким-то символом?
Не знаю, что спросившему надо, но, обычно такое делится либо на слово, либо на один из знаков препинания - . или , или ! или ?
 

kopc

Client
Регистрация
24.11.2011
Сообщения
149
Благодарностей
57
Баллы
28
Народ, а есть у кого-нить снипет для работы с БД mysql?

Собственно задача. Есть список. В списке 2-3 тысячи строк. Нужно пройтись по всему списку и обновить значения в БД.
Строки типа
название@число
название2@число2
название3@число3

Запрос к БД типа
UPDATE `Swap_site` SET `price`= число WHERE `name` = название

Сейчас реализованно стандартными средствами зенки. Типа беру зарании подготовленную строку UPDATE из списка и делаю запрос к базе, но все это занимает много времени. На весь список уходит пару минут, что для меня очень долго.

Может есть возможность это снипетом реализовать?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Народ, а есть у кого-нить снипет для работы с БД mysql?

Собственно задача. Есть список. В списке 2-3 тысячи строк. Нужно пройтись по всему списку и обновить значения в БД.
Строки типа
название@число
название2@число2
название3@число3

Запрос к БД типа
UPDATE `Swap_site` SET `price`= число WHERE `name` = название

Сейчас реализованно стандартными средствами зенки. Типа беру зарании подготовленную строку UPDATE из списка и делаю запрос к базе, но все это занимает много времени. На весь список уходит пару минут, что для меня очень долго.

Может есть возможность это снипетом реализовать?
отключи прорисовку действий в пм и всё отработает быстро
 

kopc

Client
Регистрация
24.11.2011
Сообщения
149
Благодарностей
57
Баллы
28

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Попробуй сначала сгенерировать один запрос к бд сразу на все данные и его уже выполнить, а не по одному запросу на 1 слово
 

kopc

Client
Регистрация
24.11.2011
Сообщения
149
Благодарностей
57
Баллы
28
Попробуй сначала сгенерировать один запрос к бд сразу на все данные и его уже выполнить, а не по одному запросу на 1 слово
Хм. Может я что-то не верно понял, но разве я могу генерить 1 запрос на изменение данных, если у меня все цены и названия разные?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Хм. Может я что-то не верно понял, но разве я могу генерить 1 запрос на изменение данных, если у меня все цены и названия разные?
да, ты прав. Я сглупил. Я стандартные методы позволяют выполнить сразу несколько запросов?
 

kopc

Client
Регистрация
24.11.2011
Сообщения
149
Благодарностей
57
Баллы
28
да, ты прав. Я сглупил. Я стандартные методы позволяют выполнить сразу несколько запросов?
Вроде как нет. Если только попробовать сразу несколько строк UPDETE засовывать в один кубик. И то не факт, что это нормально работать будет. Вообще иногда кажется, что кубики работы со списками работают медленней, чем то же самое, но в снипете. Особенно при большом количестве строк
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Вроде как нет. Если только попробовать сразу несколько строк UPDETE засовывать в один кубик. И то не факт, что это нормально работать будет. Вообще иногда кажется, что кубики работы со списками работают медленней, чем то же самое, но в снипете. Особенно при большом количестве строк
ну попробуй несколько апдейтов прописать. Если сработают - тогда попробуй сформировать сразу все апдейты и выполнить их за раз
 

kopc

Client
Регистрация
24.11.2011
Сообщения
149
Благодарностей
57
Баллы
28
попробуй сформировать сразу все апдейты и выполнить их за раз
Пробовал. Сама база тупить начинает. Похоже захлебывается в запросах, если к ней сразу таким образом ломануться
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113

kopc

Client
Регистрация
24.11.2011
Сообщения
149
Благодарностей
57
Баллы
28
Это чертовски странно.
Ну не особо в целом то. У меня 6 сайтов с которых идет парсинг, на каждый сайт по шабу, с шаба каждого по такому файлу, парсинг нонстопом. База просто база. В целом то когда в нее по 3к запросов с 6 шабов залетает она себя не особо хорошо чувствует
 

kopc

Client
Регистрация
24.11.2011
Сообщения
149
Благодарностей
57
Баллы
28
Хм. Покопался на форуме и нашел в этой теме код подключения к БД и выборки от туда по параметру. Собственно говоря понял как в коде отдаются команды БД.
Может кто помочь код подправить под мои нужны? Нужно чтобы брал первую строку из списка, удалял ее и подставлял эту строку в качестве команды БД. И все это пока строки в списке не кончатся

Код:
// результат выполнения
string result = String.Empty;
// команда для MySql
var command = new MySql.Data.MySqlClient.MySqlCommand();
// строка подключения
string connectionString = "Data source=localhost;UserId=user;Password=qwerty;database=MyDatabaseName;";
// текст команды (Ну то есть забрать всё из Data)
command.CommandText = "SELECT * FROM Data;";
// пытаемся подключиться
try
{
    // создаём подключение
    command.Connection = new MySql.Data.MySqlClient.MySqlConnection(connectionString);
}
catch(Exception e)
{
    // не получилось
    result = "MySql connect failed";
}
// подключение не возможно -> выходим
if (result != String.Empty) return result;
// ловим исключение
try
{
    // откроем соединение
    command.Connection.Open();
    // выполним команду
    var reader = command.ExecuteReader();
    // запишим данные сюда
    StringBuilder sb = new StringBuilder();
    int i = 0;
    // до тех пор пока есть что читать
    while (reader.Read())
    {
        i++;
        // пусть в таблице 3 записи id|firstname|lastname
        sb.AppendLine(String.Format("№{0}: id = {1} | first name = {2} | last name = {3}", i,
                                    reader["id"], reader["firstname"], reader["lastname"]));
    }
    // это и вернём
    result = sb.ToString();
    // закроем
    reader.Close();
}
catch (MySql.Data.MySqlClient.MySqlException e)
{
    // словили
    result = String.Format("MySql reader exception: {0}", e.Message);
}
finally
{
    // что бы не произошло закроем соединение
    command.Connection.Close();
}
// вернём результат
return result;
 

sipoku

Client
Регистрация
04.04.2010
Сообщения
266
Благодарностей
138
Баллы
43
Что представляет из себя текст и как нужно разбивать на список? По предложениям или каждый блок заканчивается каким-то символом?
Во вложении рабочий пример файла с текстом. Разбивать пытаюсь по предложениям, чтобы законченные знаком препинания блоки текста получались. С этим проблемы нет, режет на предложения. А вот объем текста в блоках в жесткие рамки никак не вставляется. Хотелось бы, к примеру, каждый блок иметь от 300 до 1000 символов.
 

Вложения

Skrim

Client
Регистрация
23.03.2016
Сообщения
125
Благодарностей
86
Баллы
28
Во вложении рабочий пример файла с текстом. Разбивать пытаюсь по предложениям, чтобы законченные знаком препинания блоки текста получались. С этим проблемы нет, режет на предложения. А вот объем текста в блоках в жесткие рамки никак не вставляется. Хотелось бы, к примеру, каждый блок иметь от 300 до 1000 символов.
C#:
string pattern = @"^.{0,2800}(\.|\?|\!|\s)"; // где 2800 - максимальная длина выходных строк (в символах)
В этой строчке {0,2800} как раз и задает интервалы. Укажите {300,1000}
Если нужно разбить на предложения по одному, замените на эту строку:
C#:
string pattern = @"^[\s\S]*?[\.|!|\?]"; // получает первое предложение, заканчивающееся ".","!","?"
 

mrfeathers

Новичок
Регистрация
07.11.2015
Сообщения
14
Благодарностей
0
Баллы
1
Нужна помощь с написании снипета по подключению к серваку по SSH (логин, пасс, ip, команда - переменные) выполнении команды и отключению.
Есть желающие помочь?
 

sipoku

Client
Регистрация
04.04.2010
Сообщения
266
Благодарностей
138
Баллы
43
C#:
string pattern = @"^.{0,2800}(\.|\?|\!|\s)"; // где 2800 - максимальная длина выходных строк (в символах)
В этой строчке {0,2800} как раз и задает интервалы. Укажите {300,1000}
Если нужно разбить на предложения по одному, замените на эту строку:
C#:
string pattern = @"^[\s\S]*?[\.|!|\?]"; // получает первое предложение, заканчивающееся ".","!","?"
С этого я и начинал. Логично было бы там задавать диапазон. Но, как только я ставлю там в первой части что-либо больше 200 (т.е. {200,2800}), получаю в результате работы этого блока пустой список. Никаких ошибок не выдает, но список, где должны быть блоки текста ПУСТОЙ.
Может это быть из-за того, что в строчках контента не хватает символов? К примеру я задаю {500,800}, а в исходнике нет (или есть, но недостаточно) строк, длиной от 500 символов.
 

Valiksim

Client
Регистрация
14.04.2012
Сообщения
1 344
Благодарностей
298
Баллы
83
Может это быть из-за того, что в строчках контента не хватает символов? К примеру я задаю {500,800}, а в исходнике нет (или есть, но недостаточно) строк, длиной от 500 символов.
Скорее всего. Начни тестить иначе. Задавай параметры от большого к малому, например {2500,2800}, потом {2200,2800}, {2000,2800} и так, на уменьшение. Тогда быстрее поймёшь, что к чему
 
Регистрация
08.07.2015
Сообщения
2 848
Благодарностей
712
Баллы
113

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
нет эту тему валим
 

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