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

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


Выпуск # 638

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


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

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

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

Форумы Kbyte.Ru

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

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

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

Подскажите пожалуйста как записать значение сразу в несколько элементов Label на странице???

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

Ответ #1 @Aleksey Nemiro 12.04.2011 13:59
Label1.Text = Label2.Text = Label3.Text = "Привет!";

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

Ответ #2 @skacel 12.04.2011 14:03
iT IS NOT TOO WRIGHT!

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

Ответ #3 @Артем 12.04.2011 19:59
Это то понятно, а без перечисления, допустим 100 меток не очень то перечислять!:)

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

Ответ #4 @Aleksey Nemiro 12.04.2011 20:04
Все зависит от конкретной задачи.
Можно пролистать коллекцию контролов и всем Label-ам проставить нужный текст, примерно так:
foreach (Control c in this.Controls) { 
 if (c.GetType() == typeof(Label)){ 
  ((Label)c).Text = "Привет"; 
 } 
}

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

Ответ #5 @Артем 12.04.2011 20:19
Я понимаю, что при большом кол. контролов на странице это займет времечко!

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

Возникла проблемка! Имею TextBox, в который ввожу дробные числа, так как региональная настройка windows "ru-RU" разделитель запятая.
Вроде все просто поменяй региональные настройки windows как тебе надо и вводи в этом формате, но пользователю то этого не объяснишь!!!!
Вот и возник вопрос как можно сделать так, чтобы TextBox понимал в качестве разделителя и точку и запятую???
За одно подскажите пожалуйста удобный способ ограничить ввод в TextBox, разрешить только дробные и целые числа!
За ранее большое спасибо!

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

Ответ #1 @Edlin 12.04.2011 09:03
Перед преобразованием текста из TextBox в число замени все запятые на точки (или наоборот, как тебе удобнее). Чтобы разрешить только ввод чисел, используй маску (Mask), если она есть у TextBox, или вместо него используй MaskedTextBox. Если нет ни того, ни другого, подпишись на событие изменения текста в TextBox. В обработчике этого события проверяй, можно ли преобразовать введенный текст в число. Если нельзя, выводи сообщение об ошибке. Если это ASP.NET используй валидаторы элементов управления.
P.S. В следующий раз указывай, какой язык программирования используешь.

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

Ответ #2 @Артем 12.04.2011 12:36
Большое спасибо у меня все получилось!

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

Добавить свой ответ в эту тему
Здравствуйте, возникла необходимость для работы с БД Access через C#, собственно только разбираюсь в чужих кодах, но уже возникла проблема. код :
 
using System; 
using System.Windows.Forms; 
using System.Data; 
using System.Data.OleDb; 
using System.Data.SqlClient; 
 
... 
 
 public void Update() 
  { 
   string connectionString = 
    "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" + @"data source=C:\downloads\111.mdb"; 
   OleDbConnection myOleDbConnection = new OleDbConnection(connectionString); 
   myOleDbConnection.Open(); 
  } 

и на строчке myOleDbConnection.Open(); вылетает ошибка:
"An unhandled exception of type 'System.InvalidOperationException' occurred in System.Data.dll

Additional information: Поставщик "Microsoft.Jet.OLEDB.4.0" не зарегистрирован на локальном компьютере."

не подскажите как это лечится?

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

Ответ #1 @Aleksey Nemiro 11.04.2011 11:37
"Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" + @"data source=C:\downloads\111.mdb";
строка соединения неверная, получается что два раза указывается команда Data Source=data source=C:\.....
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=путь к файлу БД
Если нужна авторизация в БД, то будет так:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=путь к файлу БД;User ID=Логин;Password=Пароль;

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

Ответ #2 @spoki 11.04.2011 12:22
изменил как написано, но проблема не решилась, все та же ошибка. Пробовал удалить параметр "Provider=Microsoft.Jet.OLEDB.4.0;" выдало ошибку:" Additional information: В ConnectionString не задан поставщик OLE DB. Образец задания поставщика: "Provider=SQLOLEDB;". Указал в качестве provider=SQLOLEDB , опять ругается "Additional information: Недопустимая спецификация авторизации". Может еще есть какие нибудь варианты решения данной проблемы?

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

