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

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


Выпуск # 659

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


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

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

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

Форумы Kbyte.Ru

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

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

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

Суть: пытаюсь использовать Web Service в Web Server Control. Добавляется и компилируется на ура, при попытке работы выдаётся исключение

System.InvalidOperationException не обработано пользовательским кодом
Message=Не удалось найти элемент конечной точки с именем "WebServiceSoap" и контрактом "GeneGuardWebService.WebServiceSoap" в разделе конфигурации клиента ServiceModel. Это может быть вызвано тем, что для приложения не найден файл конфигурации или в элементе клиента не найден элемент конечной точки, соответствующий данному имени.
Source=System.ServiceModel

Сам клиент вызывается в процедуре
 
  protected override void OnLoad(EventArgs e) 
    { 
      WebServiceSoapClient cli = new WebServiceSoapClient("WebServiceSoap"); 
…. 
}  

В этом фрагменте я пытаюсь установить конечную точку – безрезультатно.
Что делать?
app.config - стандартный. С другими проектами всё работает на ура.

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

Ответ #1 @Aleksey Nemiro 13.10.2011 20:45
Попробуй использовать веб-ссылку, а не ссылку на веб-службу.
Проект -> Добавить ссылку на службу -> Дополнительно -> Добавить веб-ссылку.

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

Ответ #2 @Игорь Голов 13.10.2011 21:24
А вызывать как?

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

Ответ #3 @Алексей Немиро 13.10.2011 21:38
При добавлении веб-ссылки можно будет указать пространство имен. Использовать нужно классы из этого пространства, как обычно.

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

Ответ #4 @Игорь Голов 13.10.2011 23:10
Разобрался тут же.
Пример:

 
localhost.WebService srv = new WebService(); 

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

Добавить свой ответ в эту тему
Парсинг @arteom95 13.10.2011 20:10
Здравствуйте! есть такая задача:
Имеется файл к примеру bd.txt в нем строчки

$login_name='name'; 
$pass_name='namepass'; 
$login_name1='1'; 
$pass_name1='1p'; 
$login_name2='2'; 
$pass_name2='2p';
и скрипт допустим login.php
задача скрипта:ему передается POST методом параметры name и pass скрипт должен найти есть ли в bd.txt $_POST['name'] если есть то сравнить $_POST['name'] со строчкой вида ($login_ параметр $_POST['name']) если верно то сравнить $_POST['pass'] со строчкой ($pass_ параметр $login_name) и в случае успеха что то выдать..неполучается нормально распрасить и загнать в переменные для проверки.дошел только до этого:
$bd = file_get_contents("bd.txt"); 
 
if(strpos($bd, "_".$_POST['name']."=") === false) 
{ 
echo 'Пользователь не найден!'; 
}else{ 
$pos = strpos($bd, '$pass_'.$_POST['name'].'='); 
$bd = substr($bd, $pos); 
$pos = strpos($bd, ';'); 
$bd = substr($bd, 0, $pos); 
 

но в этом случае $bd равно $pass_name2='2p' .а мне надо как я сказал выше..
Помогите плз,оч прошу.

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

Ответ #1 @arteom95 13.10.2011 20:59
Свою задачу решил все-таки но ршил другим способом,"говнокод" хороший получился,но работает и правильно..пока что,но все-таки хотелось бы увидеть Ваш вариант помощи))

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

Добавить свой ответ в эту тему
Parss @i32 13.10.2011 15:21
Подскажите как спарсить слово с хтмл если я знаю только тег в который оно заключено.?
Кусок кода:
 Dim Bl As String = ResStreamReader.ReadToEnd 
    If Bl.Contains("<big> "" </big>") = True Then 
      MsgBox("ok!!!", 0, "Login!") 
'<big> Здесь слово <big>
Спасибо заранее...

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

Ответ #1 @Aleksey Nemiro 13.10.2011 15:44
Примерно так:
Imports System.Text.RegularExpressions
Dim searchSource As String = "<big>Kbyte.Ru</big>" 
Dim m As Match = Regex.Match(searchSource, "<big>(?<word>.*?)</big>") 
MsgBox(m.Groups("word").Value)

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

Ответ #2 @i32 13.10.2011 16:17
Ага это вышло -Поиск и замена .Я так понял.А мне нужно Именно то что там между тегов находится."Сфотографировать "
В msmsgBox ..


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

