Замена всех цифр в тексте, меньше определенной.

confirm2315

Новичок
Регистрация
26.01.2015
Сообщения
27
Благодарностей
10
Баллы
3
Здравствуйте! Есть текст, в нем даты в Юникс формате, как мне заменить все даты, которые меньше определенной?
Замену по нормальной дате реализовал разбив год на 4 числа и потом циклом увеличивал на один, заменяя каждую. Естественно, для юникс формата не подойдет, слишком долго будет выполнение.
Можно ли это сделать одним махом?
Огромная просьба не отвечать в плане "сниппетом на С#" или "Javascript", ибо этих языков не знаю. Если решение только на уровне этого кода, был бы невероятно признателен за код.

P.S. Нужная дата("определенная") - в переменной.
 

confirm2315

Новичок
Регистрация
26.01.2015
Сообщения
27
Благодарностей
10
Баллы
3
Только что понял, как затупил с разбивкой на 4 цифры, когда мог одну увеличивать. :-)
Уже польза от форума есть. :D
 

sekoan

Client
Регистрация
04.01.2015
Сообщения
219
Благодарностей
92
Баллы
28
У меня тоже так бывает :-)
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
Дата в unix формате в моем понимании это UnixTimeStamp 1424503706
 

confirm2315

Новичок
Регистрация
26.01.2015
Сообщения
27
Благодарностей
10
Баллы
3
Да, именно она. Пока попробовал таким вот сниппетом(подглядел на форуме):
Код:
int min = int.Parse(project.Variables["min"].Value);
int max = int.Parse(project.Variables["max"].Value);
string res=null;
for(int i=min;i<=max;i++)
{
res+=i.ToString()+"|";
}
res= res.Substring(0,res.Length-4);
return res;
Заменять год, стало быстрее. Но, почему-то 6М разных таких чисел сниппет наотрез отказался генерировать. Вернее он пытался, но у него не вышло. :-)
Может посоветуете, что тут можно сделать?
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
Примерный набросок. По идее юниксовое время надо сконвертировать в нормальное человеческое время типа {21.02.2015 11:05:13}
C#:
System.DateTime unixTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
unixTime= unixTime.AddSeconds(project.Variables["unixTime"].Value).ToLocalTime(); // Конвертируем юниксовое время в
DateTime dt = DateTime.Now; // Текущее время                                            // нормальное время       

if (dt > unixTime) // Если текущее время больше юниксового, то...
   {
               
   }
 

confirm2315

Новичок
Регистрация
26.01.2015
Сообщения
27
Благодарностей
10
Баллы
3
К сожалению не подойдет. Я неправильно поставил вопрос. Дата у меня в юникс Javascript'ом уже сконвертирована, лежит в переменной. Пока есть такие исходные - две переменные(текущая дата(1) и минимальная дата(2)), в диапазоне которых или ниже минимальной, нужно удалить\заменить даты и переменная(3) с кучей данных, где таких дат будет обрабатываться 150000 за один цикл. Как пример:
Переменная 3 -"Вася ходил на речку купаться в 1424503706, Петя - в 1424502348, Юля - в 1424302222, а Иван аж 1223446325"
И таких Петь, Вась и Юль 150к. Нужно заменить либо даты в диапазоне 1424240000(пер.2)-142450000(пер.1)(тогда Иван останется неизменным), либо заменить все, которые меньше 1224240000, тогда заменится только Иван. Регуляркой это успешно выбирается и может быть положено в список. Если можно как-то в списке заменить, было бы неплохо. А потом в тексте заменить остатки списка. При этом не то, что менять каждую отдельно, даже сгенерировать все варианты в диапазоне не выходит. При этом if не подойдет, скорее всего, потому что выдает True\False, что можно положить только в цикл, но такой цикл будет длиться оочень долго.
Я понимаю, что задачка не из легких(наверное), но я был бы очень рад помощи. Только начинаю разбираться с зенно. Спасибо. :-)
 

Radzhab

Client
Регистрация
23.05.2014
Сообщения
1 500
Благодарностей
1 268
Баллы
113
скинь шаб с текстом в личку. Разберемся
 

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