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

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


Выпуск # 759

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


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

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

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

Форумы Kbyte.Ru

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

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

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

Среда Visual Basic STUDIO’2010 Professional
В проекте XML, поставленном со студией'2010,имеется единственная
форма "MainForm.vb", содержащая
Public Class MainForm
В указанном классе имеется процедура
Private Sub Form1_Load(. . .)
Она выполняется при открытии проекта.
В окне свойств в поле Name стоит " MainForm"
Не понимаю связи между "MainForm" and "Form1"
В проекте отсутствует форма "Form1".
В окне Свойств в строке "Load" отсутствует имя вызываемой процедуры, например, Form1_Load или "MainForm_Load".
"Form1" во всём проекте найдена в строке
MainForm.Designer.vb(162): Me.Text = "Form1"
В заголовке формы выводится "Form1"
Спасибо.

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

Ответ #1 @Алексей Немиро 29.01.2014 18:37
Private Sub Form1_Load(. . .)
Имя метода обработчика может быть любым. Там в конце должно быть написано Handles MyBase.Load, как раз это связывает обработчик с текущей формой.
В заголовке формы выводится "Form1"
За это отвечает свойство Text.

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

Ответ #2 @Алексей Немиро 29.01.2014 21:21
На скрине видно, что у формы нет обработчика Load, можно создать новый, а Firm1_Load удалить. Либо указать Form1_Load в качестве обработчика загрузки формы MainForm. Либо вручную добавить в коде связку метода с обработчиком: Form1_Load(...) Handles MyBase.Load, имя метода можно изменить, ничего страшного не произойдет.

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

Добавить свой ответ в эту тему
Среда Visual Basic STUDIO’2010 Professional
Example From MSDN'2008 XmlReader.Create – метод
' Create a resolver with default credentials.
        Dim resolver As XmlUrlResolver = New XmlUrlResolver()
        resolver.Credentials = System.Net.CredentialCache.DefaultCredentials

        ' Set the reader settings object to use the resolver.
        Dim settings6 As New XmlReaderSettings()
        settings6.XmlResolver = resolver

        ' Create the XmlReader object.
        Dim reader6 As XmlReader = XmlReader.Create("D:\books5.xml", settings6)
        ' Файл 'D:\books5.xml' не найден. Файл 'D:\books5.xml' не найден.
Как может быть найден файл, если он создаётся?
Спасибо.

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

Ответ #1 @Алексей Немиро 29.01.2014 17:46
XmlReader - читает файлы. Для записи (создания) нужно использовать XmlWriter.

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

Добавить свой ответ в эту тему
Всем доброго времени суток!
Столкнулся с некоторой сложностью в понимании темы по преобразованию типов данных.
Каждая строка содержит набор(или массив)символов,которые,в свою очередь,относятся
к свойству Chars().Строке можно присвоить какое-нибудь значение.
На сколько невероятен мой вопрос,если он будет иметь следующее содержание:
возможно ли,вообще, символу строки присвоить значение в виде Single,если формат строки-текстовый?

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

Ответ #1 @Алексей Немиро 28.01.2014 18:26
Универсальный тип данных Object, его можно использовать, если переменная может иметь разные типы данных.

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

Если в тип Object передать число, а не строку, то по идее оно должно остаться числом.

Проверить тип можно так:
Dim value As Object
value = 123
ShowType(value)
value = "привет"
ShowType(value)
value = 1.23
ShowType(value)
value = Now
ShowType(value)
Private Sub ShowType(value As Object)
If value.GetType() Is GetType(Integer) Then
  MsgBox("Целое число!")
ElseIf value.GetType() Is GetType(String) Then
  MsgBox("Строка!")
ElseIf value.GetType() Is GetType(Decimal) OrElse value.GetType() Is GetType(Single) value.GetType() Is GetType(Double) Then
  MsgBox("Число с плавающей точкой!")
ElseIf value.GetType() Is GetType(Date) Then
  MsgBox("Дата и время!")
End If
End Sub

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

Ответ #2 @Scryaga 29.01.2014 17:05
Здравствуйте,Алексей!
Спасибо за подробный ответ,который,в принципе,генерирует дополнительное
обращение к Вам с вопросом:Как разрешить ниже приведённую ситуацию,
в которой я пытаюсь расцепить строку на символы и каждому объекту(символу)
присвоить числовое значение(Single),если выпадает исключение с указанием
на свойство Chars(),т.е,в данном контексте,оно является ReadOnly.
И,как результат,- я не могу объекту присвоить значение.
По всей вероятности,где-то зарыта моя ошибка.
 Dim objA As Object = strStrokaStextom 'изначально,strStrokaStextom - строка с обычным тестом
       ' Перебираю все символы.
        Dim i As Integer = 0
        For i = 0 To objA.Length - 1
            Form1.StrToSingle(objA(i)) 'попытка в преобразовании типа данных(из строки - в числовой)
            objA(1) = 52.0F            'строка с кодом,вызывающим исключение
            MessageBox.Show(objA(1))   'чисто для проверки результата
        Next  

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