Ответ #3 @Aleksey Nemiro 11.04.2011 12:35
Пробовал удалить параметр "Provider=Microsoft.Jet.OLEDB.4.0;"
без указания поставщика работать не будет
provider=SQLOLEDB ,
это только для SQL Server, для Access нужен Microsoft.Jet.OLEDB.4.0.
Может еще есть какие нибудь варианты решения данной проблемы?
должно быть примерно так:
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\downloads\111.mdb";  
OleDbConnection myOleDbConnection = new OleDbConnection(connectionString);  
myOleDbConnection.Open();

Также может потребоваться Пакет обновлений для Microsoft Jet 4.0 Database Engine
В Windows x64 с Microsoft.Jet.OLEDB есть проблемы.

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

Ответ #4 @spoki 11.04.2011 16:31
В Windows x64 с Microsoft.Jet.OLEDB есть проблемы.

у меня как раз windows 7 x64 наверно из-за этого(

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

Ответ #5 @Aleksey Nemiro 11.04.2011 16:55
Можно попробовать в свойствах проекта в параметре Platform Target (вкладка Компиляция -> Платформа) поставить x86.
Насколько мне известно, Microsoft Jet 4.0 под x64 нет и не будет.

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

Добавить свой ответ в эту тему · В теме есть еще 6 ответов. Смотреть все ответы.
Здравствуйте Уважаемые!
Возник вопрос следующего плана.
Базовый тип Visual Basic - String, при объявлении строки фиксированного размера занимает в пямяти 1 байт на символ.
Dim Variable As String*60
Но при объявлении строки переменной длины
Dim Variable As String
Размер занимаемой памяти 10 байт плюс 1 байт за каждый символ.
Какую информацию, содержат эти 10 байт?

С уважением...

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

Ответ #1 @Aleksey Nemiro 10.04.2011 20:16
10 байт на символ - что-то многовато. Откуда такая информация?
Обычный символ Юникода занимает два байта, а UTF-32 должен занимать не более 4 байт на символ.

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

Ответ #2 @Diamockes 10.04.2011 20:23
Нет, не 10 байт на символ.
При объявлении строки переменной длины, занимаемая память:
1 байт на символ + 10 байт.
Как, предположение - указатель, но что-то много для него

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

Ответ #3 @Aleksey Nemiro 10.04.2011 20:54
Значит да, все дело в BSTR, который помимо данных, содержит также и информацию о длине строки.
Тип данных BSTR

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

Ответ #4 @Diamockes 10.04.2011 21:03
Как, оказалось, это неверная информация.
Обычная String переменная занимает 4 байта и хранит указатель на BSTR-строку. Занимает в стеке или секции данных.
BSTR-строка занимает в памяти 4 + (N+1)*2 байтов, где N — длина хранимой строки. Занимает в OLE-шной строковой куче.

Не надо путать String-переменную и BSTR-строку. Первая — это собственно переменная, и она есть всегда. Второе — значение, и его может не существовать.

Со строкой фиксированного размера разницы практически нет, за исключением того, что значение всегда есть и оно фиксированной длины.

Спасибо за помощь, ответ найден!

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

Добавить свой ответ в эту тему
Вчера обнаружил в сети точную копию своей домашней странички на домене nemiro .info.
Насколько я понимаю, злоумышленник решил таким образом переместить мою домашнюю страничку на свою территорию, забрав тем самым поисковый трафик и в последующем использовав его в своих целях.

Сайт был украден в феврале 2011 года.
Домен с незаконной копией сайта обслуживается radiushost.ru.

В поиском индексе ворованная копия сайта есть только в Google и Bing, в Яндексе пока нет, но видимо это вопрос времени, т.к. прошло всего пара месяцев с момента кражи.

Домен зарегистрирован 23 февраля 2011 года. В контактах указан некий domainsbyproxy.com, по названию понятно, что найти концы будет сложно. Регистратор GoDaddy.com.

Я стал копать дальше. Вор для продвижения украденных сайтов использует социальные закладки. В частности, ссылка на незаконную копию моего сайта была засвечена в сервисе memori.ru у пользователя zapiskiboba. Учитывая, что у этого пользователя полно закладок-пустышек с сайтами в зоне .info, можно практически со стопроцентной уверенностью сказать, что это точно тот же человек, что и произвел кражу сайта.

Собственно, я прошелся по сайтам, указанных в закладках и нашел одинаковые сайты (слева - сайт из закладок zapiskiboba, справа - найденный в поисковиках, в скобках дубль для индекса):
medalternative.info - kipiasyntez.ru (medalternative.info - kipiasyntez.ru)
bienale.info - sb-formula.ru (bienale.info - sb-formula.ru)
elctromash.info - electro-mobile.ru (elctromash.info - electro-mobile.ru)
sobor-cherepovets.info - service42.ru (sobor-cherepovets.info - service42.ru)
В общем, вор трудится не покладая рук и уже давно. Все сайты перечислять не буду.

Оригинальные сайты со временем выпадают из индекса поисковых систем, заменяясь украденными копиями. Например, service42.ru уже потерял львиную долю индекса и практически полностью заменился на sobor-cherepovets.info.

Я сообщил владельцам указанных сайтов о краже.

Владельцам украденных сайтов нужно в первую очередь обратиться в службы поддержки поисковых систем, у них есть специальная форма для сообщения о спаме:
Google: https://www.google.com/webmasters/tools/spamreport?hl=ru
Яндекс: http://webmaster.yandex.ru/delspam.xml

В качестве подтверждения того, что именно ваш сайт является первым, можно воспользоваться веб-архивом: http://waybackmachine.org
Хотя поисковые системы хранят кеши страниц, так что они в принципе сами смогут определить, какой сайт появился раньше.

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

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

Ответ #1 @Aleksey Nemiro 10.04.2011 12:50
Распарсил за(пис|клад)ки боба, всего там 531 сайт, все в зоне .info.
У регистратора GoDaddy.com домен в зоне .info судя по всему стоит всего 1.99 $, т.е. 60 рублей. В итоге расходы на домены выходят порядка 31 860 рублей. Хостинг скорей всего бесплатный.
Это конечно не все домены, их может быть больше, но очевидно, что этим грязным делом занимается не один человек и не школьник, а вполне "взрослая" кибербанда.

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

Ответ #2 @Aleksey Nemiro 10.04.2011 15:08
Проверить свой сайт на предмет кражи можно путем поиска в Google и Яндекс фрагментов текста, который не может, и не должен, находиться на других сайтах. Т.е. не по статьям и обзорам, а например, по названию компании, адресу, номеру телефона. Я проверял указанные в расследовании сайты путем копирования информации из подвала, либо из раздела "Контакты" в поле поиска.

Из общих технических признаков, на украденных сайтах нет внешних ссылок. Также все украденные сайты является html-копиями оригиналов, т.е. без динамичного содержимого.

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

Ответ #3 @[i]Pro 10.04.2011 15:18
Дак там для того чтобы воровать особых мозгов не надо, есть даже специализированное ПО для создания копий сайта, собственно что и видно, т.к. копии статические, без динамического содержимого)
В итоге расходы на домены выходят порядка 31 860 рублей
парень походу головой ударенный, хотя скорее всего в течении долгого времени создавались эти копии...

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

