Рубрика архива: IT

пример создания excel документа

Создание и заполнение документа excel используя openXML SDK.
SDK берем тут, скачиваем тот что поменьше. И подключаем библиотеки в наш проект.

До конца с форматом openxml и возможностями SDK я разобраться не успел, но создать простой лист и заполнить его данными получилось.
На выходе будем иметь вот это:

Подробнее »

java + regexp

Регулярные выражения в java это мощный инструмент работы с текстом.
Возникла необходимость получить данные из формата json, стандартных классов не нашел. А для моей задачи возможности json_simple были избыточны.
И вот родился такой небольшой парсер.

public void parse(){
		Pattern p = Pattern.compile("\\{GsearchResultClass=GimageSearch, width=([0-9]+?), height=([0-9]+?), imageId=(.+?), tbWidth=([0-9]+?), tbHeight=([0-9]+?), unescapedUrl=(.+?), url=(.+?), visibleUrl=(.+?), title=(.+?), titleNoFormatting=(.+?), originalContextUrl=(.+?), content=(.+?), tbUrl=(.+?)\\}");
		Matcher m=p.matcher(this.str);		
		while(m.find()) {
		    System.out.println("1: " + m.group(1));
		    System.out.println("2: " + m.group(2));
		    System.out.println("3: " + m.group(3));
		    System.out.println("4: " + m.group(4));
		    System.out.println("5: " + m.group(5));
		    System.out.println("6: " + m.group(6));
		    System.out.println("7: " + m.group(7));
		    System.out.println("8: " + m.group(8));
		    System.out.println("9: " + m.group(9));
		    System.out.println("10: " + m.group(10));
		    System.out.println("11: " + m.group(11));
		    System.out.println("12: " + m.group(12));
		    System.out.println("13: " + m.group(13));
		    System.out.println("------------------------------");
		}

	}

Yii, первые шаги

начав изучать этот фреймворк с наскоку не с разу понял как изменить контролер по умолчанию, догадывался что нужно чего-то вписать в файл конфигурации, но что понимал смутно. Прямого ответа гугл не дал, а он как оказалось был так близок.

в классе CWebApplication, есть публичное свойство defaultController, по умолчанию равное site, задать новое значение можно в файле конфигурации. Примерно так:

//config/main.php
return array(
	//...
    'defaultController'=>'otherControler',
	//...
}

обход «блокировка транзитных пакетов»


На заметку:
для доступа к интернету из виртуальной машины не через её NAT в правилах Outpost Firewall (v 7.) нужно прописать следующее.
в меню НАСТРОЙКИ — БРАНДМАУЭР — СЕТЕВЫЕ ПРАВИЛА — СИСТЕМНЫЕ ПРАВИЛА — НИЗКОУРОВНЕВЫЕ ПРАВИЛА
добавить 2 правила

1-ое
— где тип протокола IP (отметить протоколы)

  • ICMP
  • TCP
  • UDP

— удаленый адрес (адрес виртуальной машины)
— разрешить

2-ое
— где тип протокола IP (отметить протоколы)

  • ICMP
  • TCP
  • UDP

— локальный адрес (адрес виртуальной машины)
— разрешить

пишем галерею, часть 2.

как минимум нашим классам будет полезно получать информацию о конфигурации сайта, и было бы не плохо вынести в отдельный класс все вспомогательные функции, для работы с данными ввода/вывода.
Подробнее »

пишем галерею, часть 1.

Сколько всего уже успели понаписать в нашем мире, есть и большие навороченные галереи, есть и маленькие, есть прекрасные а есть не очень. Есть галереи с использованием БД, а есть нет. Казалось, выбирай и радуйся. Но это просто, а значит не интересно. Будем писать галерею с использованием ООП, на ПХП :), без БД, даже практически без файлов), все будет хранится в объектах, которые в промежутках между вызовами будут сериализованы и аккуратно записаны на жесткий диск.
Почему так?, потому, что такой вариант хранения данных я еще не использовал, практика 🙂

Так как создание галереи есть процесс настоящего времени, то логика и модель архитектуры еще весьма не однозначна, что-то будет добавлено, что-то убрано, а что-то изменено до неузнаваемости, отнеситесь с пониманием к этому факту 🙂
Подробнее »

SkyDNS, безопасный серфинг в сети

SkyDNS это отечественный не привязанный к провайдерам DNS сервис, который бесплатно предоставляет возможность отфильтровывать те категории сайты которые вы бы не хотели видеть. Вещь полезная для родителей чтобы обезопасить чадо, от тлетворного влияния запада сети, но и другим оно во вред не пойдет. Хозяева SkyDNS уверяют что базовый функционал будет бесплатным всегда, что несомненно радует. Пожелаем им успехов и стабильности.
адрес сайта SkyDNS

пример заполнения 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;

            }
//...

строка подключения к 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);
}

печать самого себя

#!/usr/bin/perl
# скрипт печатает сам себя

open FL, $0 || die("ERROR: $!");
print while <FL>;
close FL;