Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование (VB,C#,ASP,.NET): новости, советы, примеры


Выпуск # 707

Очередной выпуск рассылки! За последнее время на сайте произошло столько всего, столько всего, что все просто не уместилось в этот выпуск! Но ничего, ведь вы всегда можете ознакомиться со всеми обновлениями непосредственно посетив сайт. Кстати, помимо изменения в содержании Kbyte.Ru, появлении новых интересных материалов, проект постоянно совершенствуется технически, и вы можете принять в этом непосредственное участие, присылая свои идеи и предложения.
Надеюсь, этот выпуск будет интересен для вас. Если вы хотите увидеть в следующих выпусках что-то конкретное, напишите мне об этом на ящик subscribe@kbyte.ru.


Содержание выпуска

Читайте в этом выпуске:

Если у вас есть вопросы по программированию или работе с компьютером, не стесняйтесь, спрашивайте.

Форумы Kbyte.Ru

На форумах Kbyte.Ru постоянно появляются новые интересные темы и обсуждения. В этом выпуске представлены лишь новые темы, с момента прошлой рассылки.

Кстати, любой желающий может на форумах Kbyte.Ru совершенно свободно получить помощь грамотных специалистов в области программирования, да и в целом информационных технологий.

Задать свой вопрос прямо сейчас

Dll файл @ponoroshca 05.11.2012 19:19
Проблема в том что есть не большая программа к которая привязывает к компу себя. есть исходник этой программы и уже переделанная.
Просит в вести HWID вида VPSb8p3DJRa2QA0ntwLuLg==
Вот ссылка на новую программу http://rghost.ru/41365532
Вот ссылка на старую программу без привязки http://rghost.ru/41365475

[- к содержанию -]

У меня есть БД. В ней есть несколько таблиц со словарем.
На таблицу codeCity
CityID (PK, identity, smallint, not null)
CityName (varchar(30), not null)
построила вот такую процедуру.

ALTER PROCEDURE [dbo].[up_i_u_codeCity]
(
 CityID smallint=null ,
 CityName varchar(max)=null)
AS
SET NOCOUNT ON

IF EXISTS (SELECT * FROM dbo.codeCity 
		 WHERE LTRIM(RTRIM(CityName)) = LTRIM(RTRIM(@CityName)))
		 AND LTRIM(RTRIM(@CityName)) IS NOT NULL OR LEN(LTRIM(RTRIM(@CityName)))>20 
	BEGIN
		IF LEN(LTRIM(RTRIM(@CityName)))>20   
			SELECT 'Length of city '+@CityName+ ' to long, not inserted.' as Not_allowad_length
		ELSE 
			SELECT 'Duplicate values not allowed' as Duplication
	END
	ELSE

IF EXISTS (SELECT * FROM dbo.codeCity
		 WHERE CityID = @CityID ) --and isnumeric(@CityID) 
		 AND LTRIM(RTRIM(@CityName)) IS NOT NULL 
	BEGIN

		UPDATE dbo.codeCity
		SET 
		CityName = @CityName
		WHERE CityID = @CityID

		SELECT 'City updated' as Successeful_update

	END

	ELSE
IF ISNULL(@CityName,'') = ''
		BEGIN
			SELECT 'No name introduced.' as Value_is_NULL
		END
	 ELSE
		BEGIN
			INSERT INTO dbo.codeCity VALUES (LTRIM(RTRIM(@CityName)))
			select 'City name inserted'
end		


 
--exec up_i_u_codeCity 
--exec up_i_u_codeCity '',' r jes2a '
--exec up_i_u_codeCity '9','jerjdkoghkusa'
--exec up_i_u_codeCity null,' 23fgh '

Как построить динамическую процедуру, что бы она проверила мою БД и на все однотипные таблицы (словари) построила такие же процедуры.
Например, на codeProfession, codeEducation

[- к содержанию -]

Ответ #1 @Aleksey Nemiro 05.11.2012 12:34
Динамичный запрос можно построить и выполнить следующим образом:
DECLARE @q nvarchar(max); -- переменная для кода запроса
SET @q = 'SELECT * FROM dbo.codeCity  WHERE LTRIM(RTRIM(CityName)) = LTRIM(RTRIM(@CityName))) AND LTRIM(RTRIM(@CityName)) IS NOT NULL OR LEN(LTRIM(RTRIM(@CityName))'; -- код запроса может быть любым

-- выполнение запроса, в запрос передается переменная @CityName
EXEC sp_executesql  @q, N'@CityName varchar(max)', @CityName = @CityName;
При формировании запроса можно подставить любые инструкции и имена любых таблиц или полей из переменных:
DECLARE @q nvarchar(max);
DECLARE @table nvarchar(50);

SET @table = 'codeCity';

SET @q = 'SELECT * FROM ' + @table + '  WHERE какое-то условие и другой код';
EXEC sp_executesql  @q;
и т.п.

[- к содержанию -]

Добавить свой ответ в эту тему
Доброго времени суток! Дело в том, что я написал скрипт, который парсит данные с другого сайта с помощью cURL, но как я догадываюсь это довольно затратно? дело в том что скрипт парсит данные, обрабатывает и выдает картинку в зависимости от условия. этот скрипт используют в подписях к форуму несколько человек( причем для каждого уникальный ID ). Немного поюзав, субдомен на котором находился скрипт "упал". точнее мне его приостановил хостер, за превышение нагрузки на ЦП.
Ищу аналог этой функции. file_get_contents не совсем то. Сайт с которого идет парсинг предусмотрел file_get_contents. + он проверяет Reffer.

нашел как добавить заголовки к file_get_contents но почему-то не работает..точнее сайт все равно не отдает то что отдает cURL'y
Вот как я использовал file_get_contents с такими же заголовками, которые передавал cURL'oм.(передал рефера и на всякий случай юзер агент.)

<?
$url="http://samp-rp.ru/%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3/%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80-08";
// Создаем поток
$opts = array(
  'http'=>array(
    'method'=>"POST",
    'header'=>"Referer: http://samp-rp.ru/%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3\r\n" .
              "User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4\r\n"
  )
);

$context = stream_context_create($opts);

// Открываем файл с помощью установленных выше HTTP-заголовков
$file = file_get_contents($url, false, $context);
echo $file;
?>
Возвращаются данные в которых нет логинов. вместо логинов сервер возвращает "Логин скрыт". Так же как и для гугла. Вроде бы реффер передается. но в чем дело не пойму.
А вот как я решил это на cURL'e
<?
$url='http://samp-rp.ru/%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3/%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80-08';//урл сайта

$curl = curl_init(); //инициализация сеанса
	curl_setopt($curl, CURLOPT_URL, $url); //обращаемся к сайту
	curl_setopt($curl, CURLOPT_HEADER, 0); //выводим заголовки =1 иначе 0
	curl_setopt($curl, CURLOPT_POST, 1); //передача данных методом POST
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //теперь curl вернет нам ответ, а не выведет
	curl_setopt($curl, CURLOPT_POSTFIELDS, //тут переменные которые будут переданы методом POST
	array (
		'data'=>'blablabla'
	));
	//curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4'); //эта строчка как-бы говорит: "я не скрипт, я хром" :)
	curl_setopt ($curl, CURLOPT_REFERER, "http://samp-rp.ru/%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3"); //проверяют наличие рефера
	$res = curl_exec($curl);
	//если ошибка то печатаем номер и сообщение
	if(!$res) {
		$error = curl_error($curl).'('.curl_errno($curl).')';
		echo $error;
	}
	else {
        echo $res;
        }
В этом случае возвращает все прекрасно. Помогите как нибудь) Надо снизить нагрузку, а как не знаю. кеширование- не совсем то. пробовал, вышло не корректно.