Ответ #4 @Aleksey Nemiro 10.04.2011 18:20
Да, оффлайн-браузеры есть, даже есть онлайн сервисы, предоставляющие подобные услуги, правда создавались они совсем для других целей :-)

1 000 $ при таких масштабах - это немного, ибо в итоге можно получить гораздо больше. Выбивание сайта из индекса также требует финансовых затрат, даже если у злоумышленника(ов) есть своя ферма сайтов (скорей всего так оно и есть).

Кстати, вполне возможно, что подобными действиями занимается какая-нибудь легальная SEO-фирма. Здесь нужно более детально смотреть и анализировать, чтобы понять откуда растут ноги. Это вполне реально осуществить через Интернет находясь в правовых рамках, но времени много потребуется.

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

Ответ #5 @Aleksey Nemiro 10.04.2011 19:00
А я всё не успокоюсь. По следам нашел еще одного пользователя reagouno (http://url.org/bookmarks/reagouno/), у которого также полно закладок с сайтами в зоне .info, причем есть совсем свежие (апрельские).
Для примера:
cyclom.info <- www.rusengines.ru
bestties.info <- best-tiens.ru

у этого юзера пока что около полусотни сайтов.

Кстати все сайты, которые потенциально являются украденными можно посмотреть тут:
http://aleksey.nemiro.ru/stolen.txt
http://aleksey.nemiro.ru/stolen2.txt

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

Добавить свой ответ в эту тему · В теме есть еще 10 ответов. Смотреть все ответы.
Заранее благодарю за помощь)
Какими командами можно найти определённые слова в тексте(переменная) и заменить их на другие?)

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