Ответ #3 @Aleksey Nemiro 13.10.2011 16:30
Нету тут никакой замены, только поиск

Указанный мной выше пример выдернет и покажет в MsgBox из строки <big>Kbyte.Ru</big> слово Kbyte.Ru, оригинальный текст останется без изменений. Если нужно заменить найденное слово, то код будет примерно таким:
Dim searchSource As String = "<big>Kbyte.Ru</big>" 
MsgBox(Regex.Replace(searchSource, "<big>(?<word>.*?)</big>", "<strong>$1</strong>")) 
MsgBox(Regex.Replace(searchSource, "<big>(?<word>.*?)</big>", "Привет, мир!")) 
MsgBox(Regex.Replace(searchSource, "<big>(?<word>.*?)</big>", "<big>Привет, мир!</big>"))
Между <big></big> может находиться любой набор символов (.*)

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

Ответ #4 @i32 13.10.2011 16:55
Как бы все понял у тебя.Но у меня Kbyte.Ru в хтмл Точно не написано И я Не знаю что там написано в данный момент .А
хотелось бы. В твоем коде ты уже знаешь что между тегами .Вернее сам прописал..А мне надо зайти.найти по тегам и МСГ(то что я нашел)
Может мне как то так прописать ...
Dim searchSource As String = "<big>""</big>"
Or
Dim searchSource As String = "<big>...</big>"
or
Dim searchSource As String = "<big> </big>"
Все не подходят

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

Ответ #5 @Aleksey Nemiro 13.10.2011 17:17
В твоем коде ты уже знаешь что между тегами
ничего я не знаю, там может быть все, что угодно, более того, там может вообще ничего не быть!
Dim m As Match = Regex.Match(searchSource, "<big>(?<word>.*?)</big>")
Dim m as Match
объявляем переменную типа Match, которая будет содержать найденную строку (в данном случае одну, если использовать MatchCollection можно обрабатывать более одного найденного совпадения)

Regex.Match(searchSource, "<big>(?<word>.*?)</big>")
поиск в строке searchSource подстроки по шаблону <big>(?<word>.*?)</big>

<big>(?<word>.*?)</big>
искать любой текст находящийся между тегами big.

?<word> - найденную строку поместить в группу с именем word, это имя можно использовать для получения найденного совпадения из коллекции Groups - m.Groups("word").Value
.* - любой символ, включая отсутствие таковых (если текст должен быть по любому, то вместо звездочки нужно поставить плюс (.+))
? - ограничить поиск, чтобы не захватить ничего лишнего. Например если в тексте будет несколько тегов big, может так получиться, что будет захвачен весь текст от первого открывающегося тега big до последнего закрывающегося. Символ вопроса должен не пускать поиск дальше первого закрывающегося тега big.
Все не подходят
Проверил, без проблем находит.
Dim searchSource As String = "<big>...</big>" 
Dim m As Match = Regex.Match(searchSource, "<big>(?<word>.*?)</big>") 
MsgBox(m.Groups("word").Value) 
 
searchSource = "<big>один, два, три</big>" 
m = Regex.Match(searchSource, "<big>(?<word>.*?)</big>") 
MsgBox(m.Groups("word").Value) 
 
searchSource = "<big>-x-</big>" 
m = Regex.Match(searchSource, "<big>(?<word>.*?)</big>") 
MsgBox(m.Groups("word").Value) 
 
searchSource = "<big>@#$@#%$@#%$@#@#$</big>" 
m = Regex.Match(searchSource, "<big>(?<word>.*?)</big>") 
MsgBox(m.Groups("word").Value)


PS: В зависимости от текста - источника поиска, может потребоваться изменение шаблона поиска или использование дополнительных опций поиска. Если с этим проблемы, то нужен пример текста.

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

Добавить свой ответ в эту тему · В теме есть еще 9 ответов. Смотреть все ответы.
Какие матричные игры можно сделать на VB6 ?? курсовая на эту тему у меня.помогите

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

Доброго времени суток, уважаемые.
Подобный вопрос здесь уже задавался, но не то..

Интересует, по какому событию определить момент, когда форма уже создана и прорисована?
Т.е. к примеру, надо, чтобы некий ПиктуреБокс плавно "вылезал из-за угла" формы при запуске приложения.
LOAD для этого не подходит - ПиктуреБокс будет уже "вылезший".

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

