Рассылка закрыта
Вы можете найти рассылки сходной тематики в Каталоге рассылок.
Программирование (VB,C#,ASP,.NET): новости, советы, примеры
Выпуск # 639Очередной выпуск рассылки! За последнее время на сайте произошло столько всего, столько всего, что все просто не уместилось в этот выпуск! Но ничего, ведь вы всегда можете ознакомиться со всеми обновлениями непосредственно посетив сайт. Кстати, помимо изменения в содержании Kbyte.Ru, появлении новых интересных материалов, проект постоянно совершенствуется технически, и вы можете принять в этом непосредственное участие, присылая свои идеи и предложения. Содержание выпускаЧитайте в этом выпуске:
Форумы Kbyte.RuНа форумах Kbyte.Ru постоянно появляются новые интересные темы и обсуждения. В этом выпуске представлены лишь новые темы, с момента прошлой рассылки. Кстати, любой желающий может на форумах Kbyte.Ru совершенно свободно получить помощь грамотных специалистов в области программирования, да и в целом информационных технологий. Задать свой вопрос прямо сейчас Макрос устанавливающий расстановку переносов во фрагменте @Мадина 21.04.2011 21:38 Ответ #1 @Мадина 21.04.2011 21:39 Макрос устанавливащий расстановку переносов во фрагменте текста Ответ #2 @Мадина 21.04.2011 21:40 Накрутка голосования @Zveriko 21.04.2011 15:24 Здлравствуйте еще раз) Я хотел бы узнать, как проще всего пожно сделать программу для накрутки голосов на каком-либо сайте?) Просто недавно пытался сделать импровизацией, нихрена не получается) сколько бы мне ни подсказывали - я не допер:) Ответ #1 @Aleksey Nemiro 21.04.2011 16:57 Проще всего подумать о том, как убедить людей голосовать, а не заниматься фальсификацией. Тем более что в УК РФ есть статейка на эту (или почти на эту) тему. Ответ #2 @Zveriko 21.04.2011 17:07 Это, конечно, да, но я не думаю, что мне удастся уговорить за день 4000 человек:) Передача параметра из GridView в TextBox на другой странице @CAPT 21.04.2011 04:55 Добрый день. Вопрос следующий: Есть страница, на которой в GridView выводятся результаты селекта из базы. <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" DataSourceID="SqlDataSource1" CellPadding="3" Font-Size=Smaller ForeColor="#333333" GridLines="None" > <AlternatingRowStyle BackColor="White" ForeColor="#284775" /> <Columns> <asp:hyperlinkfield text="Ввод" ItemStyle-Width="20px" navigateurl="~\Vvod.aspx" headertext="Ввести причину" target="_blank" /> <asp:BoundField DataField="A" HeaderText="Номер Вагона" SortExpression="A" ItemStyle-Width="20px" /> Необходимо, чтобы при щелчке по записи, данные ( значение столбца А) передавались на другую страницу (Vvod.aspx) в <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> Как видно из кода, я специально создал поле со ссылкой... вот как мне написать, чтобы передавалось не фиксированное значение параметра (а-ля , <asp:hyperlinkfield text="Ввод" ItemStyle-Width="20px" navigateurl="~\Vvod.aspx?id_vag=5" headertext="Ввести причину" target="_blank" /> А именно значение поля <asp:BoundField DataField="A" HeaderText="Номер Вагона" SortExpression="A" ItemStyle-Width="20px" /> Заранее благодарен Ответ #1 @CAPT 21.04.2011 10:00 Вопрос снимается. Сам сообразил. <asp:hyperlinkfield text="Ввод" datatextformatstring="{0:c}" datanavigateurlfields="A" datanavigateurlformatstring="~\Vvod.aspx?id_vag={0}" headertext="Ввод" target="_blank" /> ну и собственноно в VB-шном файличке Partial Public Class Vvod Inherits System.Web.UI.Page Protected WithEvents TextBox1 As Global.System.Web.UI.WebControls.TextBox Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load TextBox1.Text = Request("id_vag") End Sub End Class Артефакты UTF-8 @Aleksey
Nemiro 20.04.2011 14:47 Приветствую! По работе, периодически попадаются веб-страницы с артефактами в тексте в виде символов вопросов. Чтобы было понятно о чем речь, приведу небольшой скриншот: Проблема встречается при использовании кодировки UTF-8. Поскольку я работаю чаще всего с ASP .NET, то и подобные косяки ловлю в нем же. В web.config кодировка прописана верная: <globalization requestEncoding="UTF-8" responseEncoding="UTF-8" culture="ru-RU" uiCulture="ru-RU"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Файлы страницы сохранены с использованием Юникод (UTF-8) кодовая страница 65001, хотя замена на 1200 кодовую страницу ни к чему не приводит. Примечательно, появление артефактов чаще всего проявляется в FireFox, Opera 11, Chrome и, после выхода, в IE 9 (в IE 7, 8 мне подобное не попадалось). Также, проблема проявляется на IIS, а на встроенном в Visual Studio веб-сервере, подобных косяков я не встречал. Изменение текста на другой, как в приведенном выше фрагменте картинки, визуально решает проблему. Также можно заменить в проблемных местах некоторые русские буквы латинскими аналогами. Но все эти хитрости саму проблему не решают и она может проявиться в любом, самом неожиданном месте. Кто сталкивался с подобным? В чем может быть причина? В неверной обработке Юникода браузерами или же проблема в IIS? Хотя если в IIS, то видимо проблема была бы видна и в Fiddler, но это наверное зависит от того, как Fiddler обрабатывает Юникод. Возможно, проблема проявляется при многократном конвертировании разных кодировок, например при обычном копи-пастинге. Хотя я проверял эту теорию, но не наше ей подтверждения. Восстановление ListBox @Артем 20.04.2011 00:20 И еще раз извините возникло сразу еще одно затруднение! У меня в ListBox Items добавляются программно после PostBack, они все исчезают (что не удивительно)! А можно как нибудь сохранять их и выводить после PostBack??? Заранее спасибо!!! Ответ #1 @Edlin 20.04.2011 10:45 А у тебя ViewState у ListBox включен? Где именно добавляются Items? Присылай код. Ответ #2 @Артем 20.04.2011 14:59 Нашел у ListBox свойство ViewStateMode = Inherit это оно? Так как мой ListBox журнал событий то Items добавляются практически по всему коду, при каждом событии!!! Ответ #3 @Aleksey Nemiro 21.04.2011 12:17 Если список намеренно не очищается, то по умолчанию, все добавленные в него данные через вызовы к серверу должны сохраняться. Нужно проверить EnableViewState у страницы, контрола, контейнера, в котором находится контрол (ListBox), возможно ViewState отключен намерено. Чтобы понять в чем причина - aspx, cs в студию! Ответ #4 @Артем 21.04.2011 18:42 Ответ #5 @Aleksey Nemiro 21.04.2011 20:09 а код вот здесьУ меня данные из ListBox-а не пропадают в этом коде. Хотя я смотрел без клиентских скриптов, видимо причина в них, в таком винегрете проблемы на ровном месте будут в любом случае. Добавить свой ответ в эту тему · В теме есть еще 7 ответов. Смотреть все ответы. Не работает валидатор: RegularExpressionValidator @Артем 20.04.2011 00:03 Здравствуйте:):):) У меня очередное затруднение, помогите пожалуйста!:) Я поверяю ввод в форму (только дробные числа), для этого использую RegularExpressionValidator в котором прописал [0-9]*[.]?[0-9]*. Проверку вызывает кнопка у нее CausesValidation="True" (по умолчанию), все остальные кнопки на форме я настроил: CausesValidation="False". В обработчики, кнопки которая вызывает проверку, у меня есть условие: if (!IsValid) { //Бла бла бла return; } А если заменяю if (!IsValid) на if (IsValid), срабатывает, но мне так не надо!!! Что я делаю не так? Заранее спасибо!!!:) Ответ #1 @Edlin 20.04.2011
10:43 Может быть ты не правильно прописал регулярное выражение. Попробуй заменить на ^[0-9]*[.]?[0-9]*$. И пришли код из aspx-файла, где указаны свойства валидатора. Ответ #2 @Артем 20.04.2011 14:53 Попробовал,
не помогло :( Вот код разметки: <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="Freq" ErrorMessage="Не верный формат введенного значения частоты" ValidationExpression="^[0-9]*[.]?[0-9]*$" Display="None"></asp:RegularExpressionValidator> А вот код обработчика кнопки: protected void Button6_Click(object sender, EventArgs e) { if (Freq.Text == "") { ErrorLog.Items.Add(DateTime.Now + " " + "Введите значение частоты"); ErrorLog.SelectedIndex = ErrorLog.Items.Count - 1; UpdatePanel2.Update(); return; } if (!IsValid) { ErrorLog.Items.Add(DateTime.Now + " " + RegularExpressionValidator1.ErrorMessage); ErrorLog.SelectedIndex = ErrorLog.Items.Count - 1; UpdatePanel2.Update(); return; } Client.ControlFrequency(MaxFrequency, Freq.Text, (byte)id.IdDevice, (byte)id.IdControlFrequency); ErrorLog.Items.Add(DateTime.Now + " " + Client.GetError + " [Запись частоты]"); ErrorLog.SelectedIndex = ErrorLog.Items.Count - 1; UpdatePanel2.Update(); Freq.Text = ""; } Ответ #3 @Aleksey Nemiro 21.04.2011 12:06 Вот код разметки:Чтобы понять, почему не работает, нужен весь код страницы. Возможно у кнопки (Button6) прописан ValidationGroup, а у приведенного валидатора - нет. А вот код обработчика кнопки: if (Freq.Text == "") У каждого валидатора есть свойство IsValid, аналогичное свойству Page.IsValid, т.е. если нужно записать сообщения об ошибках из валидаторов, достаточно проверить у каждого из них это свойство. Кстати, я по-моему уже приводил пример, о том как можно пролистать все элементы управления. Так вот, валидаторы наследуются от System.Web.UI.WebControls.BaseValidator и их можно проверить циклом: foreach (Control c in UpdatePanel1.ContentTemplateContainer.Controls) { if (c.GetType().BaseType == typeof(System.Web.UI.WebControls.BaseValidator)) { if (((System.Web.UI.WebControls.BaseValidator)c).IsValid) { // прошел проверку } else { //не прошел проверку //((System.Web.UI.WebControls.BaseValidator)c).ErrorMessage } } } Ответ #4 @Артем 21.04.2011 16:12 У меня всего один валидатор, я думаю цикл не нужен:) Я пробовал вместо Page.IsValid ставить RegularExpressionValidator.IsValid ничего не меняется на true
срабатывает на false нет!!! ValidationGroup у меня нигде не прописан! Вот код странички на которой я тренируюсь:):):) я еще тему с графиками поднимал может помните, возможно вы увидите как ее можно решить здесь (график рисуется в контейнере id = "container") :) <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="EL_Page.aspx.cs" Inherits="ajax.EL_Page" MaintainScrollPositionOnPostback="true" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"> <Scripts> <asp:ScriptReference Path="~/JS/jquery-1.5.2.js" /> <asp:ScriptReference Path="~/JS/highcharts.src.js" /> <asp:ScriptReference Path="~/JS/JS1.js" /> </Scripts> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:Timer ID="Timer1" runat="server" Interval="600" OnTick="Timer1_Tick"> </asp:Timer> <table cellpadding="0"> <tr> <td colspan="2" align="center"> Параметры частотного преобразователя </td> </tr> <tr> <td> Цифровое управление частотой </td> <td align="center"> <asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0"> <asp:View ID="View1" runat="server"> <asp:Image ID="Image1" runat="server" Height="23px" ImageUrl="~/Imag/knopka4.gif" Width="23px" /> </asp:View> <asp:View ID="View2" runat="server"> <asp:Image ID="Image2" runat="server" Height="23px" ImageUrl="~/Imag/knopka5.gif" Width="23px" /> </asp:View> </asp:MultiView> </td> </tr> <tr> <td> Выходная частота </td> <td> <asp:TextBox ID="TextBox1" runat="server" BorderColor="#666666" Borderstyle=""Inset"" BorderWidth="3px" Width="65px"></asp:TextBox> </td> </tr> <tr> <td> Выходная частота </td> <td align="center"> <asp:Label ID="Label18" runat="server" BorderColor="#666666" Borderstyle=""Inset"" BorderWidth="3px" Font-Bold="True" Font-Names="Arial" Font-Size="12pt" Height="18px" Width="65px"></asp:Label> </td> </tr> </table> <asp:Label ID="Label1" runat="server"></asp:Label> <br /> <asp:Label ID="Label2" runat="server"></asp:Label> <br /> <asp:Label ID="Label3" runat="server"></asp:Label> <br /> <asp:Label ID="Label4" runat="server"></asp:Label> <br /> <asp:Label ID="Label5" runat="server"></asp:Label> <br /> <asp:Label ID="Label6" runat="server"></asp:Label> <br /> <asp:Label ID="Label7" runat="server"></asp:Label> <br /> <asp:Label ID="Label8" runat="server"></asp:Label> <br /> <asp:Label ID="Label9" runat="server"></asp:Label> <br /> <asp:Label ID="Label10" runat="server"></asp:Label> <br /> <asp:Label ID="Label11" runat="server"></asp:Label> <br /> <asp:Label ID="Label12" runat="server"></asp:Label> <br /> <asp:Label ID="Label13" runat="server"></asp:Label> <br /> <asp:Label ID="Label14" runat="server"></asp:Label> <br /> <asp:Label ID="Label15" runat="server"></asp:Label> </ContentTemplate> </asp:UpdatePanel> <br /> <asp:UpdatePanel ID="UpdatePanel3" runat="server" UpdateMode="Conditional"> <ContentTemplate> <asp:Button ID="Button2" runat="server" Text="Старт" OnClick="Button2_Click" Width="47px" CausesValidation="False" /> <asp:Button ID="Button3" runat="server" Text="Стоп" OnClick="Button3_Click" CausesValidation="False" /> <asp:Button ID="Button4" runat="server" Text="Реверс" OnClick="Button4_Click" CausesValidation="False" /> <asp:Button ID="Button5" runat="server" Text="Сброс ошибок" OnClick="Button5_Click" Width="97px" CausesValidation="False" /> <br /> <br /> <asp:TextBox ID="Freq" runat="server" Height="20px" style=""margin-left:" 36px" Width="36px" Wrap="False"></asp:TextBox> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="Freq" ErrorMessage="*" ValidationExpression="^[0-9]*[.,]?[0-9]*$"></asp:RegularExpressionValidator> <asp:Button ID="Button6" runat="server" Text="Задать частоту" OnClick="Button6_Click" Width="97px" /> <asp:Button ID="Button1" runat="server" CausesValidation="False" OnClick="Button1_Click" Text="Button" /> <asp:Button ID="Button7" runat="server" Text="Button" OnClick="Button7_Click" CausesValidation="False" /> <asp:Button ID="Button9" runat="server" Text="Button" OnClick="Button9_Click" CausesValidation="False" /> <asp:Label ID="Label17" runat="server" Text="Label"></asp:Label> </ContentTemplate> </asp:UpdatePanel> <br /> <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="False"> <ContentTemplate> <asp:ListBox ID="ErrorLog" runat="server" Rows="5" Width="600px"></asp:ListBox> <br /> </ContentTemplate> </asp:UpdatePanel> <asp:UpdatePanel ID="UpdatePanel4" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="True"> <ContentTemplate> <asp:Panel ID="container" runat="server" style=""width:" 50%; height: 400px"> </asp:Panel> <asp:Label ID="Label16" runat="server" Text="Label"></asp:Label> </ContentTemplate> </asp:UpdatePanel> <asp:Button ID="Button8" runat="server" OnClick="Button8_Click" style=""margin-left:" 925px" Text="Назад" CausesValidation="False" /> </form> </body> </html> using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace ajax { public partial class EL_Page : System.Web.UI.Page { static EL Client; const float MaxFrequency = 50; string StatusDevice; string RotationDirections; string ControlFrequencyOnRS485; string ControlFrequencyOnAnalog; string ControlDeviceOnRS485; data Param; protected void Page_Init(object sender, EventArgs e) { Param = new data(); if (!IsPostBack) { Client = new EL(); if (!Client.ConnectSocket()) { ErrorLog.Items.Add(DateTime.Now + " " + Client.GetError); ErrorLog.SelectedIndex = ErrorLog.Items.Count - 1; Timer1.Enabled = false; Param.YValue(0); return; } } } protected void Page_Load(object sender, EventArgs e) { Label16.Text = DateTime.Now.ToString(); Label17.Text = DateTime.Now.ToString(); //ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "jquery-1.5.2", "~/JS/jquery-1.5.2.js"); //ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "highcharts.src", "~/JS/highcharts.src.js"); //ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "JS1", "~/JS/JS1.js"); } //protected void Page_OnLoad(object sender, EventArgs e) //{ // ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "jquery-1.5.2", "~/JS/jquery-1.5.2.js"); // ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "highcharts.src", "~/JS/highcharts.src.js"); // ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "JS1", "~/JS/JS1.js"); //} protected void Timer1_Tick(object sender, EventArgs e) { if (!Client.ReadTegs()) { ErrorLog.Items.Add(DateTime.Now + " " + Client.GetError); ErrorLog.SelectedIndex = ErrorLog.Items.Count - 1; UpdatePanel2.Update(); Timer1.Enabled = false; Param.YValue(0); foreach (Control c in UpdatePanel1.ContentTemplateContainer.Controls) { if (c.GetType() == typeof(Label)) { ((Label)c).Text = ""; } } return; } Label18.Text = Client.GetSetFrequency.ToString(); Label1.Text = "Код состояния устройства: " + Client.GetCodeStatus; Label2.Text = "Идентификатор ошибки: " + Client.GetCodeError; switch (Client.GetStatusDevice) { case 0: StatusDevice = "остоновлен"; break; case 1: StatusDevice = "торможение"; break; case 2: StatusDevice = "в резерве"; break; case 3: StatusDevice = "работает"; break; default: StatusDevice = "ошибка"; break; } Label3.Text = "Состояние привода: " + StatusDevice; switch (Client.GetRotationDirections) { case 0: RotationDirections = "прямое"; break; case 1: RotationDirections = "реверс"; break; case 2: RotationDirections = "реверс"; break; case 3: RotationDirections = "обратное"; break; default: RotationDirections = "ошибка"; break; } Label4.Text = "Направление вращение: " + RotationDirections; if (Client.GetControlFrequencyOnRS485 > 0) ControlFrequencyOnRS485 = "разрешено"; else ControlFrequencyOnRS485 = "запрещено"; Label5.Text = "Цифровое управление частотой: " + ControlFrequencyOnRS485; if (Client.GetControlFrequencyOnAnalog > 0) ControlFrequencyOnAnalog = "разрешено"; else ControlFrequencyOnAnalog = "запрещено"; Label6.Text = "Аналоговое управление частотой: " + ControlFrequencyOnAnalog; if (Client.GetControlDeviceOnRS485 > 0) ControlDeviceOnRS485 = "разрешено"; else ControlDeviceOnRS485 = "запрещено"; Label7.Text = "Цифровое управление приводом: " + ControlDeviceOnRS485; Label8.Text = "Заданная частота: " + Client.GetSetFrequency; Label9.Text = "Выходная частота: " + Client.GetOutputFrequency; Label10.Text = "Выходной ток: " + Client.GetOutputCurrent; Label11.Text = "Напряжение на шине постоянного тока: " + Client.GetVoltageBusDNS; Label12.Text = "Выходное напряжение: " + Client.GetOutputVoltage; Label13.Text = "Температура IGBT-модуля: " + Client.GetTemperatureIGBT; Label14.Text = "Програмируемое значение 1: " + Client.GetProgrammedWord_1; Label15.Text = "Програмируемое значение 2: " + Client.GetProgrammedWord_2; Param.YValue(Client.GetSetFrequency); } protected void Button2_Click(object sender, EventArgs e) { MultiView1.ActiveViewIndex = 1; if (Client.GetOutputFrequency == 0) { Client.Start((byte)id.IdDevice, (byte)id.IdControlStartStop); ErrorLog.Items.Add(DateTime.Now + " " + Client.GetError + " [Старт]"); ErrorLog.SelectedIndex = ErrorLog.Items.Count - 1; UpdatePanel2.Update(); } } protected void Button3_Click(object sender, EventArgs e) { if (Client.GetOutputFrequency != 0) { Client.Stop((byte)id.IdDevice, (byte)id.IdControlStartStop); ErrorLog.Items.Add(DateTime.Now + " " + Client.GetError + " [Стоп]"); ErrorLog.SelectedIndex = ErrorLog.Items.Count - 1; UpdatePanel2.Update(); } } protected void Button4_Click(object sender, EventArgs e) { MultiView1.ActiveViewIndex = 0; if (Client.GetRotationDirections == 0) { Client.Rev((byte)id.IdDevice, (byte)id.IdControlRev, 0); ErrorLog.Items.Add(DateTime.Now + " " + Client.GetError + " [Реверс]"); ErrorLog.SelectedIndex = ErrorLog.Items.Count - 1; UpdatePanel2.Update(); return; } if (Client.GetRotationDirections == 3) { Client.Rev((byte)id.IdDevice, (byte)id.IdControlRev, 1); ErrorLog.Items.Add(DateTime.Now + " " + Client.GetError + " [Реверс]"); ErrorLog.SelectedIndex = ErrorLog.Items.Count - 1; UpdatePanel2.Update(); return; } } protected void Button5_Click(object sender, EventArgs e) { if (Client.GetCodeError != 0) { Client.DumpErrors((byte)id.IdDevice, (byte)id.IdDumpErrors); ErrorLog.Items.Add(DateTime.Now + " " + Client.GetError + " [Сброс ошибок]"); ErrorLog.SelectedIndex = ErrorLog.Items.Count - 1; UpdatePanel2.Update(); } } protected void Button6_Click(object sender, EventArgs e) { if (Freq.Text == "") { ErrorLog.Items.Add(DateTime.Now + " " + "Введите значение частоты"); ErrorLog.SelectedIndex = ErrorLog.Items.Count - 1; UpdatePanel2.Update(); return; } Page.Validate(); if (!Page.IsValid) { ErrorLog.Items.Add(DateTime.Now + " " + RegularExpressionValidator1.ErrorMessage); ErrorLog.SelectedIndex = ErrorLog.Items.Count - 1; UpdatePanel2.Update(); return; } Client.ControlFrequency(MaxFrequency, Freq.Text, (byte)id.IdDevice, (byte)id.IdControlFrequency); ErrorLog.Items.Add(DateTime.Now + " " + Client.GetError + " [Запись частоты]"); ErrorLog.SelectedIndex = ErrorLog.Items.Count - 1; UpdatePanel2.Update(); Freq.Text = ""; } protected void Button8_Click(object sender, EventArgs e) { if (!Client.CloseSocket()) { ErrorLog.Items.Add(DateTime.Now + " " + Client.GetError); ErrorLog.SelectedIndex = ErrorLog.Items.Count - 1; UpdatePanel2.Update(); Timer1.Enabled = false; Param.YValue(0); foreach (Control c in UpdatePanel1.ContentTemplateContainer.Controls) { if (c.GetType() == typeof(Label)) { ((Label)c).Text = ""; } } } Response.Redirect("~/List.aspx"); } protected void Button1_Click(object sender, EventArgs e) { UpdatePanel4.Update(); //ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "jquery-1.5.2", "~/JS/jquery-1.5.2.js"); //ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "highcharts.src", "~/JS/highcharts.src.js"); //ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "JS1", "~/JS/JS1.js"); } protected void Button7_Click(object sender, EventArgs e) { container.Visible = false; UpdatePanel4.Update(); //ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "JS1", "~/JS/JS1.js"); } protected void Button9_Click(object sender, EventArgs e) { container.Visible = true; UpdatePanel4.Update(); //ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "JS1", "~/JS/JS1.js"); } //protected void Page_PreRender(object sender, EventArgs e) //{ // ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "jquery-1.5.2", "~/JS/jquery-1.5.2.js"); // ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "highcharts.src", "~/JS/highcharts.src.js"); // ScriptManager.RegisterClientScriptInclude(this, typeof(Page), "JS1", "~/JS/JS1.js"); //} } } Ответ #5 @Aleksey Nemiro 21.04.2011 16:53 У меня всего один валидатор, я думаю цикл не нужен:)Я вроде показал, где должен быть еще один, а то выходит, что в одном месте валидатор используется, а в другом - нет. Прям таки не до крашенный забор какой-то. Тогда можно было б просто регулярные выражения использовать, без валидаторов. По коду. Шаблон регулярного выражения для целых чисел и чисел с плавающей точкой может быть таким: ^(\d+[.,]{1}\d+)|(\d+)$ Display="None" у валидатора приведет к тому, что если элементы формы не пройдут проверку, то PostBack-а не будет, и это никак не отобразится на странице, если нет ValidationSummary. Чтобы валидатор работал без ValidationSummary и с Display=None, нужно блокировать использование валидатором клиентских скриптов EnableClientScript="false". Хотя приведенные фрагменты кода должны работать нормально. Добавить свой ответ в эту тему · В теме есть еще 7 ответов. Смотреть все ответы. Нужна помощь знающего программиста по VB 6.0 @Zveriko 19.04.2011 17:45 Здравствуйте. Я начинающий программист в области VB, и хотел бы узнать, можно ли в этой среде программирования сделать программу, которая бы каждые 20 секунд переподключала интернет и нажимала кнопочку на сайте? Ответ #1 @Aleksey Nemiro 19.04.2011 19:00 Да, это возможно. Для нажатия кнопок и имитации любых других клиентских действий, проще всего использовать элемент управления WebBrowser. Что касается создания каждые 20 секунд подключения к Интернет, то скорей придется учитывать особенности системы (Windows) и типа соединения. С таким маленьким интервалом удобней держать постоянно открытое соединение с Интернет. PS: Visual Basic 6.0 уже древний, под современными системами проще использовать технологии .NET Framework (Visual Basic .NET). Ответ #2 @Zveriko 19.04.2011 19:21 Спасибо! Теперь хоть знаю, что это возможо) А где можно найти программные коды, которые помогут мне при написании этой программы?) Ответ #3 @Aleksey Nemiro 19.04.2011 19:33 Я начинающий программист в области VBс учетом этого, рекомендую посмотреть в сторону Visual Basic .NET. Совсем недавно, spiller создал множество тем по имитации действий интернет-пользователя. Вот они, можно начинать смотреть Все остальное будет зависеть от задачи. Универсальных решений в таких вопросах, как правило, не существует. В Visual Basic 6.0 реализация может быть сложнее, чем в .NET. Ответ #4 @Zveriko 19.04.2011 20:16 Большое Спасибо!!!) Ответ #5 @Zveriko 20.04.2011 00:08 А что за штука этот WebBrowser?) Добавить свой ответ в эту тему · В теме есть еще 17 ответов. Смотреть все ответы. Переделать строку в нормальный вид @artF 18.04.2011 18:21 Здравствуйте!Имеется строчка похожего содержания на это - %D0%A2%D0%B5%D0%BC%D1%8B%D1%87 надо перделать ее в нормальную читаемую. как
это сделать? З.Ы Visual Basic 6 Заранееспасибо Ответ #1 @Aleksey Nemiro 18.04.2011 18:36 Ответ #2 @artF 18.04.2011 18:52 Не совсем понял....как использовать?Допустим я вставил это в модуль...и как декодировать такую строчку и вывести
кудато? Ответ #3 @Aleksey Nemiro 18.04.2011 18:56 Если в модуль, то функция должна быть Public Private Public Function URLDecode(ByVal txt As String) As String Использовать также, как и любую другу функцию. Например: MsgBox URLDecode("%D0%A2%D0%B5%D0%BC%D1%8B%D1%87") Ответ #4 @artF 18.04.2011 19:08 Все равно выдает
ошибку .ругается на "SetSafeChars" Ответ #5 @Aleksey Nemiro 18.04.2011 19:27 Можно попробовать удалить, делов та на один клик мышки и нажатие одной клавиши :-) Добавить свой ответ в эту тему · В теме есть еще 6 ответов. Смотреть все ответы. Русскоязычный SELECT VS2010+MySql @CAPT 18.04.2011 11:09 Добрый день. По долгу службы делаю веб-приложение (ASP VB) под VS 10 (первый раз с визуал студио вообще) в качестве БД использую MySql 5.1.41. Скачал коннектер.... Селекты делает, но только те, где условие на английском либо числовое. Руссокязычные условия типа <asp:SqlDataSource ID="SqlDataSource1" runat="server" DataSourceMode="DataSet" ConnectionString="<%$ ConnectionStrings:prostoyConnectionString %>" ProviderName="<%$ ConnectionStrings:prostoyConnectionString.ProviderName %>" SelectCommand="SELECT A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, prich.prich, prich.prim FROM prostoy, prich where prostoy. B='Платформа'"> </asp:SqlDataSource> Кодировка в Базе utf8_general_ci Для приложения тоже прописал <meta http-equiv="Content-Type" content="text/html; charset=utf8_general_ci"/> КАк можно реализовать? Очень надо... Чем проще - тем лучше. Заранее благодарю. Ответ #1 @Aleksey Nemiro 18.04.2011 11:33 В строке соединения можно попробовать указывать кодировку: CharSet=utf8;Character Set=utf8; И вот еще одно, но более муторное решение. Ответ #2 @CAPT 19.04.2011 02:18 Алексей, большое спасибо)) Помогло. Разделитель целой и дробной части числа в VS2010 и в IIS 7.0 @Duke 18.04.2011 10:02 Здравствуйте. Использую VS2010 + MSSQL 2008. Страничка получает данные из БД, дает редактировать и сохранить. В БД есть поле numeric(18,6) в котором хранятся дробные числа. Если запускать проект в VS - разделитель целой и дробной части точка. Если запускать в IIS на той же машине - запятая... В web.config прописано: <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="ru-RU" uiCulture="ru-RU" /> В настройках IIS тоже прописал Ru. Не помогает... Ответ #1 @Aleksey Nemiro 18.04.2011 11:42 Такой вопрос уже бы буквально неделю назад :-) Проблема известная и есть универсальное решение в виде готовый функции: Преобразование строки в Double, исключая проблемы с разделителем Public Function StrToDouble(ByVal value As String) As Double Dim Result As Double = 0 Dim Separator As String = System.Globalization.NumberFormatInfo.CurrentInfo.CurrencyDecimalSeparator Double.TryParse(System.Text.RegularExpressions.Regex.Replace(value.Trim, ",|\.", Separator), System.Globalization.NumberStyles.Any, System.Threading.Thread.CurrentThread.CurrentCulture, Result) Return Result End Function public double StrToDouble(string value) { double result = 0; string Separator = System.Globalization.NumberFormatInfo.CurrentInfo.CurrencyDecimalSeparator; double.TryParse(System.Text.RegularExpressions.Regex.Replace(value.Trim(), ",|\\.", Separator), System.Globalization.NumberStyles.Any, System.Threading.Thread.CurrentThread.CurrentCulture, out result); return result; } Исходные кодыИмитация нажатий клавиш клавиатурыVisual Basic .NET: Клавиатуры, мыши, джойстики @Microsoft 20.04.2011 16:16 Простой пример на Visual Basic .NET имитирует нажатия клавиш клавиатуры. В примере используются API-функции: FindWindow
и SetForegroundWindow.Declare Auto Function FindWindow Lib "USER32.DLL" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr Declare Auto Function SetForegroundWindow Lib "USER32.DLL" (ByVal hWnd As IntPtr) As Boolean Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim calculatorHandle As IntPtr = FindWindow("CalcFrame", "Калькулятор")'в этом месте может потребоваться изменение, в зависимости от системы If calculatorHandle = IntPtr.Zero Then MsgBox("Калькулятор не запущен.") Return End If SetForegroundWindow(calculatorHandle) SendKeys.SendWait("123") SendKeys.SendWait("+") SendKeys.SendWait("456") SendKeys.SendWait("=") End Sub Меню в стиле Office 2007Windows Presentation Foundation (WPF): Интерфейс @Дерек Бартрам 19.04.2011 15:50 Реализация меню в стиле MS Office 2007 на WPF (C#). Пример представляет собой бесплатную для некоммерческого использования библиотеку элементов управления с открытым исходным кодом. К данном исходному коду прилагаются файлы примеров. Скачать. Декодирование urlVisual Basic 5.0/6.0: Строки @Интернет 18.04.2011 18:35 Функция на Visual Basic 6.0, которая позволяет декодировать url в читаемую строку. Как известно, в url можно использовать только символы ASCII, в число которых входя цифры, английские буквы и некоторые спец. символы, остальные символы кодируются в шестнадцатеричное представление. Например: "%cf%f0%e8%e2%e5%f2+%ec%e 8%f0!". Данная функция
позволяет декодировать шестнадцатеричный текст в обычный.Private Function URLDecode(ByVal txt As String) As String Dim txt_len As Integer Dim i As Integer Dim ch As String Dim digits As String Dim result As String result = "" txt_len = Len(txt) i = 1 Do While i <= txt_len ch = Mid$(txt, i, 1) If ch = "+" Then result = result & " " ElseIf ch <> "%" Then result = result & ch ElseIf i > txt_len - 2 Then result = result & ch Else digits = Mid$(txt, i + 1, 2) result = result & Chr$(CInt("&H" & digits)) i = i + 2 End If i = i + 1 Loop URLDecode = result End Function Хитрые ярлыкиC#: Система @Аркадий 18.04.2011 02:11 Программа на C#, которая создает в системе не удаляемые ярлыки других программ. Удалить созданные ярлыки можно только при помощи этой же программы, но не из Windows.К данном исходному коду прилагаются файлы примеров. Скачать. Тестер регулярных выраженийC#: Регулярные выражения @Аркадий 18.04.2011 01:53 Простая программа на C# для тестирования шаблонов регулярных выражений.К данном исходному коду прилагаются файлы примеров. Скачать. Расчет MD5 строкиJavaScript: Криптография, защита данных @WebToolkit 16.04.2011 16:00 Функция на JavaScript, которая позволяет рассчитать хеш-сумму указанной строки по алгоритму md5.var MD5 = function (string) { function RotateLeft(lValue, iShiftBits) { return (lValue<<iShiftBits) | (lValue>>>(32-iShiftBits)); } function AddUnsigned(lX,lY) { var lX4,lY4,lX8,lY8,lResult; lX8 = (lX & 0x80000000); lY8 = (lY & 0x80000000); lX4 = (lX & 0x40000000); lY4 = (lY & 0x40000000); lResult = (lX & 0x3FFFFFFF)+(lY & 0x3FFFFFFF); if (lX4 & lY4) { return (lResult ^ 0x80000000 ^ lX8 ^ lY8); } if (lX4 | lY4) { if (lResult & 0x40000000) { return (lResult ^ 0xC0000000 ^ lX8 ^ lY8); } else { return (lResult ^ 0x40000000 ^ lX8 ^ lY8); } } else { return (lResult ^ lX8 ^ lY8); } } function F(x,y,z) { return (x & y) | ((~x) & z); } function G(x,y,z) { return (x & z) | (y & (~z)); } function H(x,y,z) { return (x ^ y ^ z); } function I(x,y,z) { return (y ^ (x | (~z))); } function FF(a,b,c,d,x,s,ac) { a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac)); return AddUnsigned(RotateLeft(a, s), b); }; function GG(a,b,c,d,x,s,ac) { a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac)); return AddUnsigned(RotateLeft(a, s), b); }; function HH(a,b,c,d,x,s,ac) { a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac)); return AddUnsigned(RotateLeft(a, s), b); }; function II(a,b,c,d,x,s,ac) { a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac)); return AddUnsigned(RotateLeft(a, s), b); }; function ConvertToWordArray(string) { var lWordCount; var lMessageLength = string.length; var lNumberOfWords_temp1=lMessageLength + 8; var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1 % 64))/64; var lNumberOfWords = (lNumberOfWords_temp2+1)*16; var lWordArray=Array(lNumberOfWords-1); var lBytePosition = 0; var lByteCount = 0; while ( lByteCount < lMessageLength ) { lWordCount = (lByteCount-(lByteCount % 4))/4; lBytePosition = (lByteCount % 4)*8; lWordArray[lWordCount] = (lWordArray[lWordCount] | (string.charCodeAt(lByteCount)<<lBytePosition)); lByteCount++; } lWordCount = (lByteCount-(lByteCount % 4))/4; lBytePosition = (lByteCount % 4)*8; lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80<<lBytePosition); lWordArray[lNumberOfWords-2] = lMessageLength<<3; lWordArray[lNumberOfWords-1] = lMessageLength>>>29; return lWordArray; }; function WordToHex(lValue) { var WordToHexValue="",WordToHexValue_temp="",lByte,lCount; for (lCount = 0;lCount<=3;lCount++) { lByte = (lValue>>>(lCount*8)) & 255; WordToHexValue_temp = "0" + lByte.toString(16); WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2); } return WordToHexValue; }; function Utf8Encode(string) { string = string.replace(/\r\n/g,"\n"); var utftext = ""; for (var n = 0; n < string.length; n++) { var c = string.charCodeAt(n); if (c < 128) { utftext += String.fromCharCode(c); } else if((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; }; var x=Array(); var k,AA,BB,CC,DD,a,b,c,d; var S11=7, S12=12, S13=17, S14=22; var S21=5, S22=9 , S23=14, S24=20; var S31=4, S32=11, S33=16, S34=23; var S41=6, S42=10, S43=15, S44=21; string = Utf8Encode(string); x = ConvertToWordArray(string); a = 0x67452301; b = 0xEFCDAB89; c = 0x98BADCFE; d = 0x10325476; for (k=0;k<x.length;k+=16) { AA=a; BB=b; CC=c; DD=d; a=FF(a,b,c,d,x[k+0], S11,0xD76AA478); d=FF(d,a,b,c,x[k+1], S12,0xE8C7B756); c=FF(c,d,a,b,x[k+2], S13,0x242070DB); b=FF(b,c,d,a,x[k+3], S14,0xC1BDCEEE); a=FF(a,b,c,d,x[k+4], S11,0xF57C0FAF); d=FF(d,a,b,c,x[k+5], S12,0x4787C62A); c=FF(c,d,a,b,x[k+6], S13,0xA8304613); b=FF(b,c,d,a,x[k+7], S14,0xFD469501); a=FF(a,b,c,d,x[k+8], S11,0x698098D8); d=FF(d,a,b,c,x[k+9], S12,0x8B44F7AF); c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1); b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE); a=FF(a,b,c,d,x[k+12],S11,0x6B901122); d=FF(d,a,b,c,x[k+13],S12,0xFD987193); c=FF(c,d,a,b,x[k+14],S13,0xA679438E); b=FF(b,c,d,a,x[k+15],S14,0x49B40821); a=GG(a,b,c,d,x[k+1], S21,0xF61E2562); d=GG(d,a,b,c,x[k+6], S22,0xC040B340); c=GG(c,d,a,b,x[k+11],S23,0x265E5A51); b=GG(b,c,d,a,x[k+0], S24,0xE9B6C7AA); a=GG(a,b,c,d,x[k+5], S21,0xD62F105D); d=GG(d,a,b,c,x[k+10],S22,0x2441453); c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681); b=GG(b,c,d,a,x[k+4], S24,0xE7D3FBC8); a=GG(a,b,c,d,x[k+9], S21,0x21E1CDE6); d=GG(d,a,b,c,x[k+14],S22,0xC33707D6); c=GG(c,d,a,b,x[k+3], S23,0xF4D50D87); b=GG(b,c,d,a,x[k+8], S24,0x455A14ED); a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905); d=GG(d,a,b,c,x[k+2], S22,0xFCEFA3F8); c=GG(c,d,a,b,x[k+7], S23,0x676F02D9); b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A); a=HH(a,b,c,d,x[k+5], S31,0xFFFA3942); d=HH(d,a,b,c,x[k+8], S32,0x8771F681); c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122); b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C); a=HH(a,b,c,d,x[k+1], S31,0xA4BEEA44); d=HH(d,a,b,c,x[k+4], S32,0x4BDECFA9); c=HH(c,d,a,b,x[k+7], S33,0xF6BB4B60); b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70); a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6); d=HH(d,a,b,c,x[k+0], S32,0xEAA127FA); c=HH(c,d,a,b,x[k+3], S33,0xD4EF3085); b=HH(b,c,d,a,x[k+6], S34,0x4881D05); a=HH(a,b,c,d,x[k+9], S31,0xD9D4D039); d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5); c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8); b=HH(b,c,d,a,x[k+2], S34,0xC4AC5665); a=II(a,b,c,d,x[k+0], S41,0xF4292244); d=II(d,a,b,c,x[k+7], S42,0x432AFF97); c=II(c,d,a,b,x[k+14],S43,0xAB9423A7); b=II(b,c,d,a,x[k+5], S44,0xFC93A039); a=II(a,b,c,d,x[k+12],S41,0x655B59C3); d=II(d,a,b,c,x[k+3], S42,0x8F0CCC92); c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D); b=II(b,c,d,a,x[k+1], S44,0x85845DD1); a=II(a,b,c,d,x[k+8], S41,0x6FA87E4F); d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0); c=II(c,d,a,b,x[k+6], S43,0xA3014314); b=II(b,c,d,a,x[k+13],S44,0x4E0811A1); a=II(a,b,c,d,x[k+4], S41,0xF7537E82); d=II(d,a,b,c,x[k+11],S42,0xBD3AF235); c=II(c,d,a,b,x[k+2], S43,0x2AD7D2BB); b=II(b,c,d,a,x[k+9], S44,0xEB86D391); a=AddUnsigned(a,AA); b=AddUnsigned(b,BB); c=AddUnsigned(c,CC); d=AddUnsigned(d,DD); } var temp = WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d); return temp.toLowerCase(); } Расчет хеш-суммы SHA-1JavaScript: Криптография, защита данных @WebToolkit 16.04.2011 15:57 Функция на JavaScript для расчета хеш-суммы указанной строки по алгоритму SHA-1.function SHA1 (msg) { function rotate_left(n,s) { var t4 = ( n<<s ) | (n>>>(32-s)); return t4; }; function lsb_hex(val) { var str=""; var i; var vh; var vl; for( i=0; i<=6; i+=2 ) { vh = (val>>>(i*4+4))&0x0f; vl = (val>>>(i*4))&0x0f; str += vh.toString(16) + vl.toString(16); } return str; }; function cvt_hex(val) { var str=""; var i; var v; for( i=7; i>=0; i-- ) { v = (val>>>(i*4))&0x0f; str += v.toString(16); } return str; }; function Utf8Encode(string) { string = string.replace(/\r\n/g,"\n"); var utftext = ""; for (var n = 0; n < string.length; n++) { var c = string.charCodeAt(n); if (c < 128) { utftext += String.fromCharCode(c); } else if((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; }; var blockstart; var i, j; var W = new Array(80); var H0 = 0x67452301; var H1 = 0xEFCDAB89; var H2 = 0x98BADCFE; var H3 = 0x10325476; var H4 = 0xC3D2E1F0; var A, B, C, D, E; var temp; msg = Utf8Encode(msg); var msg_len = msg.length; var word_array = new Array(); for( i=0; i<msg_len-3; i+=4 ) { j = msg.charCodeAt(i)<<24 | msg.charCodeAt(i+1)<<16 | msg.charCodeAt(i+2)<<8 | msg.charCodeAt(i+3); word_array.push( j ); } switch( msg_len % 4 ) { case 0: i = 0x080000000; break; case 1: i = msg.charCodeAt(msg_len-1)<<24 | 0x0800000; break; case 2: i = msg.charCodeAt(msg_len-2)<<24 | msg.charCodeAt(msg_len-1)<<16 | 0x08000; break; case 3: i = msg.charCodeAt(msg_len-3)<<24 | msg.charCodeAt(msg_len-2)<<16 | msg.charCodeAt(msg_len-1)<<8 | 0x80; break; } word_array.push( i ); while( (word_array.length % 16) != 14 ) word_array.push( 0 ); word_array.push( msg_len>>>29 ); word_array.push( (msg_len<<3)&0x0ffffffff ); for ( blockstart=0; blockstart<word_array.length; blockstart+=16 ) { for( i=0; i<16; i++ ) W[i] = word_array[blockstart+i]; for( i=16; i<=79; i++ ) W[i] = rotate_left(W[i-3] ^ W[i-8] ^ W[i-14] ^ W[i-16], 1); A = H0; B = H1; C = H2; D = H3; E = H4; for( i= 0; i<=19; i++ ) { temp = (rotate_left(A,5) + ((B&C) | (~B&D)) + E + W[i] + 0x5A827999) & 0x0ffffffff; E = D; D = C; C = rotate_left(B,30); B = A; A = temp; } for( i=20; i<=39; i++ ) { temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0x6ED9EBA1) & 0x0ffffffff; E = D; D = C; C = rotate_left(B,30); B = A; A = temp; } for( i=40; i<=59; i++ ) { temp = (rotate_left(A,5) + ((B&C) | (B&D) | (C&D)) + E + W[i] + 0x8F1BBCDC) & 0x0ffffffff; E = D; D = C; C = rotate_left(B,30); B = A; A = temp; } for( i=60; i<=79; i++ ) { temp = (rotate_left(A,5) + (B ^ C ^ D) + E + W[i] + 0xCA62C1D6) & 0x0ffffffff; E = D; D = C; C = rotate_left(B,30); B = A; A = temp; } H0 = (H0 + A) & 0x0ffffffff; H1 = (H1 + B) & 0x0ffffffff; H2 = (H2 + C) & 0x0ffffffff; H3 = (H3 + D) & 0x0ffffffff; H4 = (H4 + E) & 0x0ffffffff; } var temp = cvt_hex(H0) + cvt_hex(H1) + cvt_hex(H2) + cvt_hex(H3) + cvt_hex(H4); return temp.toLowerCase(); } Base64JavaScript: Строки @WebToolkit 16.04.2011 15:54 Класс на JavaScript, позволяющий кодировать и декодировать данные в Base64.var Base64 = { // private property _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", // public method for encoding encode : function (input) { var output = ""; var chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; input = Base64._utf8_encode(input); while (i < input.length) { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64; } else if (isNaN(chr3)) { enc4 = 64; } output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4); } return output; }, // public method for decoding decode : function (input) { var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (i < input.length) { enc1 = this._keyStr.indexOf(input.charAt(i++)); enc2 = this._keyStr.indexOf(input.charAt(i++)); enc3 = this._keyStr.indexOf(input.charAt(i++)); enc4 = this._keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) { output = output + String.fromCharCode(chr2); } if (enc4 != 64) { output = output + String.fromCharCode(chr3); } } output = Base64._utf8_decode(output); return output; }, // private method for UTF-8 encoding _utf8_encode : function (string) { string = string.replace(/\r\n/g,"\n"); var utftext = ""; for (var n = 0; n < string.length; n++) { var c = string.charCodeAt(n); if (c < 128) { utftext += String.fromCharCode(c); } else if((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; }, // private method for UTF-8 decoding _utf8_decode : function (utftext) { var string = ""; var i = 0; var c = c1 = c2 = 0; while ( i < utftext.length ) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i+1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; } } Перетаскивание (Drag'n'Drop) html-элементовJavaScript: Интерфейс @WebToolkit 16.04.2011 15:47 Пример перетаскивания (Drag'n'Drop) html-элементов при помощи JavaScript.var DragHandler = { // private property. _oElem : null, // public method. Attach drag handler to an element. attach : function(oElem) { oElem.onmousedown = DragHandler._dragBegin; // callbacks oElem.dragBegin = new Function(); oElem.drag = new Function(); oElem.dragEnd = new Function(); return oElem; }, // private method. Begin drag process. _dragBegin : function(e) { var oElem = DragHandler._oElem = this; if (isNaN(parseInt(oElem.style.left))) { oElem.style.left = '0px'; } if (isNaN(parseInt(oElem.style.top))) { oElem.style.top = '0px'; } var x = parseInt(oElem.style.left); var y = parseInt(oElem.style.top); e = e ? e : window.event; oElem.mouseX = e.clientX; oElem.mouseY = e.clientY; oElem.dragBegin(oElem, x, y); document.onmousemove = DragHandler._drag; document.onmouseup = DragHandler._dragEnd; return false; }, // private method. Drag (move) element. _drag : function(e) { var oElem = DragHandler._oElem; var x = parseInt(oElem.style.left); var y = parseInt(oElem.style.top); e = e ? e : window.event; oElem.style.left = x + (e.clientX - oElem.mouseX) + 'px'; oElem.style.top = y + (e.clientY - oElem.mouseY) + 'px'; oElem.mouseX = e.clientX; oElem.mouseY = e.clientY; oElem.drag(oElem, x, y); return false; }, // private method. Stop drag process. _dragEnd : function() { var oElem = DragHandler._oElem; var x = parseInt(oElem.style.left); var y = parseInt(oElem.style.top); oElem.dragEnd(oElem, x, y); document.onmousemove = null; document.onmouseup = null; DragHandler._oElem = null; } } Диаграмма использования жестких дисковC#: Железо и устройства @Andrew Pociu 16.04.2011 15:37 Неплохая программка на C#, которая выводит красивые объемные диаграммы использования жестких дисков.К данном исходному коду прилагаются файлы примеров. Скачать. Вакансии в ITИнженер-программист (web)Россия, Новосибирск | Работа в офисе Ведущий ASP .Net разработчикРоссия, Москва, Зеленоград | Работа в офисе | 90 000.00 RUB Контент-менеджерРоссия, Санкт-Петербург | Работа в офисе | 30 000.00 RUB Все вакансии в IT · Новости мира ITGoogle предоставит пользователям возможность самим делать картыGoogle сегодня презентовала новый сервис Google Earth Builder, позволяющий бизнесу размещать геопространственные данные в вычислительном облаке Google и получать к ним доступ через браузер на любом устройстве. Решение Earth Builder представляет собой отход от картографических продуктов компании, доступных до сих пор.
Основным картографическим решением Google на сегодняшний день является продукт Google Earth, представляющий собой бесплатное настольное программное обеспечение со снимками земной поверхности со спутника, выравненными по топографически точной трехмерной модели Земли. Компания также поставляет коммерческую версию Google Earth Pro за 399 долларов в год и Google Earth Enterprise для некоммерческих и научных целей, связанных с исследованием планеты и ее климата. Pro-версия скачивается на ПК пользователей, Earth
Enterprise размещается на корпоративных серверах Google. 21.04.2011 12:25 · Категория: Бизнес в IT · Источник: CyberSecurity.ru "Лаборатория Касперского" выпустит решение для защиты виртуальных машинАнтивирусная компания "Лаборатория Касперского" до конца этого года планирует выпустить программное обеспечение для защиты от ИТ-угроз виртуальных машин, работающих на серверах и рабочих станциях. Новое решение будет осуществлять защиту через взаимодействие с VMware vShield Endpoint. В компании говорят, что новинка будет направлена на использование в среде датацентров, а загрузку машин антивирусным сканированием производитель обещает снизить до минимума. При помощи vShield Endpoint, антивирусный продукт будет проводить сканирование программ и пользовательских данных, расположенных на виртуальных системах. Новое программное обеспечение не будет иметь клиентского интерфейса и будет работать поверх каждой виртуальной машины, что избавит пользователей от необходимости установки антивируса в каждой виртуальной операционной системе. 21.04.2011 12:24 · Категория: Безопасность · Источник: CyberSecurity.ru В интернете появился аукцион IP-адресовФакт завершения адресного IPv4-пространства в интернете не оставляет многих в стороне от данного вопроса: кто-то пытается перейти на новую версию IP-протокола, другие пытаются сделать на иссякающих адресах собственный бизнес. Так, немецкий программист Мартин Фон Левис на днях открыл веб-сайт TradeIPv4.com, где занялся продажей IP-адресов по принципу аукциона.
Сейчас проект торгует адресами из адресного пространства регистраторов ARIN (Северная Америка) и APNIC (Азия). Ставки на адреса стартуют с 3 долларов для пространства ARIN и 4 долларов для APNIC. Разница в цене логична, так как в азиатском регионе более остро ощущается нехватка адресного пространства. 21.04.2011 12:24 · Категория: Бизнес в 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. |
В избранное | ||