Ответ #1 @Aleksey Nemiro 10.04.2011 10:37
IndexOf
Replace
System.Text.RegularExpressions.Regex

Dim str As String = "Привет мир!" 
MsgBox(str.IndexOf("мир")); 
MsgBox(str.Substring(str.IndexOf("мир"), 3)); 
MsgBox(str.Replace("мир", "kbyte.ru")) 
Dim myReg As New System.Text.RegularExpressions.Regex("мир") 
MsgBox(myReg.Replace(str, "kbyte.ru"))

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

Добавить свой ответ в эту тему
Доброго всем времени суток, товарищи.
Суть возникшего у меня вопроса:
есть структура
 
Public Structure Station 
  Dim Nme As String 
  Dim Km As Integer 
  Dim Uzel As Boolean 
 End Structure 

Делаю из неё массив. В процессе хочу осуществлять поиск по массиву. Например по Station.Nme
В MSDN говорится Array.Find(Stations, AddressOf FindNme)

Где FindNme моя фунция:

 
 Private Function FindNme(ByVal Item As Station) As Boolean ' 
  If Item.Nme = "Пупкино" Then  
   Return True 
  Else 
   Return False 
  End If 
 End Function 

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

Люди добрые - помогите, кто чем может.

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

Ответ #1 @Aleksey Nemiro 09.04.2011 12:38
но в этом случае функция ищет только "Пупкино", а мне надо, чтобы искала какое-либо название. Добавлял второй параметр в функцию - VB матерится.
Можно сделать внешнюю переменную, которая будет содержать строку поиска
Private _Search As String 
... 
... 
_Search = "Пупкино" 
Array.Find(Stations, AddressOf FindNme) 
... 
... 
Private Function FindNme(ByVal Item As Station) As Boolean ' 
  Return Item.Nme = _Search 
End Function
Хотя это будет выглядеть криво, но другого решения я не знаю, разве что вручную циклами искать.

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

Ответ #2 @Сергей 09.04.2011 12:45
Уважаемый, спасибо. Всё понял

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

Добавить свой ответ в эту тему
Пожалуйста, помогите. Нужна вычислительная сложность статистических методов кластерных анализов и сетей кохонена. нигде не могу найти в интернете(гуглила,туда можно не посылать =)

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

Есть блок с кодом на php:
 <?php 
// Значения Х это значение времени в UNIX формате, умноженное на 1000. 
$x = time() * 1000; 
// Y-значения - это случайное число 
$y = rand(0, 100); 
  
// Возвращаем JavaScript массив 
echo "[$x, $y]"; 
?>

Скажите пожалуйста как будет выглядеть этот фрагмент кода на asp.net.

Вот ссылка на статью из которой я выдрал пример. Там 4 пункт "Графики реальнго времени".

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

Ответ #1 @Aleksey Nemiro 09.04.2011 12:46
<% 
 double unixTime = (DateTime.UtcNow - new DateTime(1970,1,1,0,0,0)).TotalSeconds; 
 double x = unixTime * 1000; 
 double y = new Random(DateTime.Now.Ticks).Next(0, 100); 
 
 Response.Write(String.Format("[{0}, {1}]", x, y)); 