Ответ #1 @Aleksey Nemiro 09.10.2011 14:22
Интересует, по какому событию определить момент, когда форма уже создана и прорисована?
Событие Paint происходит при каждой прорисовке формы, на этот момент форма уже создана и загружена - событие Load.
Т.е. к примеру, надо, чтобы некий ПиктуреБокс плавно "вылезал из-за угла" формы при запуске приложения.
см. прикрепленный пример.
LOAD для этого не подходит - ПиктуреБокс будет уже "вылезший".
Нужно использовать таймер. Если циклом в событие Load (и любом другом) - то работать не будет, т.к. поток блокируется и программа будет ожидать завершение работы цикла, и эффекта движения видно не будет.

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

Ответ #2 @Сергей 09.10.2011 15:19
Алексей, спасибо.
Я примерно так и делал. Просто интервал таймера поставил мало (1000)
т.е. он успевал 2 или несколько раз срабатывать. А после обработки ТИКА я ставил ENABLED FALSE.
И вот эти несколько сработавших действий я расценивал, как продолжение работы таймера (уже после ENABLED FALSE)
Поставил интервал 5000 - и он стал 1 раз срабатывать за время загрузки

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

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

Как сделать чтоб в TextBox во время ввода числа, нельзя было писать больше одного нуля перед запятой (типа 000,1 или 0050,12) ?

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

Ответ #1 @Aleksey Nemiro 08.10.2011 21:45
Можно использовать MaskedTextBox.
Разместить на форме MaskedTextBox (см. панель инструментов) и установить шаблон ввода (маску) - свойство Mask. Например Mask = "0.0000"
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
  Dim mtb As New MaskedTextBox() 
  mtb.Mask = "0.0000" 
  Me.Controls.Add(mtb) 
End Sub

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

Ответ #2 @serg1980serg 08.10.2011 22:11
А именно в TextBox ничего нельзя сделать? (это поле у меня работает для ввода диаметра, а он может быть и дробный и целочисленный).

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

Ответ #3 @Алексей Немиро 08.10.2011 23:09
Можно обрабатывать событие KeyDown или KeyPress. Только смысла в этом никакого нет, сплошной геморрой :)
Можно проверять, если вводимый символ - ноль и если он в начале строки, то запрещать ввод. Также придется обрабатывать вставку из буфера обмена.

Пример возможно только завтра приведу, в телефоне Visual Studio у меня, к сожалению, нет

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

Ответ #4 @serg1980serg 08.10.2011 23:46
Я пока что совсем-совсем новичок. Всего 5 дней как пытаюсь постичь программирование. Поэтому буду признателен за пример. Хотелось бы исключить возможность писать в TextBox такое:

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

Ответ #5 @ArkIv 09.10.2011 00:47
Для новичка крутова-то столько вкладок с картинками
KeyPress - там проверяй все. с масками сложновато вводить - нервирует очень
маски просто не дают вводить что либо что очень не удобно - оно не ввелось а почему хз
а при KeyPress (KeyDown) всегда сможешь анализировать и свистеть если что..
(хотя лукавлю наверно в масках тоже есть что-то по этому поводу счас не помню уже)
там для ленивых try{double x =Convert.ToDouble(TextBox.text } catch{TextBox.text="набирай цифры"}
тут и дробный и целочисленный - кстати это тоже можно задать в маске..

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

Добавить свой ответ в эту тему · В теме есть еще 26 ответов. Смотреть все ответы.
AsteriskNow @ArkIv 08.10.2011 00:09
Вопрос как заставить входящие звонки с транка
поступать в IncomingRoute т.е.в место где я могу управлять входящими звонками.
к сожалению темы отдельной нет. :)
это касается токо AsteriskNow - у него только FreePBX .т.е.
прямого управления файлами настроек нет.
управление конфигами файлов не предлагать.. :)

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

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

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

Папка или файл?

C#: Файлы и папки @Алексей Немиро 08.10.2011 17:21
Пример показывает, как в C# можно проверить, является ли указанный путь файлом или папкой.
if (System.IO.File.Exists(path)) 
{ 
  Console.WriteLine("Это файл"); 
} 
else if (System.IO.Directory.Exists(path)) 
{ 
  Console.WriteLine("Это папка"); 
}

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

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

Вакансии в IT

Программист Битрикс

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

Java - разработчик

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

Программист микроконтроллеров

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

Программист Delphi

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

Программист

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

Программист

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

Инженер-программист

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

Программист

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

