WEISS
Client
- Регистрация
- 11.12.2015
- Сообщения
- 115
- Благодарностей
- 25
- Баллы
- 28
Нет, надо так Replace(""", "") а не хочет, ругаетсявместо
такКод:Replace(",first_name:", "|")
Код:Replace(",first_name:", "")
Нет, надо так Replace(""", "") а не хочет, ругаетсявместо
такКод:Replace(",first_name:", "|")
Код:Replace(",first_name:", "")
Экранировать надо спецсимволыНет, надо так Replace(""", "") а не хочет, ругается
а не получается ни так @, ни этак \Экранировать надо спецсимволы
вот так что ли" - экранируется "" через себя же
Спасибо, и ещё вопрос.Replace("\"", "")
это если ковычку хочешь заменить на пустоту
Macros.TextProcessing.ToList(str, @",", "Text", project, project.Lists["all"]);
Раньше работало так:Выполнена транспортировка негабаритного крана РДК-250 из Новгородской обл. в Коломну на трале типа "корыто".
*Выполнение перевозок строительной техники, производственного оборудования и негабаритных грузов в Екатеринбурге
*Выполнение перевозок строительной техники, производственного оборудования и негабаритных грузов в Екатеринбурге, Свердловской области и
*Выполнение перевозок строительной техники, производственного оборудования и негабаритных грузов в Екатеринбурге, Свердловской области и России.
*Выполнение перевозок строительной техники, производственного оборудования и негабаритных грузов в Коротчаево, ХМАО, ЯНАО и России.
Выполнение поручений диспетчера и руководителей строительных объектов по доставке крупногабаритных грузов и техники.
Выполнение работ по перевозке автотранспортных средств и негабаритных грузов автомобильным транспортом включает в себя: -погрузку
**Выполням профессионально и в срок: Перевозка негабаритных и тяжеловесных грузов Компания Разрушим.Ру - работаем в Ростове-на-Дону и РО,
**Выполням профессионально и в срок: Перевозка негабаритных и тяжеловесных грузов Компания Разрушим.Ру - работаем в Ростове-на-Дону и РО, а также по всему ЮФО.
Выполням профессионально и в срок: Перевозка негабаритных и или специфических особенностей нельзя перевозить в закрытом дорожном то спецтехника или
***Высококлассные опытные водители компании Т.К. АВТО ПЛЮС перевозили негабаритные грузы в Санкт-Петербург и Сочи
***Высококлассные опытные водители компании Т.К. АВТО ПЛЮС перевозили негабаритные грузы в Санкт-Петербург и Сочи, Красноярск и
***Высококлассные опытные водители компании Т.К. АВТО ПЛЮС перевозили негабаритные грузы в Санкт-Петербург и Сочи, Красноярск и Нижний Тагил, в Москву и
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 строк с порезанным на блоки контентом.
Не знаю, что спросившему надо, но, обычно такое делится либо на слово, либо на один из знаков препинания - . или , или ! или ?Что представляет из себя текст и как нужно разбивать на список? По предложениям или каждый блок заканчивается каким-то символом?
отключи прорисовку действий в пм и всё отработает быстроНарод, а есть у кого-нить снипет для работы с БД mysql?
Собственно задача. Есть список. В списке 2-3 тысячи строк. Нужно пройтись по всему списку и обновить значения в БД.
Строки типа
название@число
название2@число2
название3@число3
Запрос к БД типа
UPDATE `Swap_site` SET `price`= число WHERE `name` = название
Сейчас реализованно стандартными средствами зенки. Типа беру зарании подготовленную строку UPDATE из списка и делаю запрос к базе, но все это занимает много времени. На весь список уходит пару минут, что для меня очень долго.
Может есть возможность это снипетом реализовать?
не помогает. Даже в самом ZP это занимает минуты 1,5-2. А это очень долго для моих целейотключи прорисовку действий в пм и всё отработает быстро
Хм. Может я что-то не верно понял, но разве я могу генерить 1 запрос на изменение данных, если у меня все цены и названия разные?Попробуй сначала сгенерировать один запрос к бд сразу на все данные и его уже выполнить, а не по одному запросу на 1 слово
да, ты прав. Я сглупил. Я стандартные методы позволяют выполнить сразу несколько запросов?Хм. Может я что-то не верно понял, но разве я могу генерить 1 запрос на изменение данных, если у меня все цены и названия разные?
Вроде как нет. Если только попробовать сразу несколько строк UPDETE засовывать в один кубик. И то не факт, что это нормально работать будет. Вообще иногда кажется, что кубики работы со списками работают медленней, чем то же самое, но в снипете. Особенно при большом количестве строкда, ты прав. Я сглупил. Я стандартные методы позволяют выполнить сразу несколько запросов?
ну попробуй несколько апдейтов прописать. Если сработают - тогда попробуй сформировать сразу все апдейты и выполнить их за разВроде как нет. Если только попробовать сразу несколько строк UPDETE засовывать в один кубик. И то не факт, что это нормально работать будет. Вообще иногда кажется, что кубики работы со списками работают медленней, чем то же самое, но в снипете. Особенно при большом количестве строк
Пробовал. Сама база тупить начинает. Похоже захлебывается в запросах, если к ней сразу таким образом ломанутьсяпопробуй сформировать сразу все апдейты и выполнить их за раз
Это чертовски странно.Пробовал. Сама база тупить начинает. Похоже захлебывается в запросах, если к ней сразу таким образом ломануться
Ну не особо в целом то. У меня 6 сайтов с которых идет парсинг, на каждый сайт по шабу, с шаба каждого по такому файлу, парсинг нонстопом. База просто база. В целом то когда в нее по 3к запросов с 6 шабов залетает она себя не особо хорошо чувствуетЭто чертовски странно.
// результат выполнения
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;
Во вложении рабочий пример файла с текстом. Разбивать пытаюсь по предложениям, чтобы законченные знаком препинания блоки текста получались. С этим проблемы нет, режет на предложения. А вот объем текста в блоках в жесткие рамки никак не вставляется. Хотелось бы, к примеру, каждый блок иметь от 300 до 1000 символов.Что представляет из себя текст и как нужно разбивать на список? По предложениям или каждый блок заканчивается каким-то символом?
Во вложении рабочий пример файла с текстом. Разбивать пытаюсь по предложениям, чтобы законченные знаком препинания блоки текста получались. С этим проблемы нет, режет на предложения. А вот объем текста в блоках в жесткие рамки никак не вставляется. Хотелось бы, к примеру, каждый блок иметь от 300 до 1000 символов.
string pattern = @"^.{0,2800}(\.|\?|\!|\s)"; // где 2800 - максимальная длина выходных строк (в символах)
string pattern = @"^[\s\S]*?[\.|!|\?]"; // получает первое предложение, заканчивающееся ".","!","?"
С этого я и начинал. Логично было бы там задавать диапазон. Но, как только я ставлю там в первой части что-либо больше 200 (т.е. {200,2800}), получаю в результате работы этого блока пустой список. Никаких ошибок не выдает, но список, где должны быть блоки текста ПУСТОЙ.В этой строчке {0,2800} как раз и задает интервалы. Укажите {300,1000}C#:string pattern = @"^.{0,2800}(\.|\?|\!|\s)"; // где 2800 - максимальная длина выходных строк (в символах)
Если нужно разбить на предложения по одному, замените на эту строку:
C#:string pattern = @"^[\s\S]*?[\.|!|\?]"; // получает первое предложение, заканчивающееся ".","!","?"
Скорее всего. Начни тестить иначе. Задавай параметры от большого к малому, например {2500,2800}, потом {2200,2800}, {2000,2800} и так, на уменьшение. Тогда быстрее поймёшь, что к чемуМожет это быть из-за того, что в строчках контента не хватает символов? К примеру я задаю {500,800}, а в исходнике нет (или есть, но недостаточно) строк, длиной от 500 символов.