%>

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

Ответ #2 @Артем 10.04.2011 15:23
Ой еще раз большое спасибо! Можно пару уточнений, судя по <%...%> это aspx файл, а можно это в cs файле сделать, ну просто добавить в проект класс и там прописать? И еще я просто не знаю посмотрели ли вы статью и поэтому хочу спросить, там потом этот файл используется как источник данных в JS скрипте вот так:
function requestData() { 
    $.ajax({ 
        url: 'live-server-data.php', 
        success: function(point) { 
            var series = chart.series[0], 
                shift = series.data.length > 20; // сдвигаем график, если значений больше 20 
  
            // add the point 
            chart.series[0].addPoint(eval(point), true, shift); 
  
            // call it again after one second 
            setTimeout(requestData, 1000); 
        }, 
        cache: false 
    }); 
}

Вот в сроке url: 'live-server-data.php'!!!!
Я же правильно понимаю что мне просто надо поменять название файла и расширение и все!?

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

Ответ #3 @Aleksey Nemiro 10.04.2011 15:45
судя по <%...%> это aspx файл,
да, это копия php-кода в ASP .NET
а можно это в cs файле сделать
запросто, доступ к Response можно получить из любого файла страницы (aspx и класса страницы).
посмотрели ли вы статью
нет, не смотрел.
Вот в сроке url: 'live-server-data.php'!!!!
Я же правильно понимаю что мне просто надо поменять название файла и расширение и все!?
Да, нужно указать путь к своему файлу.

В .net можно использовать для выдачи подобных данных httphandlers (ashx), хотя и обычные страницы aspx тоже можно, но предварительно нужно удалить со страницы все данные и перед выдачей сделать Response.Clear.
На странице aspx останется только директива Page:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AJAX.aspx.cs" Inherits="AJAX" %>
а в классе страницы:
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
 
public partial class AJAX : System.Web.UI.Page 
{ 
  protected void Page_Load(object sender, EventArgs e) 
  { 
    Response.Clear(); 
    //Response.ContentType = "text/plain";//можно указать тип содержимого, для javascript будет application/x-javascript 
    Response.Write("[1, 2], [5, 3], [10, 100], [2, 7]"); 
  } 
}
$.ajax... - это кстати jQuery, насколько мне известно, в состав highcharts он не входит, так что может потребоваться подключать его отдельно.

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

Ответ #4 @Артем 10.04.2011 16:46
:):):) А простой класс добавленный в проект и не относящийся ни к одной странице для этого можно использовать???

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

Ответ #5 @Aleksey Nemiro 10.04.2011 17:00
Из других мест доступ к Response (а также Request и Server) можно получить через HttpContext.Current.
Но обычный класс не сможет делать Response.Write без страницы.

Класс может быть наследован от страницы (System.Web.UI.Page) и представлять собой страницу asp .net без файла .aspx. Аналогично и ASHX (ASP .NET Handlers). Но тема наследования может быть слишком сложной.

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

Добавить свой ответ в эту тему · В теме есть еще 11 ответов. Смотреть все ответы.
Кто знаком с JavaScript-библиотекой Highcharts отзовитесь пожалуйста, я очень страстно желаю с вами пообщаться!!!

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

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

Исходные коды

Предварительная загрузка изображений