Программист Delphi и Visual Studio + MS SQL SERVER

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

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

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

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

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

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

Sony отзовет более полутора миллионов телевизоров Bravia

Компания Sony отзовет 1,6 миллиона телевизоров Bravia по всему миру. Это связано с сообщениями о появлении дыма и оплавлении деталей внутри устройств. Отозваны будут некоторые модели телевизоров, произведенных в 2007 и 2008 году и проданных, в основном, в Европе и США.

13.10.2011 11:38 · Категория: Железо · Источник: Lenta.ru

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

HTC выпускает новые Windows Phone-смартфоны Titan и Radar

Тайваньский производитель смартфонов HTC сегодня представил свои первые смартфоны, работающие на базе операционной системы Windows Phone 7.5 Mango. Аппараты Titan и Radar являются своеобразным ответом на недавний релиз Apple iPhone 4S. В самой HTC говорят, что для них это первые аппараты, работающие на базе Mango.

Согласно описанию компании, аппарат Titan имеет две камеры (8 и 1,3 МП), 4,7-дюймовый сенсорный экран, тогда как Radar работает на базе 3,8-дюймового экрана и 5-мегапиксельной камеры. Выход телефонов ожидается в этом и следующем месяцах соответственно. Стоимость аппарата Titan составляет 18 900 тайваньских долларов (около 620 долларов США), а Radar - 13 900 тайваньских долларов (около 455 долларов США).

Представители HTC сообщили, что Titan будет продаваться по 599 евро, тогда как Radar - по 399 евро (цены розничные, без учета операторских субсидий).

Данные смартфоны являются вторыми устройствами на рынке, где используется операционная система Windows Phone 7.5 Mango. Первым устройством на базе этой ОС стал аппарат IS12T компании Fujitsu Toshiba Mobile Communications, однако этот аппарат продается только в Японии. Согласно последним данным IDC, сейчас рыночная доля операционной системы Windows Phone составляет всего лишь 2,7%, против 40% у Android. Фактически, с момента выхода этой ОС Windows Phone так и не смогла набрать сколько-нибудь существенной доли рынка.

Также аналитики отмечают, что альтернативные производители Windows-смартфонов, такие как HTC, стараются выпустить свои новинки за месяц-два до того, как это сделает компания Nokia, ставшая основным технологическим партнером Microsoft. Ранее о своих планах по выпуску Windows-смартфонов заявили компании Acer, ZTE, Dell и Samsung.

Что касается новых аппаратов HTC, то они в целом напоминают Android-смартфоны Desire и Sensation. Из двух представленных аппаратов Titan является более технически продвинутым: здесь в наличии 1,5-гигагерцевый процессор, 16 Гб встроенной памяти и 512 Мб оперативной памяти. Дисплей у устройства 4,7-дюймовый с разрешением 480x800 WGVA. Аппарат Radar имеет гигагерцевый процессор, 512 Мб ОЗУ и 8 Гб встроенной памяти, дисплей у смартфона 3,8-дюймовый. Оба смартфона поддерживают высокоскоростной стандарт HSDPA, позволяющий скачивать данные на скорости до 14,4 Мб/сек.

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

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

Microsoft: не стоит переоценивать риск от "атак нулевого дня"

Microsoft в своем последнем отчете о безопасности современных вычислительных систем говорит, что хотя совсем уж сбрасывать со счетов так называемые "атаки нулевого дня" не стоит, говорить о них как о серьезной угрозе безопасности массового пользователя тоже было бы неверно. По статистике, всего 1% эксплоитов, выявленных специалистами в первом квартале 2011 года, использовали уязвимости "нулевого дня", тогда как подавляющее число атак - это старые уязвимости и социальные методы, такие как обман, шантаж и тому подобные.

В отчете группы Microsoft Trustwothy Computing говорится, что социальная инженерия, атаки с перебором паролей и угрозы, базирующиеся на методе автозапуска программ, составляют львиную долю угроз в первом полугодии.

Джефф Джонс, директор Trustworthy Computing Group, говорит, что сейчас вероятность того, что обычный пользователь интернета столкнется с "атакой нулевого дня", когда хакеры будут использовать принципиально новые механизмы и ранее неизвестные дыры в программном обеспечении, крайне мала. Большинство таких атак направлено на тех или иных корпоративных пользователей и, как правило, изначально проектируется в расчете на ту или иную жертву.

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


В избранное