Опубликовано Август 27, 2012 рубрики:
C#|Комментарии к записи не решено: RegEx, парсинг строки отключены
задача распарсить строку вида «First, Second <email@email.t1>, First <email@email.t2>, email@email.t3»
в массив строк с почтовыми адресами.
(получить в результате: «First, Second <email@email.t1>»,»First <email@email.t2>»,»email@email.t3″)
в адресе может быть запятая, поэтому тупо разбить по ним не получится.
нужно придумать красивое регулярное выражение.
Опубликовано Февраль 14, 2012 рубрики:
C#|Комментарии к записи C# MVC3 + задачка отключены
в копилке вопросов пополнение.
как сделать такую штуку. Для одной абстрактной сущности реализовать возможность изменения модели контрола и представления.
К примеру есть рубрика «статьи» 90% которых стандартны. Но иногда требуется расширить запись, подгрузив в нее некоторые данные.
Реализовать это хочется так, есть стандартный контролер и модель, мы предаем параметр и если по параметру не находится класса для обработки этого запроса, то пускаем его на стандартный, в противном случае порождаем объект и используем его.
Видится мне что должен быть какой-то предварительный слой, который анализирует переданные параметры, а потом уже создает контролер или использует контролер по умолчанию.
Сейчас решение этой задачки кроется в расширении модели до такой степени чтобы она учитывала все варианты, в контроле большой switch который заполняет нужные данные в этой модели. И кидает эту модель в нужное вьюху. А хочется красоты…
Опубликовано Ноябрь 4, 2011 рубрики:
C#,
Perl,
PHP|Комментарии к записи RegExp отключены
Как обычно, появилась интересная задачка по регулярным выражениям, требуется написать некоторый макрос, который при встрече в шаблоне текста будет заменяться определенными значениями сформированными из параметров макроса. И чтобы было не совсем тривиально будет еще упрощенная версия этого же макроса.
упрощенный макрос link{«text»,id} и полная версия link{«text»,id}img{id}, результат их работы будет таков
макрос номер 1:
<a href="link_id">text</a>
макрос номер 2:
<a href="link_id">text<img src="img_id"></a>
регулярное выражение для полной версии макроса
/link\{«(.*?)»,([0-9]+)?)\}img\{([0-9]+?)\}/
и соответственно для упрощенной
/link\{«(.*?)»,([0-9]+?)\}/
пример шаблона:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed arcu link{«lorem»,10}img{20}, semper id dictum sit amet, egestas a dui. Donec condimentum link{«gravida ullamcorper»,5}.
результат работы регулярного выражения для полной версии макроса lorem, 10, 20
результат работы для упрощенной: lorem»,10}img{20}, semper id dictum sit amet, egestas a dui. Donec condimentum link{«gravida ullamcorper, 5
Прямо скажем, не то что я ожидал увидеть. Пробовал разные варианты ограничить жадность квантификаторов, даже всякие магически пасы в виде ?!, ?!= и прочих, пока без просвета.
Опубликовано Июль 1, 2011 рубрики:
C#|Комментарии к записи regexp отключены
как интересно получить из этого
«123| 1.doc, 6433| (1,2,3).rtf, 8536| ytu.dat»
массив
string[] {«123| 1.doc»,»6433| (1,2,3).rtf»,»8536| ytu.dat»}
на ум пришла такая регулярка /(\d+?\|.+?),?/, но в лоб такая конструкция возвращает только \d+\|, оставляем .+, и выражение берет всю строку, что бы сделать с жадностью квантификатора.
upd:
решение как всегда оказалось намного проще 🙂
Regex regex = new Regex(",(?=s*\\d+\\|)");
var parts = regex.Split(files);
Опубликовано Март 11, 2011 рубрики:
C#|Комментарии к записи пример создания excel документа отключены
Создание и заполнение документа excel используя openXML SDK.
SDK берем тут, скачиваем тот что поменьше. И подключаем библиотеки в наш проект.
До конца с форматом openxml и возможностями SDK я разобраться не успел, но создать простой лист и заполнить его данными получилось.
На выходе будем иметь вот это:
Подробнее »
Опубликовано Ноябрь 16, 2010 рубрики:
C#|Комментарии к записи пример заполнения DataGridView отключены
SqlConnection conn = new SqlConnection(@"Data Source=192.168.0.1,1433;Network Library=DBMSSOCN;Initial Catalog=test;User ID=test;Password=test;");
String sqlquery = "SELECT orderid FROM Sales.Orders;";
try
{
conn.Open();
SqlCommand cmd = new SqlCommand(sqlquery, conn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds,"myTable");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "myTable";
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
finally
{
conn.Close();
}
или забить в грид простой массив:
//...
try
{
string[] stuff = new string[] { "One", "Two", "Three" };
dataGridView1.DataSource = stuff;
}
//...
Опубликовано Ноябрь 16, 2010 рубрики:
C#|Комментарии к записи строка подключения к MSSQL 2008 EXPRESS отключены
после установки ms sql 2008 express, в оснастке sql server configuration manager, заходим в SQL Server Network Configuration, там выбираем свой сервер, и разрешаем доступ.
TCP/IP enabled. Далее разрешаем sql и windows аутентификацию, и даем права доступа пользователю на работу с нужной базой.
Data Source=IP, порт;Network Library=DBMSSOCN;Initial Catalog=база данных;User ID=логин;Password=пароль;
пример (C#):
SqlConnection conn = new SqlConnection(@"Data Source=192.168.10.1,1433;Network Library=DBMSSOCN;Initial Catalog=test;User ID=test;Password=test;");
try
{
conn.Open();
}
catch (SqlException ex)
{
Console.WriteLine(ex.Message);
}
Опубликовано Июль 17, 2010 рубрики:
C#|Комментарии к записи возвращаемое значение типа enum, вопрос отключены
вопросы с которыми столкнулся:
вернуть в методе enum, чтобы получить удобный список констант во внешнем классе и от туда передать эти значения как параметры, с наскока не вышло).
class Main(){
A dz=new A();
dz.DO(dz.getCommandList().DIR);
}
class A(){
private enum en={DIR, DEL, CLS};
public enum getCommandList(){
return en;
}
public void DO(string c){
switch (c){
en.DIR:
...
break;
...
default:
break;
}
}
}