[- к содержанию -]

Ответ #1 @Aleksey Nemiro 04.11.2012 12:31
Возвращаются данные в которых нет логинов. вместо логинов сервер возвращает "Логин скрыт"
Открыл страницу, у меня тоже везде стоит "Логин скрыт".
В этом случае возвращает все прекрасно.
Ни в коде, ни на странице я не увидел причин, по которым сервер может возвращать что-то отличное от "Логин скрыт". Возможно дело в авторизации на сайте. Если так, то нужно передавать куки (см. заголовки).

[- к содержанию -]

Ответ #2 @artF 04.11.2012 12:42
Сейчас сделал так. Создал папку cache
и в самом скрипте добавил в начале:
$urlc=$_SERVER['REQUEST_URI'];
$crc=md5($urlc);
$modif=time()-@filemtime ("cache/$crc");
if ($modif<600)
{ 
include ("cache/$crc");
exit();
}
ob_start ();

А в конце

$cache = ob_get_contents();
ob_end_clean ();
echo $cache;
$fp = @fopen ("cache/$crc", "w");
 fwrite ($fp, $cache);
 fclose ($fp);

Вот тестирую..думаю кеширование в 10 минут должно помочь

[- к содержанию -]

Ответ #3 @artF 05.11.2012 00:41

Открыл страницу, у меня тоже везде стоит "Логин скрыт".
Дело в том что надо открывать страницу мониторинга 8 сервера
http://samp-rp.ru/%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3/%D0%A1%D0%B5%D1%80%D0%B2%D0%B5%D1%80-08
перейдя со страницы мониторинг.
http://samp-rp.ru/%D0%9C%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3