JavaScript: Графика @Бен Гэлбрейт 14.04.2011 21:24
Функция на JavaScript, которая позволяет проводить предварительную загрузку изображений, находящихся в файлах стилей (*.css). К сожалению, решение не кроссбраузерное, данный метод будет работать только в FireFox.
function PreloadImagesFromCss(){ 
  var allImgs = [];//new array for all the image urls   
  var k = 0; //iterator for adding images 
  var sheets = document.styleSheets;//array of stylesheets 
         
  for(var i = 0; i<sheets .length; i++){//loop through each stylesheet 
          var cssPile = '';//create large string of all css rules in sheet 
          var csshref = (sheets[i].href) ? sheets[i].href : 'window.location.href'; 
          var baseURLarr = csshref.split('/');//split href at / to make array 
          baseURLarr.pop();//remove file path from baseURL array 
          var baseURL = baseURLarr.join('/');//create base url for the images in this sheet (css file's dir) 
          if(baseURL!="") baseURL+='/'; //tack on a / if needed 
          if(document.styleSheets[i].cssRules){//w3 
                  var thisSheetRules = document.styleSheets[i].cssRules; //w3 
                  for(var j = 0; j<thisSheetRules.length; j++){ 
                          cssPile+= thisSheetRules[j].cssText; 
                  } 
          } 
          else { 
                  cssPile+= document.styleSheets[i].cssText; 
          } 
                 
          //parse cssPile for image urls and load them into the DOM 
          var imgUrls = cssPile.match(/[^\(]+\.(gif|jpg|jpeg|png)/g);//reg ex to get a string of between a "(" and a ".filename" 
          if(imgUrls != null && imgUrls.length>0 && imgUrls != ''){//loop array 
                  var arr = jQuery.makeArray(imgUrls);//create array from regex obj         
                  jQuery(arr).each(function(){ 
                          allImgs[k] = new Image(); //new img obj 
                          allImgs[k].src = (this[0] == '/' || this.match('http://')) ? this : baseURL + this;     //set src either absolute or rel to css dir 
                          k++; 
                  }); 
          } 
  }//loop 
  return allImgs; 
}

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

Аналоговые часы

Visual Basic .NET: Графика @Сэм 11.04.2011 22:08
Пример рисует на форме круглые аналоговые часы, все лишнее пространство формы обрезается (форма получается круглой).
Imports
System.Math 
Imports System.Drawing.Drawing2D 
 
Public Class Form1 
 
  Dim sec, min, ch As Integer 
  Dim x1, x2, y1, y2, x3, y3, xt, yt As Integer, n, t As Double, gr As Graphics, pen1 As New Pen(Color.Black, 2), pen2 As New Pen(Color.DarkBlue, 3), pen3 As New Pen(Color.Chocolate, 4), br As New SolidBrush(Color.Black), font1 As New Font("Arial", 16) 
  Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick 
    time() 
  End Sub 
 
  Sub time() 
    sec = Date.Now.Second 
    min = Date.Now.Minute 
    ch = Date.Now.Hour 
    Label1.Text = DateTime.Now 
    Dim bp As New Bitmap(250, 250) 
    gr = Graphics.FromImage(bp) 
    PictureBox1.Image = bp 
    gr.ScaleTransform(1, -1) 
    gr.TranslateTransform(125, -125) 
    If ch > 12 Then ch -= 12 
    x3 = Round(55 * Sin(6.28 * (ch + min / 60) / 12)) 
    y3 = Round(55 * Cos(6.28 * (ch + min / 60) / 12)) 
    gr.DrawLine(pen3, 0, 0, x3, y3) 
    x2 = Round(65 * Sin(6.28 * min / 60)) 
    y2 = Round(65 * Cos(6.28 * min / 60)) 
    gr.DrawLine(pen2, 0, 0, x2, y2) 
    x1 = Round(90 * Sin(6.28 * sec / 60)) 
    y1 = Round(90 * Cos(6.28 * sec / 60)) 
    gr.DrawLine(pen1, 0, 0, x1, y1) 
  End Sub 
 
  Private Sub PictureBox1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDoubleClick 
    Application.Exit() 
  End Sub 
 
  Private Sub PictureBox1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Paint 
    Dim i As Byte 
    gr = e.Graphics 
    For i = 1 To 12 
      xt = 115 + Math.Round(100 * Math.Sin(6.28 * 30 * i / 360)) 
      yt = 115 - Math.Round(100 * Math.Cos(6.28 * 30 * i / 360)) 
      gr.DrawString(i, font1, br, xt, yt) 
    Next i 
  End Sub 
 
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
    Dim gr1 As GraphicsPath = New GraphicsPath 
    gr1.AddEllipse(PictureBox1.ClientRectangle) 
    PictureBox1.Region = New Region(gr1) 
    gr1 = New GraphicsPath() 
    Dim Rectangle = New Rectangle(PictureBox1.Location.X, PictureBox1.Location.Y, PictureBox1.Width, PictureBox1.Height) 
    Rectangle.Location = New Point(Rectangle.Location.X + 4, Rectangle.Location.Y + 4) 
    gr1.AddEllipse(Rectangle) 
    Me.Region = New Region(gr1) 
    sec = Date.Now.Second 
    min = Date.Now.Minute 
    ch = Date.Now.Hour 
    time() 
  End Sub 
 
End Class

К данном исходному коду прилагаются файлы примеров. Скачать.

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

Сортировка массивов

JavaScript: Общие вопросы @Алексей Немиро 11.04.2011 17:36
Пример сортировки простых и сложных массивов в JavaScript.
// сортировка простого массива 
var a = new Array(); 
a[0] = 4; 
a[1] = 5; 
a[2] = 1; 
// сортировка 
a.sort(); 
 
// вывод результата 
for(i in a){ 
  document.write(a[i] + ", "); 
} 
// результатом будет 1, 4, 5 
 
 
// сортировка сложного массива 
var h = new Array(); 
h[0] = {"name": "Вася", "city": "Москва" }; 
h[1] = {"name": "Маша", "city": "Самара" }; 
h[2] = {"name": "Аня", "city": "Владивосток" }; 
h[3] = {"name": "Федя", "city": "Архангельск"}; 
 
// сортируем по имени (name) 
h.sort(function(x,y){ 
  if (x["name"] < y["name"]) { 
    return -1; 
  } 
  else if (x["name"] > y["name"]) { 
    return 1; 
  } 
  return 0; 
}); 
 
// вывод результата 
document.write("<br />"); 
for(i in h){ 
  document.write(h[i]["name"] + ", "); 
} 
// результатом будет 
// Аня, Вася, Маша, Федя 
 
 
// сортируем по названию города (city) в порядке возрастания 
h.sort(function(x,y){ 
  if (x["city"] < y["city"]) { 
    return 1; 
  } 
  else if (x["city"] > y["city"]) { 
    return -1; 
  } 
  return 0; 
}); 
 
 
// вывод результата 
document.write("<br />"); 
for(i in h){ 
  document.write(h[i]["city"] + ", "); 
} 
// результатом будет 
// Самара, Москва, Владивосток, Архангельск

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

Все исходные коды

Вакансии в IT

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

РоссияСанкт-Петербург | Работа в офисе

Менеджер интернет-проектов

РоссияМосква | 70 000.00 RUB | Работа в офисе

Программист ASP .NET

РоссияМосква | 70 000.00 RUB | Работа в офисе

Веб-дизайнер

РоссияМосква | 70 000.00 RUB | Работа в офисе

Разработчик web-приложений ASP .NET

РоссияМосква | 100 000.00 RUB | Работа в офисе

.NET(C#) Developer/Team lead

РоссияСанкт-Петербург | 60 000.00 RUB | Работа в офисе

Программист (Web-разработчик)

РоссияМосква | 60 000.00 RUB | Работа в офисе

Тестировщик web-приложений

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

Ведущий GUI-программист (С++ / MFC)

РоссияМосква | Удаленная работа

Разработчик сервиса Яндекс.Видео (Java)

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

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

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

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

Яндекс открывает программу инвестиций для стартапов

Яндекс открывает программу инвестиций для стартапов Яндекс.Фабрика. В рамках этой программы получить финансирование могут как российские, так и зарубежные проекты. Яндекс будет инвестировать в стартапы, которые потенциально интересны компании и находятся на «посевной» или ранней стадии развития. На разработку технологии или сервиса может быть выделено до нескольких сотен тысяч долларов.

«Яндекс быстро развивается. У нас есть много идей, но не всегда получается заниматься всем сразу. И если мы видим на рынке единомышленников, талантливых ребят, которые занимаются близкими нам вещами, мы готовы их всячески поддерживать, в том числе с помощью инвестиций. Нам важно, чтобы индустрия продолжала развиваться, и у нас есть возможность способствовать этому», — говорит менеджер программы Яндекс.Фабрика Ксения Ёлкина.

Для участия в Яндекс.Фабрике свой проект можно представить на дне открытых дверей Яндекс.Старт, который проходит в компании регулярно. Заявку на участие можно отправить напрямую Яндексу или партнерам компании, которые помогают в отборе стартапов. В настоящий момент у Яндекса более десяти партнеров в России и Украине. Полный список партнеров и подробности о проекте можно найти на сайте Яндекс.Фабрики - http://company.yandex.ru/public/start/factory.xml.

Яндекс целенаправленно работает со стартапами с июня 2010 года. За это время в компании прошли три Яндекс.Старта, по результатам которых компания приобрел технологии сервисов WebVisor и Loginza.

14.04.2011 22:39 · Категория: Бизнес в IT · Источник: CyberSecurity.ru

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

ФБР закрыло крупный ботнет

ФБР и Министерство юстиции США объявили о закрытии крупного ботнета Coreflood, охватывавшего более двух миллионов компьютеров. Большая часть этих PC находилась на территории США. Зараженные вредоносным кодом компьютеры собирали сведения о банковских счетах, номерах пластиковых карт и другие личные данные пользователей.

14.04.2011 22:38 · Категория: Безопасность · Источник: Lenta.ru

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

Трудоустройство в Рунете: работодатели и студенты не понимают друг друга

Компания Microsoft и журнал «Интернет в цифрах» при поддержке РАЭК провели круглый стол, посвященный вопросу молодых кадров в интернете. Это второе из серии мероприятий по теме цивилизованности российского рынка веб и разработки его единых стандартов.

Участниками мероприятия стали руководитель ADV Алексей Персианов, руководитель аналитической службы РАЭК Дмитрий Чистов, эксперт по веб-разработке компании Microsoft Гайдар Магдануров, директор по развитию института «Развитие Интернет Коммуникаций» (РИК) Андрей Яблонских, председатель Ассоциации Интерактивных Агентств (АИА) Евгений Этин, менеджер по развитию бизнеса центра «Специалист» Константин Тюрин, руководители проектов hh.ru и career.ru Комбачева Ирина и Емеленко Елена, а также представители веб-студий, рекрутинговых агентств и студенты.

«Сегодня на кадровом рынке веб-специалистов наблюдается парадоксальная ситуация. С одной стороны, веб-студии остро нуждаются в кадрах, причем речь не идет о том, что это должны быть только специалисты высокого уровня, существует потребность в молодых специалистах, которых можно учить. С другой стороны, многие из молодых специалистов не могут найти работу в веб-студии, несмотря на то, что количество вакансий превышает в настоящее время количество соискателей почти в два раза, - сказал Гайдар Магдануров, руководитель направления веб-технологий департамента стратегических технологий, Microsoft в России. – Борьба за кадры будет только усиливаться, особенно на фоне ухудшающейся демографической ситуации. Однако рынок веб-труда во многом остается непрозрачным. И мы, как полноценный участник рынка веб-технологий, видим своей задачей необходимость сделать рынок понятным для всех участников, в том числе и молодых специалистов».

Традиционно на круглом столе были представлены результаты исследования, которое провели WebProfessionals.ru, «Интернет в цифрах», Proactivity и rocID при поддержке РАЭК. В этот раз оно было посвящено кадрам в интернете. В исследовании приняли участие представители веб-студий, которые выступают потенциальными работодателями, и студенты из разных регионов России. Результаты исследования показали: 69% молодых специалистов считают, что пройти собеседование очень сложно, и 61% не понимают критерии, по которым веб-студии нанимают сотрудников. 71% веб-студий заявили, что готовы взять на работу студента, но при этом только 12% ответивших студентов сказали, что 2010 г. нашли работу по специальности.

14.04.2011 21:37 · Категория: Бизнес в IT · Источник: 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 если иное не указано отдельно.


В избранное