Ответ #3 @Алексей Немиро 29.01.2014 17:56
Если strStrokaStextom - это строка символов, то objA(i) (кстати, вместо i в коде стоит единица) будет содержать массив символов (Char).

Char - это один символ. В Char не может быть больше одного символа.

objA(i) = 52.0F - это как минимум 4-5 символов, т.е. char будет переполнен.

Form1.StrToSingle(objA(i)) : если StrToSingle - это функция, то она должна возвращать какое-то значение. В данном случае, вероятно должна возвращать значение типа Single, которое нужно чему-то присваивать. В данном случае эта строчка выполняется в холостую.

Второй момент, число single - это число с плавающей точкой, т.е. пытаться найти в одном символе число single просто не имеет смысла, ибо его там не может быть, даже теоретически. В один символ может уместиться только Byte, целое число, от нуля до 255, но в данном случае, от нуля до девяти.

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

Ответ #4 @Алексей Немиро 29.01.2014 17:58
Проверить, является Char числом или нет, можно при помощи встроенной функции IsNumber:
      If Char.IsNumber(objA(i)) Then
        MsgBox(objA(i))
      End If

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

Ответ #5 @Scryaga 29.01.2014 18:47
Из всего выше изложенного складывается такая картинка,в которой вся глубина
моего вопроса срыта где-то в глубине моего сознания,а на поверхности - моя
неумелая попытка выглядеть,по крайней мере,человеком,не похожим на "чайника".
Вся беда в том,что в моих вопросах отсутствует краткость и ясность,что сбивает
с толку тех,кто пытается раскодировать смысл моих вопросов.С Вашего разрешения,
начну с начала.
Идея и замысел моего проекта заключается в простом проигрывании сгенерированных
звуков в нотной последовательности,согласно строки,введённой пользователем(это
будет его имя,фамилия и т.д.).Каждая нота имеет свою тональность,которая имеет
своё числовое выражение,допустим, нота Си - Public Const G1 As Single=391.995
Так,в своём приложении хотелось присвоить символу "а" значение ноты Си,символу
"б"-ноты До,символу "в"-ноты Ре и т.д.
Сам вопрос можно сформулировать,тогда,проще:Какие методы можно применить для
идентификации нот по отношению к символам текста?

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

Добавить свой ответ в эту тему · В теме есть еще 7 ответов. Смотреть все ответы.
Бд @Dr. Crash 28.01.2014 15:14
Как можно было бы создать локальную базу данных на ПК и добавть её в просто приложение windows и делать к ней запросы?

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

Ответ #1 @Алексей Немиро 28.01.2014 18:18
Как и на сервере, через SQL Server Management Studio.

Подключиться к локальному экземпляру.
Адрес, либо ИМЯ-ПК\ИМЯЭКЗЕМПЛЯРА, либо (local), либо localhost, либо 127.0.0.1.
Проверка подлинности Windows.



Если SQL Server Management Studio установлен правильно, то проблем возникнуть не должно.

Ну а дальше все просто.

Для программного соединения с базой, можно использовать локальную строку соединения:
Data Source=ИМЯ-ПК\ИМЯЭКЗЕМПЛЯРА;Initial Catalog=ИМЯБАЗЫ;Trusted_Connection=True;
Только ИМЯ-ПК\ИМЯЭКЗЕМПЛЯРА и ИМЯБАЗЫ нужно свои указать.

SQL Server для приложений Windows редко используется, слишком громоздкий и сложный в установке. Потенциальным пользователям программы придется устанавливать SQL Server, чтобы все работало.

Есть SQL Server Compact Edition, он проще (не в плане того, что с ним просто работать, а меньше ресурсов потребляет, проще в развертывании).

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

Как посчитать количество заполненных ячеек в определённом столбце?

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

Ответ #1 @Алексей Немиро 27.01.2014 10:21
Циклом. Главное определиться, что считается пустотой.
      int columnIndex = 0; // номер колонки (начиная с нуля), которую будем проверять
      int totalEmpty = 0;
      for (int i = 0; i <= dataGridView1.Rows.Count - 1; i++)
      {
        if (dataGridView1.Rows[i].Cells[columnIndex].Value == null)
        { // считаем, что данных в ячейке нет
          totalEmpty++;
        }
      }

      MessageBox.Show(String.Format("Всего строка:\t\t\t{0}\r\nВсего колонок:\t\t\t{1}\r\nВ колонке #{2} пустых записей:\t\t{3}", dataGridView1.Rows.Count, dataGridView1.Columns.Count, columnIndex + 1, totalEmpty));

В данном примере пустотой является значение NULL.

