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

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


Выпуск # 681

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


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

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

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

Форумы Kbyte.Ru

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

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

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

Ребят, всем привет!

Такой вопрос возник, делаю сериализацию класса, затем десериализую в новый объект, вопрос, как теперь сравнить их? я так понимаю вот так:

if(oldInstance == DeserializedInstance)
      { 
         flag = true;
      }

не прокатит, объекты ведь по сути разные и указывают на разные области памяти если не ошибаюсь, здесь произойдет сравнение по ссылке, а нужно фактически сравнить поля

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

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

Играю с товарищами в одну онлайн игру, для неё есть один сайт помощник Сам сайт с нужной штукой
Так вот, там есть окна куда вставляется текст такого содержания:
бла бла бла 716|702 12.154
бла бла бла 714|703 12.154
бла бла бла 713|703 12.154
бла бла бла 718|699 12.154
бла бла бла 724|708 12.154
можете попробовать вставит и нажать Extract
Периодически этот сайт не работает, поэтому хочу выдернуть, на чём построена данная функция?
Как мне её выдернуть?
У товарища есть сайт, хотим там это забабахать, но вот как выдернуть не знаем.
Помогите если не трудно.

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

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

В классе А объявлен метод с кодом, который должен заместить код метода Read например в классе FileStream

Что я делаю? Я создаю новый класс, наследуюсь от FileStream, указываю необходимые для работы поля (копирую из класса А), копирую из класса А конструкторы и перекрываю метод Read, в который вставляю код метода из класса А... Но при попытке написать так:

MyClass ds = File.OpenRead("in.xml");

получаю ошибку что невозможно преобразовать FileStream к MyClass

как вообще справится с этим? что я делаю не так?

P.S. класс Ф это просто код, котоырй я должен использовать для своего класса котоырй наследуется от FileStream

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

Ответ #1 @Aleksey Nemiro 22.03.2012 15:15
Возможно дело в неявной типизации:
MyClass
ds = File.OpenRead("in.xml") as MyClass;

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

Ответ #2 @InfoMaster 23.03.2012 00:35
Спасибо Алексей, решил проблему несколько иначе, но все равно спасибо что напомнили об этой операции))

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

Добавить свой ответ в эту тему
В этом году, наверное в последний раз, Kbyte.Ru опять участвует в Дальневосточном Интернет-конкурсе СТЕРХ.

Особо агитировать не буду.
У меня сомнения на счет того, что Kbyte.Ru что-то светит в этом конкурсе, особенно на фоне прошлого года, когда проект в народном голосовании поддержали около 300 человек, но при этом он не вышел даже во второй тур. Хотя по количеству народных голосов был в тройке лидеров. А во второй тур, по правилам конкурса, попадает 10 проектов из каждой номинации с наибольшим количеством голосов. Странная у них математика

До этого, Kbyte.Ru участвовал в СТЕРХ в 2007 (или 2008) году, тогда проект поддержало всего около пятидесяти человек. Народное голосование - это пожалуй слабое место в подобных конкурсах, ибо процесс голосования муторный, нужно вводить свой E-Mail, потом ждать письмо с подтверждением голоса, смотреть чтобы письмо не попало в спам-фильтры и т.д. и т.п. Подобную процедуру по силам пройти только самым преданным пользователям сайта. В прошлом году, к моему удивлению, только за первые сутки голосования, Kbyte.Ru поддержали более ста человек, что не может не радовать


Если есть время, вы можете поддержать Kbyte.Ru. Отдать свой голос в пользу проекта можно по следующей ссылке:
http://www.premiasterh.ru/vote/768/


Всем откликнувшимся спасибо!


PS: Если у вас множество E-Mail, прошу использовать при голосовании только один, т.е. голосовать не более одного раза.

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