Они считывают рефера, иначе бы я его не передавал и не заморачивался курлом. Пока что кеш работает..и вроде помогает..

[- к содержанию -]

Ответ #4 @artF 05.11.2012 20:35
И все равно сдох. Не пойму.
Ладно..Вопрос такой. В плане нагрузки редирект легче чем вывод картинки? думаю да..?

[- к содержанию -]

Ответ #5 @Aleksey Nemiro 05.11.2012 20:51
Редирект конечно проще, сервер выполнит перенаправление, остальное - проблемы второго сервера и клиента :)

По file_get_content нужно трафик смотреть, что передается и в каком виде. Через локальный прокси.

[- к содержанию -]

Добавить свой ответ в эту тему


using System.Net;
using System.Text.RegularExpressions;

...

ссылку на сборку в свойствах проекта указал, пытаюсь создать запрос

myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create("http://тут любой сайт");
myReq.Method = "GET";
myReq.ContentType = "text/html"

ругается на строку

myHttpWebRequest.UserAgent = "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)";

компилятор пишет:
Error CS1061: Type `System.Text.RegularExpressions.Regex' does not contain a definition for `UserAgent' and no extension method `UserAgent' of type `System.Text.RegularExpressions.Regex' could be found (are you missing a using directive or an assembly reference?) (CS1061)

как в таком случае указывать UserAgent ?

[- к содержанию -]

Ответ #1 @Aleksey Nemiro 29.10.2012 19:57
Если в Mono есть обозреватель объектов, то можно в нем посмотреть, какие свойства доступны в классе.
В Visual Studio обозреватель объектов вызывается нажатием клавиш Ctrl + Alt + J.

Текст ошибки не много не в тему. Возможно причина в чем-то другом. Если закоментить строку, ошибка остается?

Можно попробовать добавить UserAgent через коллекцию Headers:
myHttpWebRequest.Headers.Add("User-Agent", "Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1)");

[- к содержанию -]

Ответ #2 @Merlin 29.10.2012 20:13
В общем в главном файле проекта все нормально видит. А этот класс вынесен в отдельный файл, System.Net я так же в нём подключил как и в главном, в обозревателе объектов UserAgent видно, но MonoDevelop почему не хочет его видеть в коде. Спасибо за способ через коллекцию Headers.

[- к содержанию -]

Добавить свой ответ в эту тему

Все темы и обсуждения

Вакансии в IT

Программист

Россия, Москва | Работа в офисе | 50 000.00 KBP

Руководитель/Ведущий программист

Россия, Москва | Работа в офисе | 80 000.00 KBP

Прогаммист разработчик баз данных

Россия, Москва | Работа в офисе

Разработчик отчетных форм

Россия, Москва | Работа в офисе | 45 000.00 KBP

PHP/JS разработчик с хорошим знанием Bitrix

Россия, Москва | Работа в офисе | 90 000.00 KBP

Разработчик iOS

Россия, Москва | Работа в офисе | 85 000.00 KBP

Ведущий разработчик C#

Россия, Москва | Работа в офисе | 120 000.00 KBP

Программист

Россия, Москва | Работа в офисе | 90 000.00 KBP

Программист со знанием баз данных

Россия, Москва | Работа в офисе

SQL программист

Россия, Москва | Работа в офисе

Все вакансии в IT · Создать резюме

[- к содержанию -]

Новости мира IT

Вебкамеру превратили в голографический микроскоп

Японские инженеры собрали из вебкамеры, небольшого лазера и пинхол-линзы портативный голографический микроскоп, способный записывать трехмерное изображение с разрешением около 17 микрон. Трехмерное изображение на основе данных веб-камеры восстанавливается в реальном времени на компьютере.

08.11.2012 08:04 · Категория: Железо · Источник: Lenta.ru

[- к содержанию -]

Microsoft выпустит игровой планшет Xbox Surface и объединит Messenger со Skype

Согласно данным интернет-издания The Verge, корпорация Microsoft ведет разработку собственного брендового 7-дюймового планшета, который будет продаваться под брендом Xbox Surface, объединяя в себе уже существующие продукты софтверного гиганта. Сообщается, что спецификации Xbox Surface были утверждены еще в июне этого года, задолго до релиза первого планшета Microsoft Surface на базе Windows RT.

The Verge пишет, что интернет-планшет Microsoft, скорее всего, будет работать на базе процессора ARM и иметь специализированную оперативную память с широкой полосой пропускания, специально для игр. В то же время, источники в Microsoft говорят, что ARM еще может быть заменен на SoC-систему производства корпорации Intel. Кроме того, сообщается, что планшет будет работать на гибридном программном обеспечении, представляющем собой ядро Windows и Xbox-подобное окружение.

Отметим, что прежде Microsoft занималась созданием аппаратных продуктов в сотрудничестве с кем-либо из традиционных производителей "железа". Исключение составляли лишь консоли Xbox, которые компания создавала сама. Новый игровой планшет также пока является детищем одной лишь Microsoft, за которое отвечает подразделение Interactive Entertainment Business.

Сегодня же в блоге Skype, еще одного подразделения Microsoft, появилась информация о том, что системы интернет-месседжинга Skype и Live Messenger в итоге будут объединены в один продукт - Skype. Объединение ожидается в первом квартале 2013 года. В Microsoft говорят, что к означенной дате полностью перепишут код Messenger и включат его в Skype. Исключение составит лишь Китай, где Messenger продолжит работать, так как там действует совместное предприятие.

В еще более отдаленной перспективе планируется, что Skype заменит собой коммуникационную бизнес-платформу, используемую в продукте Microsoft Lync. Пока обеспечивается лишь межпрограммное взаимодействие Skype и Lync.

В октябре этого года представители Skype заявили, что их продукт "скорее всего" заменит собой "когда-нибудь" MS Messenger.

07.11.2012 10:13 · Категория: Железо · Источник: CyberSecurity.ru

[- к содержанию -]

Новые смартфоны Nokia подключили к российскому LTE

В продажу в России поступили смартфоны Nokia Lumia 920 и 820. Первый аппарат стоит 24990, а второй - 19990 рублей. Устройства стали первыми телефонами, поддерживающими российские мобильные сети четвертого поколения. Оба аппарата работают под управлением Windows Phone 8.

07.11.2012 10:12 · Категория: Железо · Источник: Lenta.ru

[- к содержанию -]

Apple начала уступать конкурентам рынок планшетов

Доля компании Apple на рынке планшетов за последний год сократилась с 59,7 до 50,4 процента. В то же время доля Samsung составила 18,4 процента, увеличившись за год почти втрое. Amazon с его Kindle Fire смог занять девять процентов рынка, а Asus, который производит Nexus 7 от Google - 8,6 процента.

07.11.2012 10:12 · Категория: Бизнес в IT · Источник: Lenta.ru

[- к содержанию -]

AMD анонсировала новые процессоры Opteron 6300

Несмотря на то, что за последнее время от компании AMD поступали лишь новости, связанные с ее инициативами вокруг процессоров ARM, от своих основных продуктов - серверных процессоров Opteron, AMD не собирается отказываться. В подтверждении этого компания сегодня анонсировала самые мощные в линейке Opteron 6300 процессоры.

Пять новых серверных чипов Opteron Abu Dabi примерно на 40% быстрее в работе предшественников Opteron 6200 в работе с корпоративными приложениями. Напомним, что первые 16-ядерные Opteron 6200 Interlagos были выпущены около года назад. Новые Opteron 6300 имеют обновленную микроархиткектуру и тактовые частоты от 1,8 до 3,5 ГГц. Кроме того, чипы имеют ряд усовершенствований в плане работы с виртуализованными средами.

По словам Джона Уильямса, вице-президента AMD по маркетингу серверного направления, новые чипы на аппаратном уровне поддерживают технологии виртуализации, используемые в программном обеспечении Red Hat и Microsoft, увеличивая реальную производительность системы. Также чипы предназначены для работы в серверах, включенных в состав частных и публичных облачных сервисов.

Архитектурно новые серверы работают в 2- или 4-процессорных системах, а о своей поддержке данных чипов уже заявили компании Hewlett-Packard, Dell, Cray и Silicon Graphics.

06.11.2012 12:12 · Категория: Железо · Источник: CyberSecurity.ru

[- к содержанию -]

Все новости


Подпишитесь на тематические RSS-ленты Kbyte.Ru, чтобы быть в курсе последних новостей:

Основная лента · Форумы (темы и сообщения) · Visual Basic 5.0/6.0 · Visual Basic .NET · C# (Си шарп) · Delphi · JavaScript · ActionScript · ASP .NET · ASP .NET MVC

Ищите Kbyte.Ru в социальных сетях FaceBook, ВКонтакте, Twitter.

Если вы занимаетесь программированием, то наверняка вам пригодятся хитрые инструменты.


Международный портал для программистов и разработчиков Kbyte.Ru основан в 2006 году. Целью портала является объединение программистов и специалистов IT-бизнеса, студентов и преподавателей для обмена опытом и знаниями, оказания помощи во всех делах и начинаниях в области IT.
Kbyte.Ru является парнёром компаний Mail.Ru Group, WebMoney Transfer, Ozon.Ru и др.
Выпуск рассылки подготовлен автоматически. Все права на материалы выпуска принадлежат Kbyte.Ru если иное не указано отдельно.


В избранное