Еще, в дополнение, можно проверять по пустым строкам: String.IsNullOrEmpty(dataGridView1.Rows[i].Cells[columnIndex].Value.ToString())
if (dataGridView1.Rows[i].Cells[columnIndex].Value == null || String.IsNullOrEmpty(dataGridView1.Rows[i].Cells[columnIndex].Value.ToString()))
{
  totalEmpty++;
}

PS: На всякий сучай, dataGridView1.Rows.Count минус totalEmpty равно количество не пустых ячеек в колонке.

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

Ответ #2 @Chernihaa 27.01.2014 13:04
Спасибо за ответ очень помогло!

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

Добавить свой ответ в эту тему
Всем привет! Давненько сюда не заходил, но вот появилась проблемка ;)

Начал больше времени уделять проектированию структуры проекта и ООП. Столкнулся с проблемой

Есть базовый класс HttpHeaders, у него есть некое свойство Host. Так же есть производный класс от HttpHeaders под названием HttpCookies. И соответственно все свойства базового класса наследуются и добавляются в производный.

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

И все это на C# как вы уже поняли из заголовка. Заранее спасибо и извините за столь глупый вопрос, ибо перерыв MSDN решение своего вопроса не нашел

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

Ответ #1 @Алексей Немиро 26.01.2014 19:50
internal - доступ в рамках одной и той же сборки.
protected - доступ в рамках класса (вероятно подойдет, можно с internal комбинировать).

И вот таблица.

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

Ответ #2 @[i]Pro 26.01.2014 23:32
Перекомбинировал уже как только можно, не выходит то что именно я хочу. Ну вот к примеру отрывок кода

// Из класса HttpHeader

...

private string _method;

protected string Method
{
  get{
    return _method;
  }
}

//Далее куча методов

...

Класс HttpCookies
    public class HttpCookies : HttpHeaders 
    {
        public HttpCookies()
        {
                        
        }
    }


В классе Program.cs

static void Main(){
  var headers = new HttpHeaders();
  headers. // <- Свойство Method вообще не доступно
   
  //Если св-во Method сделать публичным, то оно перекачует в HttpCookies, а оно там не нужно 

  var cookies = new HttpCookies();
  //Должны унаследоваться лишь только методы от HttpHeaders, без свойств
}

Фишка в том, что все свойства которые я определил в HttpHeaders должны быть доступны при обращении по ссылке к базовому классу.
А у унаследованного HttpCookies должны лишь остаться одни методы от HttpHeaders.

Таблицу ту видел, перепробовал много вариантов, не нашел нужного мне. Такое вообще реально сделать? :D

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

Ответ #3 @Алексей Немиро 27.01.2014 00:21
Странная задача :) В идеале, базовый класс должен быть базовым и нужно запрещать использовать его как самостоятельный (abstract).

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

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


Protected-свойства и методы, в данном случае, будут доступны только в HttpCookies, не считая базового класса.

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

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

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

Вакансии в IT

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

Россия, Чебоксары | Работа в офисе | 25 000,00 KBP

Технолог-разработчик

Россия, Казань | Работа в офисе | 63 600,00 KBP

Программист

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

Junior php-developer

Россия, Новосибирск | Работа в офисе | 25 000,00 KBP

Программист (ERP Axapta)

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

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

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

Технолог-разработчик по хлебобулочным изделиям (национальные татарские блюда)

Россия, Самара | Работа в офисе

Программист 1С

Россия, Ростов-на-Дону | Работа в офисе

Специалист по поисковой оптимизации сайтов (SEO)

Россия, Екатеринбург | Работа в офисе | 50 000,00 KBP

Программист 1С

Россия, Иркутск | Работа в офисе | 30 000,00 KBP

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

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

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

Гарвардский университет создал нанопроцессор

Инженеры и ученые из Гарвардского университета и компании MITRE Corporation создали первый в мире программируемый нанопроцессор, способный выполнять последовательности простых арифметических или логических действий. Исследователи назвали спроектированный процессор «наноэлектронной машиной с конечным числом состояний».

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

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

«Яндекс» оградит пользователей от сайтов с «шокирующей» рекламой

Сайты с «шокирующей» рекламой будут отображаться в поисковой выдаче «Яндекса» ниже ссылок на благонадежные ресурсы. К «шокирующей» рекламе внедряемый поисковиком алгоритм будет, в частности, относить тизеры с фотографиями болезней, снимки частей тела людей с избыточным весом, а также эротические баннеры.

29.01.2014 10:47 · Категория: Безопасность · Источник: Lenta.ru

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

IT-компаниям позволили раскрывать данные о запросах спецслужб

Суд по контролю за внешней разведкой США разрешил крупным IT-компаниям обнародовать информацию о правительственных запросах. Компаниям позволено публиковать приблизительные данные о количестве запросов со стороны спецслужб, а также о количестве аккаунтов, по которым правительство запрашивало информацию.

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


В избранное