DataGridView @rusiko 21.03.2012 00:19
Привет всем. Хочу задать вопрос. У меня проблема с Visual Basic 2010. Создал и на форму перетащил DataGridView и Details. То есть это у меня одна база, но разной формы. То что пишу в Details после сохранения попадает в DataGridView. Но если оставить хоть одно поле Details пустым сразу выдаеться ошибка (The value for column 'ИМЯ' in table 'Table1' is DBNull).Если заполнить "ИМЯ", а оставить к примеру "АДРЕС" пустым опять таки появляеться та же ошика. А в базе есть данные которые я не всегда хочу заполнять.Много чего перепробовал, но никак. Мне подсказали что у меня NULL имеет значение TRUE и что я должен сделать NULL=FALSE, но я не могу найти это значение.

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

Ответ #1 @Aleksey Nemiro 21.03.2012 10:56
Мне подсказали что у меня NULL имеет значение TRUE и что я должен сделать NULL=FALSE, но я не могу найти это значение
Так и есть, только наоборот, в визуальном менеджере баз данных SQL Server у полей есть опция "Разрешить NULL", которая должна иметь значение TRUE, чтобы была возможна запись пустых значений. Искать нужно в базе данных, в параметрах таблицы (среди колонок).

PS: По умолчанию во всех не ключевых полях NULL разрешен.

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

Добавить свой ответ в эту тему
Проблема в том, что:
Через StreamReader я вытаскиваю данные из таблицы Excel и помещаю в DataSet, после чего отбражаю данные таблицы в DataGridView, но вот загвоздка, если в таблице Excel данных не много, то все выводится норм, а вот если записей больше 1000, то выводится Exception : Длина входного массива больше колличества столбцов в таблице. Помогите пожалуйста.

в классе DAL создаем метод

public DataSet GetCSVFileSite(string pathFileName)
{
try
{
if (File.Exists(pathFileName))
{
using (StreamReader siteReader = new StreamReader(pathFileName, Encoding.GetEncoding(1251) ))
{ 
string rowValue;
string[] cellValue;
SiteTD = new DataTable("SiteTable");
ExcelDataSet.Tables.Add(SiteTD);

rowValue = siteReader.ReadLine();
cellValue = rowValue.Split(';');

for (int i = 0; i <= cellValue.Count() - 1; i++)
{

dcHeader = new DataColumn();
ExcelDataSet.Tables["SiteTable"].Columns.Add(dcHeader);
dcHeader.Caption = cellValue;
dcHeader.ColumnName = cellValue;

} 

while ((rowValue = siteReader.ReadLine()) != null)
{

cellValue = rowValue.Split(';'); 
ExcelDataSet.Tables["SiteTable"].Rows.Add(cellValue);

}

siteReader.Close();
}

}
else
{
MessageBox.Show(@"Не существует файла базы c Сайта, подключите файл!!!", "НТС", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

}

catch (Exception e)
{
MessageBox.Show("Процесс соединения или вывода данных завершился неудачей!!!", e.ToString());
}

return ExcelDataSet;
}

Потом в классе самой формы наполняем Дата сет

private void FillExcelDataSet(string pathSite, string pathElastix)
{

ExcelDataSet = dal.GetCSVFileSite(pathSite); 
}

и привязываем данные к DatagridView

private void BindingDataGridView()
{ 
dgv_siteDB.DataSource = ExcelDataSet.Tables["SiteTable"];

} 

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

Ответ #1 @Aleksey Nemiro 20.03.2012 15:23
Судя по тексту ошибки, где-то не хватает колонок.
Возможно ошибка возникает в 31 строке приведенного кода:
ExcelDataSet.Tables["SiteTable"].Rows.Add(cellValue);
нужно проверять, чтобы массив cellValue не был больше числа колонок, которые были сформированы 17-25 строках.

while ((rowValue = siteReader.ReadLine()) != null)
{

cellValue = rowValue.Split(';'); 
if(cellValue.Length <= ExcelDataSet.Tables["SiteTable"].Culumns.Count)
{
  ExcelDataSet.Tables["SiteTable"].Rows.Add(cellValue);
}
else
{
  //массив данных больше числа колонок, 
  //здесь нужно что-то сделать,
  //например, укоротить массив
}

}

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

Ответ #2 @Alex 21.03.2012 10:25
Спасибо тебе огромное за помощь. Ты меня наставил на правильное решение. очень признателен тебе.

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

Добавить свой ответ в эту тему
Арканоид @Boris 17.03.2012 00:46
Здравствуйте у меня курсовая работа по C# должен написать игру арканоид но не могу понять какое нужно условие когда мяч попадает в приграду.Мяч и преграда приставляют из себя примоугольники.
class Catch
  {
    Form1 fr;
    Ball ball;
    Barrier barrier;
    public Catch(Form1 fr,Ball ball,Barrier barrier)
    {
      this.fr = fr;
      this.ball = ball;
      this.barrier = barrier; this.Get();
    }
    public void Get()                      
    {
      for (int i = 0; i < 20; i++)  
      {
        for (int j = 0; j < 5; j++)
        {
          if (ball.Rect.IntersectsWith(barrier.Rect[i, j]))            //standartni metod pokazivayet popal li myach v barrier
          {
            //1.if(попал с низу)
            //2.if(попал с верху)
            //3.if(попал с правой стороны )
            //4.if(попал с левой стороны)
            
          }         
        }
      }
    }

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

Ответ #1 @Aleksey Nemiro 17.03.2012 10:25
Видимо нужно смотреть по i и j.
Как я понимаю, i - это y, а j - x.
Если так, то когда i == 0, значит попал вверх. Если i >= 20 - вниз.
Если j == 0 - слева, j >= 5 - справа.

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

Ответ #2 @Boris 17.03.2012 18:06
Спасибо за отзыв.Нет у меня преграда описана в двухмерным массиве i и j это индексы массива.ball.Rect.x и ball.Rect.y это кординаты верхной левой точки и barrier.rect[i,j].x и barrier.rect[i,j].y соответственно преграды.А кординаты верхней правой стороны мяча ball.Rect.x+w ball.Rect.y и соответственно преграды barrier.rect[i,j].x+w и barrier.rect[i,j].y,и координаты нижней левой стороны ball.rect.x,ball.rect.y+w (w=h),и соответственно преграды barrier.rect[i,j].x и barrier.rect[i,j].y+h.

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

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

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

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

Эти пресловутые кнопки ...

XAML: Интерфейс @Shark1 18.03.2012 23:29
Использование RectangleGeometry и EllipseGeometry как VisualBrush при переопределении стилей элемента управления Button.
См. файл примера

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

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

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

Вакансии в IT

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

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

Инженер-разработчик

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

Инженер-разработчик вычислительных устройств на базе микропроцессоров

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

Разработчик

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

Инженер разработчик печатных плат

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

Программист (C++)

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

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

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

Программист iPhone/Android

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

Программист Delphi/Разработчик ПО

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

Младший программист

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

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

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

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

Производители на будущей неделе стандартизируют формат nano-SIM

На предстоящей неделе европейскому институту ETSI или European Telecommunications Standards Institute предстоит решить, какой из двух конкурирующих стандартов будет выбран в качестве официального формата nano-SIM. Один из форматов, претендующих на nano-SIM, предлагает компания Apple, другой - альянс компаний Nokia, Research in Motion и Motorola Mobility. Использовать nano-SIM предлагается в будущих смартфонах и интернет-планшетах.

Итоговое голосование должно состояться 29 марта, рассказали в компании Giesecke&Devrient, занимающейся производством SIM-карт. Изначально решение должно было быть принято в конце прошлого года, однако по неизвестным причинам вынесение решения было отложено на три месяца. 

Компании, вовлеченные в процесс сертификации, почти не комментируют предстоящее мероприятие. В Apple вообще отказались говорить на данную тему, тогда как в Motorola лишь подтвердили, что работают с RIM и Nokia над стандартом и заявили, что их вариант предлагает "значительные технологические преимущества".

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

Пит Каннигем, аналитик Canalys, говорит, что если один из предлагаемых вариантов будет выбран для сертификации, то соответствующий производитель должен будет в будущем лицензировать его на "четных, обоснованных и недискриминационных" условиях. Если компания откажется это сделать, то решение о стандартизации может иметь обратную силу.

Многие отраслевые эксперты придают сертификации nano-SIM значительное внимание не только ввиду всеобъемлющего распространения мобильных технологий, но и превращения отрасли мобильных технологий в одну из самых "патентно-судебных". Сейчас практически все компании, вовлеченные в процесс сертификации, находятся или находились ранее в состоянии судебного противостояния.

Сам по себе формат nano-SIM в общих чертах представляет собой чип с размерами 12х9 мм что почти на треть меньше micro-SIM и на 60% меньше традиционных SIM-карт. Толщина карты была сокращена примерно на 15%. А это позволит производителям выпускать еще более тонкие и миниатюрные гаджеты.

Благодаря специальному адаптеру Nano-SIM полностью совместима с предыдущими идентификационными модулями, что позволит осуществить плавный переход на Nano-SIM.

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

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

Netgear представила новое поколение стекируемых smart-коммутаторов

Компания Netgear представила новое поколение стекируемых smart-коммутаторов. Новое семейство стекируемых гигабитных Ethernet smart-коммутаторов обеспечивает масштабирование и резервирование без сложных интерфейсов командной строки, необходимости специального обучения инсталляции коммутаторов или приобретения нестандартных кабелей.

Это новое семейство smart-коммутаторов ProSafe состоит из 28-портовой модели (GS728TSB), 52-портовой модели (GS752TSB) и версии каждой из этих двух моделей с поддержкой Power-over-Ethernet (GS728TPSB и GS752TPSB, соответственно). Стекируемые smart-коммутаторы можно развертывать по одному и позднее масштабировать, управляя ими как одним устройством, а в случае сбоя сети - переключать между ними трафик. Все стекируемые гигабитные Ethernet smart-коммутаторы поддерживают IPv6 и статическую маршрутизацию, что обеспечивает возможность их использования в будущем. Все они поддерживают функции улучшения производительности, которые обычно доступны только в более дорогих продуктах, например, динамическое назначение VLAN assignment, Auto Voice и Auto Video, порты fiber uplink и таймеры PoE (в моделях с Power-over-Ethernet).

Cемейство smart-коммутаторов будет доступно в России в мае 2012г. Модель ProSafe GS728TSB будет стоить 29 000 руб.; модель ProSafe GS752TSB – 42 000 руб.; модель ProSafe GS728TPSB – 40 000 руб.; и модель ProSafe GS752TPSB – 62 000 руб.

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

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

Microsoft разработала программу для борьбы с распространением детского порно

Microsoft начала предоставлять правоохранительным органам доступ к новому цифровому инструменту PhotoDNA, при помощи которого последние могут анализировать огромные массивы графических файлов в интернете и отыскивать файлы с детской порнографией и насилием. Анонсированное сегодня программное обеспечение было создано вместе со шведской компанией NetClean, разрабатывающей программные решения для борьбы с распространением детской порнографии в интернете.

PotoDNA работает в автоматическом режиме и помогает находить в сети фотографии насилия над детьми, а затем позволяет полиции отыскивать операторов серверов с порнографией и может передавать данные о детях на фото в полицейские базы данных.

"Наша цель в данном случае заключается в помощи правоохранительным органам в ведении расследований. Возможности людей в поиске и анализе фотографий ограничены, новая же программа многократно усиливает возможности полиции в быстрой идентификации и, иногда, спасении детей от насилия со стороны взрослых", - говорит Билл Хармон, помощник главного юрисконсульта Microsoft Digital Crimes Unit.

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


В избранное