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

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



Выпуск # 306


http://www.kbyte.ru/

 

Новый выпуск!

Здравствуйте дамы и господа!
Представляю очередной выпуск рассылки научно-информационного портала Kbyte.Ru. Надеюсь он Вам понравится. Если у Вас есть какие либо вопросы или предложения по рассылке, пишите нам – admin@kbyte.ru!

 

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

Система ЭКСПЕРТ

    Вопрос #000937: DLOOKUP??

    Вопрос #000935: VB работа с веб-камерой

    Вопрос #000929: MsgBox с двумя кнопками

    Вопрос #000916: Вопрос_с_работой_C#_и_Sql_Server_2005

    Вопрос #000891: Как прочитать текстовые ресурсы ASP.NET 2.0 из ...

Последнее на форумах

    Помогите приобрести Visual Basic NET 2003 RUS

    Правильно построить файл базы XML

    Поиск части строки в элементах массива

    задача о простых числах

    Помогите построить логику, как лучше реализовать

Последние статьи

    Нестандартная форма

    Как узнать размер базы данных MySQL через php

    Взаимодействие с другими сайтами через HTTP (HttpWebRequest и HttpWebResponse)

    Работа с SQL – Запросы

    Использование XML.Serialization

Интересные коды и решения

Юмор на Kbyte.Ru

 

Система ЭКСПЕРТ

 

Система «Эксперт» - уникальная система, которая поможет решить, если не все, то многие Ваши проблемы с программированием и разработкой! Если у Вас есть какой-либо вопрос по программированию или разработке, то Вы всегда можете задать его нашим Экспертам! При этом каких-либо особых действий от Вас не потребуется! Просто отправьте Ваш вопрос на адрес mailto:expert@kbyte.ru, в теме письма укажите тему вопроса, в тексте – сам вопрос, и все! Эксперты дадут Вам ответ в течение 12-24 часов, на тот адрес, с которого Вы отправите вопрос. Все проще простого! Никакой регистрации и заполнение бесконечных форм, просто спросите и получите ответ ;-)


Вопрос #000937: DLOOKUP??

Автор вопроса: Алексей // 05.05.2008 / 16:37

Почему те поля формы, которые имеют в ControlSource функцию Dlookup не записывают значение полей в конечную таблицу?

--------------------------------------
Категория: --- MS Access

Отвечает: Алексей Немиро // 06.05.2008 / 05:24

Здравствуйте, Алексей.

Из справки MS Access: Функция Dlookup
При использовании этой функции не учитываются
несохраненные изменения записей подмножества. Если функция
DLookup должна использовать измененные значения, необходимо сначала сохранить
изменения с помощью команды Сохранить запись в меню
Записи, с помощью перемещения фокуса на другую запись или
метода Update.


--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #000935: VB работа с веб-камерой

Автор вопроса: Анна // 05.05.2008 / 02:35

Язык: Visual Basic 2008 Express Edition.
Подскажите, пожалуйста, как из приложения (Windows Form Application) получить доступ к вебкамере, а именно получить снимок в виде bitmap (отобразить его на форме или же сохранить как bmp-файл).
Заранее очень благодарна!
P.S. Просматривая архив вопросов я уже нашла некоторые решения возникавших у меня проблем - Спасибо огромное!

.....

Отвечает: Алексей Немиро // 05.05.2008 / 09:33

Здравствуйте, Анна.

Попробуйте воспользоваться этим классом

--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #000929: MsgBox с двумя кнопками

Автор вопроса: Алекс // 01.05.2008 / 23:53

Есть поле со списком на форме, необходимо при выборе определенной позиции из списка вывести MsgBox и две кнопки на нем, при нажатии на которую, в другой TextBox всавлялся бы выбранный вариант ответа
Подскажите, как можно это сделать или в каком направлении копать??

--------------------------------------
Категория: --- MS Access

Отвечает: Алексей Немиро // 02.05.2008 / 04:09

Здравствуйте, Алекс.

001:
002:
003:
If MsgBox("Вставить?", vbQuestion Or vbYesNo) = vbYes Then
 '...
End If


--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #000916: Вопрос_с_работой_C#_и_Sql_Server_2005

Автор вопроса: Дмитрий Корнев // 28.04.2008 / 07:50

У меня есть автоматом созданный ДатаСэт (взятый из SQL)... при нажатии кнопки данные из текст-боксов должны записываться в поля... вопрос в том, что у меня не получается сделать цикл, чтобы в поле с ID автоматически вносились значения при создании новых строк...

private void button1_Click(object sender, EventArgs e)
{

// Создаём переменную для хранения значения типа Int32
Int32 id1 = 0;
Int32.TryParse(textBox1.Text, out id1);

// Создаём объект DataAdapter для таблицы Т1 - см. файлы bazaDataSet.xsd и bazaDataSet.Designer.cs
T1TableAdapter t1Adapt = new T1TableAdapter();

// Вызываем метод, который сразу-же пытается выполнить
//подключение к БД, вставку записи в таблицу и отключение от БД

try
{
t1Adapt.Insert(id1, textBox2.Text, textBox3.Text);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message,"Ошибка",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}



Я вставил код, где ID берётся из текстбокса... А мне нада, чтобы ID сам автоматически создавался при добавлении новой строки...

Если поможете, буду Вам очень благодарен...

Отвечает: Алексей Немиро // 28.04.2008 / 07:56

Здравствуйте, Дмитрий.

В базе поле с ID должно быть Primary Key и Identity, тогда SQL Server идентификатор будет ставить автоматом.

Типизированные DataSet я бы не рекомендовал вообще использовать, хотя на этот счет существует много мнений :)


--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 

Вопрос #000891: Как прочитать текстовые ресурсы ASP.NET 2.0 из ...

Автор вопроса: Victor Papp // 22.04.2008 / 18:01

Вопрос.

У меня сайт asp.net 2.0 и текстовые ресурсы храню в папке
App_LocalResources в формате .resx

Мне нужно из одного из роликов Flash CS3 исползуя Actionscript 3.0
прочитать значение текстовых ресурсов.
Т.е. мне бы хотелось иметь в Flash CS3 что-то на подобии
GetLocalResourceObject(string key), которая вернет мне значение
текстового ресурса из файла "somefile.aspx.resx" или
"somefile.aspx.ru-RU.resx" в зависимости от текущего "culture"

Заранее благодарю,

Victor Papp
ICQ# 431-486-339
Tel/fax: +38 (0312) 66-52-55
Cellular: +38 (050) 5-141-142

Отвечает: Алексей Немиро // 23.04.2008 / 04:14

Здравствуйте, Victor Papp.

Файлы ресурсов .NET (.resx) - это обычные XML-документы, думаю, Вы
можете их прочитать стандартными средствами AS для работы с XML, примерно:

001:
002:
003:
004:
005:
006:
007:
var myXml = new XML();
System.useCodepage = true;
myXml.ignoreWhite = true;
myXml.onLoad = function (success)
{
 //.
}





--
С наилучшими пожеланиями,
Немиро Алексей http://aleksey.nemiro.ru/

 


Чтобы задать Ваш вопрос, отправьте его на адрес expert@kbyte.ru

Раздел Эксперт на сайте Kbyte.Ru

Наверх

 

 

Последнее на форумах

Помогите приобрести Visual Basic NET 2003 RUS | Автор: Serg62
Добавлено: 07.05.2008 / 22:28 | ответов: 0 | просмотров: 16

Уважаемые форумчане помогите начинающему приобрести диск со средой разработки Visual Basic NET 2003 RUS (обязательно русская версия). По получении диска по почте гарантирую оплату. Пожалуйста только не дорого! Сам проживаю в Саратовской области в небольшом провинциальном городке и с такими вещами у нас туго. Заказать через Microsoft для меня и моей семьи очень накладно(слишком дорого). Да если надо взамен могу предложить DVD-диск: Visual Studio.net 2003 Enterprise Architect, Intel C++ Compiller 8.0, DirectX 9.0 SDK, DDK (все на английском). Можно ответить прямо на e-mail: puga62@mail.ru. C уважением Сергей.

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Правильно построить файл базы XML | Автор: Arti
Добавлено: 06.05.2008 / 10:08 | ответов: 11 | просмотров: 186

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

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: EROS
Добавлено:06.05.2008 / 11:44
Первое, что я бы сделал - это отказался от Xml. Безусловно, в нем можно хранить описанные Вами данные, но именно хранить и не более того. Xml изначально разрабатывался в качестве универсального формата для передачи данных между приложениями. Надеюсь, вы понимаете все минусы своего выбора отказавшись от использования обычной БД? Ведь все то, что делает ядро БД вам придется писать самому.. писать всю логику,связи, контроль целостности данных и т.д. Каким образом вы планируете организовать там поиск? Будете прыгать по нодам и считывать данные? Дисковые операции сами по себе медленные а тут еще и Xml. А для формирования отчета вам надо будет перекопать весь файл и выбрать только необходимые записи, и что тут вы будете делать - использовать XmlReader или все эти данные держать в памяти и преобразовывать их в объекты для удобства работы??? Хорошо если записей немного, но учитывая тот факт что туда ежедневно будут добавляться записи, то через очень короткое время этот файл достигнет гигантских размеров, что замедлит все операции по работе с ним. Ну не предназначен он для таких целей! И при таком подходе о расширении возможностей программы можно будет вообще забыть.. имхо xml будет вашим слабым местом. Так что вот вам мой совет: Прежде чем взяться за написание реализации Xml в качестве БД хорошенько подумайте! ... трижды... Если ничего не изменится, то подумайте еще раз..

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Arti
Добавлено:06.05.2008 / 12:40
То что вы говорите без сомнения все верно, БД круче, но это уже БД которая тоже чего-то будет стоить, а объем данных небольшой 20 наименований, врятли файл вырастит до больших размеров, к томуже можно год разделить на кварталы и каждый квартал писать в отдельный файл. Пока додумался до такой структуры файла XML
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
<Product>
  <Name>Нефть бочковая отработанная</Name>
  <attribute KOD="1002" Price="152,00" Ostatok="50"/>
  <history date="10.04.2008" spisano="2"/>
  <history date="11.04.2008" spisano="5"/>
  <history date="12.04.2008" spisano="3"/>
и т.д.
 </Product>
далее блоки других продуктов

Colorized by: Eros.CodeSyntaxColor Engine

Планирую что тег history добавляется товару при каждом его списании (дата, количество, + если еще чего-то понадобиться например ID операции(расход это или приход)), остается только всю эту обработку воплотить в коде VB.Net как искать продукт за определенный период и количество списанного за этот период, думаю что должно быть не трудно, рассмотрю все ваши предложения :) .

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Алексей
Добавлено:06.05.2008 / 13:17
Если без бд, то, как я уже говорил, лучше использовать xml-сериализацию:
Products.vb
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
Imports System.Xml.Serialization

<Serializable()> _
Public Class Products

 Private _Items As New List(Of Product)

 Public Property Items() As List(Of Product)
  Get
   Return _Items
  End Get
  Set(ByVal value As List(Of Product))
   _Items = value
  End Set
 End Property

End Class

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

Product.vb
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
049:
050:
051:
052:
053:
054:
055:
056:
057:
058:
059:
060:
Imports System.Xml.Serialization

<Serializable()> _
Public Class Product

 Private _History As New List(Of HistoryItem)
 Private _Name As String = ""
 Private _Description As String = ""
 Private _Price As Double = 0
 Private _Balance As Integer = 0

 Public Property History() As List(Of HistoryItem)
  Get
   Return _History
  End Get
  Set(ByVal value As List(Of HistoryItem))
   _History = value
  End Set
 End Property

 Public Property Name() As String
  Get
   Return _Name
  End Get
  Set(ByVal value As String)
   _Name = value
  End Set
 End Property

 Public Property Description() As String
  Get
   Return _Description
  End Get
  Set(ByVal value As String)
   _Description = value
  End Set
 End Property

 Public Property Price() As Double
  Get
   Return _Price
  End Get
  Set(ByVal value As Double)
   _Price = value
  End Set
 End Property

 Public Property Balance() As Integer
  Get
   Return _Balance
  End Get
  Set(ByVal value As Integer)
   _Balance = value
  End Set
 End Property

End Class

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

HistoryItem.vb
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
Imports System.Xml.Serialization

<Serializable()> _
Public Class HistoryItem

 'русские буквы и слова, естественно, использовать не нужно :)
 Public Enum ActionsList
  Списано
  Поломано
  СъеденоКрысами
  Украдено
  Продано
  Возвращено
  СожженоНочью31ФевраляВРитуальномЖертвоприношении
  Нет
 End Enum

 Private _Date As Date = Now
 Private _Action As ActionsList = ActionsList.Нет

 Public Property [Date]() As Date
  Get
   Return _Date
  End Get
  Set(ByVal value As Date)
   _Date = value
  End Set
 End Property

 Public Property Action() As ActionsList
  Get
   Return _Action
  End Get
  Set(ByVal value As ActionsList)
   _Action = value
  End Set
 End Property

End Class

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

Создаем файл (сериализация):
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045:
046:
047:
048:
Dim myProducts As New Products()

'создаем перый продукт
Dim NewProduct As New Product()
NewProduct.Balance = 10
NewProduct.Description = "Знаменитый левый носок из шерсти пьяного попугая найденный в лесах Антарктики в начале XIX века после нашей эры."
NewProduct.Name = "Левый носок из шерсти пьяного попугая"
NewProduct.Price = 100.23

'добавляем в него историю
'одна история
Dim NewHistory As New HistoryItem()
NewHistory.Action = HistoryItem.ActionsList.СъеденоКрысами
NewHistory.Date = Now.AddDays(-100)
NewProduct.History.Add(NewHistory)
'вторая история
NewHistory = New HistoryItem()
NewHistory.Action = HistoryItem.ActionsList.Списано
NewHistory.Date = Now.AddDays(-50)
NewProduct.History.Add(NewHistory)
'третья история
NewHistory = New HistoryItem()
NewHistory.Action = HistoryItem.ActionsList.СожженоНочью31ФевраляВРитуальномЖертвоприношении
NewHistory.Date = Now
NewProduct.History.Add(NewHistory)

'пихаем продукт к списку
myProducts.Items.Add(NewProduct)

'создаем второй продукт
NewProduct = New Product()
NewProduct.Balance = 1
NewProduct.Description = "Самый мощный дивайс наших времен, его вес состовляет 15 т., занимаемая площадь 32 кв.м., частота процессора 0.250 КГц, объем жесткого диска 512 Кб."
NewProduct.Name = "Супер Компьютер"
NewProduct.Price = 100000000
'без истории, просто пихаем
myProducts.Items.Add(NewProduct)

'можно засунуть еще сколько угодно товаров

'сохраняем в файл
Dim mySerializer As New XmlSerializer(GetType(Products))
Dim myWriter As New IO.StreamWriter("06-05-2008.xml")
mySerializer.Serialize(myWriter, myProducts)
myWriter.Close()

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

получаем:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018:
019:
020:
021:
022:
023:
024:
025:
026:
027:
028:
029:
030:
031:
032:
<?xml version="1.0" encoding="utf-8" ?>
- <Products xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <Items>
- <Product>
- <History>
- <HistoryItem>
  <Date>2008-01-27T20:04:55.53125+10:00</Date>
  <Action>СъеденоКрысами</Action>
  </HistoryItem>
- <HistoryItem>
  <Date>2008-03-17T20:04:55.53125+10:00</Date>
  <Action>Списано</Action>
  </HistoryItem>
- <HistoryItem>
  <Date>2008-05-06T20:04:55.53125+11:00</Date>
  <Action>СожженоНочью31ФевраляВРитуальномЖертвоприношении</Action>
  </HistoryItem>
  </History>
  <Name>Левый носок из шерсти пьяного попугая</Name>
  <Description>Знаменитый левый носок из шерсти пьяного попугая найденный в лесах Антарктики в начале XIX века после нашей эры.</Description>
  <Price>100.23</Price>
  <Balance>10</Balance>
  </Product>
- <Product>
  <History />
  <Name>Супер Компьютер</Name>
  <Description>Самый мощный дивайс наших времен, его вес состовляет 15 т., занимаемая площадь 32 кв.м., частота процессора 0.250 КГц, объем жесткого диска 512 Кб.</Description>
  <Price>100000000</Price>
  <Balance>1</Balance>
  </Product>
  </Items>
  </Products>

читаем файл (десиарилизация):
001:
002:
003:
004:
005:
006:
007:
008:
Dim myProducts As New Products()
Dim mySerializer As New XmlSerializer(GetType(Products))
Dim myReader As New IO.StreamReader("06-05-2008.xml")
myProducts = mySerializer.Deserialize(myReader)
myReader.Close()

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

получаем:
001:
002:
003:
004:
005:
006:
007:
008:
009:
For Each p As Product In myProducts.Items
 MsgBox(myProducts.Name & vbcrlf & myProducts.Description & vbcrlf & myProducts.Price)
 For Each h As HistoryItem In p.History
  'MsgBox(h.Date.ToString() & vbcrlf & h.Action.ToString()) 'можно убрать комент
 Next
Next

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

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

--
ps: полагаю, в ближайшем будущем мы все равно услышим вопросы по работе с бд :-)

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: EROS
Добавлено:06.05.2008 / 13:24
Нее.. это не правильный подход... мухи отдельно должны быть, а котлеты отдельно. имхо надо делать что то подобное:

<products>
<product id="1002" name="Нефть бочковая отработанная" price="152.00" total="50">
<operations>
<operation name="add" date="12.04.2008">15</operation>
<operation name="remove" date="11.05.2008">1</operation>
<operation name="remove" date="15.05.2008">4</operation>
</operations>
</product>
.... далее блоки других продуктов
</products>

+ я бы еще рекомендовал ввести таке понятия как группа товаров (если это необходимо)
При такой(или подобной) организации xml можно все это оформить в виде класов с определенной структурой и чтобы не заморачиваться на xml использовать XmlAttribute и сериализацию. А учитывая тот факт, что записей будет немного, то все это дело можно держать в памяти и работать уже не с xml а с созданными объектами. Другими словами работа будет строиться следующим образом:
1. считали xml (при старте программы 1 раз)
2. инициализировали свои коллекции объекты
3. работает с объектами сколь угодно долго.. делаете проводки и т.д.
4. перед закрытием программы все объекты сохраняются на HDD

Вот собственно и все..

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: EROS
Добавлено:06.05.2008 / 13:31
полагаю, в ближайшем будущем мы все равно услышим вопросы по работе с бд :-)


+1

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 6 | Автор: Arti
Добавлено:06.05.2008 / 13:52
Огромное спасибо за помощь, сегодня ночку посижу и отпишусь что у меня получилось.

P.S. Глянул как хранит свои логи ТрафикИнспектор, у него на кажды день по типизированному текстовому файлу(логин, сайты, объем трафика, ещё какая-то инфа) объемом от 2-8мб и нечего нормально отчет за месяц формирует, тридцать файлов в среднем 5мб секунд 10-20, у меня же наврядли за год файл вырастит до 5 мб, но поживем увидим.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 7 | Автор: 5acred Phoenix
Добавлено:06.05.2008 / 14:27
Ну..ещё как вариант можнго использовать sqlite. Думаю, под .net переходники есть

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 8 | Автор: Arti
Добавлено:06.05.2008 / 21:06
Наткнулся на одну загадку, не могу понять в чем дело Например имеется сей XML
001:
002:
003:
004:
005:
006:
007:
008:
009:
<?xml version="1.0" encoding="utf-8"?>
 <Product>
  <KOD>1001</KOD>
  <Name>Кетчуп безалкогольный</Name>
  <Description>Состав: всякая гадость</Description>
  <Price>56,01</Price>
 </Product>

Colorized by: Eros.CodeSyntaxColor Engine

Скажем необходимо прочесть что у нас там между <Name></Name>
Делаю так
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' Загружаем документ XML в память
    Dim XMLD As New XmlDocument
    XMLD.Load(".\base.xml")

    ' Рвемся к нодам
    Dim XMLDNode As XmlNode
    XMLDNode = XMLD.DocumentElement
' Получаем имя итема
MsgBox(XMLDNode.ChildNodes(1).Name) ' => "Name" все верно

' Пытаемся прочесть содержимое    
MsgBox(XMLDNode.ChildNodes(0).ChildNodes(1).Value) ' => ' Ничего не выдает, А НАДО!!

  End Sub

Colorized by: Eros.CodeSyntaxColor Engine

Не могу понять как в таком случае получить то что между тегами <Name></Name>, если по идее value должен выдавать содержимое итема а он не выдает :( , я конечно понимаю есть и другое решение но что в данном случае происходит, как заставить value заработать?

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 9 | Автор: Алексей
Добавлено:07.05.2008 / 04:10
В ответе #3 нормальный рабочий пример, приготовлен, полит кетчупом, разжеван, пережеван и в рот положен :)
XmlDocument и Node тут не нужны :)

' Пытаемся прочесть содержимое
MsgBox(XMLDNode.ChildNodes(0).ChildNodes(1).Value) ' => ' Ничего не выдает, А НАДО!!

InnerText вместо Value:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
For Each n As XmlNode In XMLD.ChildNodes
   MsgBox(n.Name)
   If Not String.IsNullOrEmpty(n.InnerText) Then MsgBox(n.InnerText)
   If n.Name = "Product" Then
    For Each n2 As XmlNode In n.ChildNodes
     MsgBox(n2.Name)
     If Not String.IsNullOrEmpty(n2.InnerText) Then MsgBox(n2.InnerText)
    Next
   End If
  Next

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 10 | Автор: Arti
Добавлено:07.05.2008 / 07:57
Тут дело в том что у меня не хватает опыта подробно разобраться в примерах приведенных вами, естественно что copy past в проект я сделать могу, но хочется понять как это все работает, для меня это очень интересно и важно, хочу научится чему-нибудь, вот и пытаюсь проводить всякие эксперименты, так что извиняюсь если уже начинаю насаждать, обещаю больше этого не делать :)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 11 | Автор: Алексей
Добавлено:07.05.2008 / 08:21
copy past можно не делать, можно самому все написать, суть примера в
том, что в нем каждый элемент данных является объектом, в данном
случае объекта два: Товар (класс Product), Операция (класс HistoryItem).
Класс Products содержит коллекцию продуктов (Items As New List(Of Product)), именно он является основным.
Каждый продукт (Product) содержит коллекцию операций (History As New List(Of HistoryItem)),
ну и другие свойства продукта, свойств может быть
сколько угодно, например название продукта:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
Public Property Name() As String
 Get
  Return _Name
 End Get
 Set(ByVal value As String)
  _Name = value
 End Set
End Property

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


можно самостоятельно понадобавлять любые свойства по такому же принципу,
все они будут сериализоваться, также можно добавить новые атрибуты и
свойства в любой другой класс, они тоже будут сериализоваться.
Можно сделать, например, класс DataBase, который будет содержать
коллекцию продуктов (Products As New List(Of Product)), а также
название базы (Name As String), дату последнего изменения
(DateLastUpdate As Date), имя пользователя :) в общем все что угодно,
и уже потом экземпляр этого класса можно сериализовать:
Dim mySerializer As New XmlSerializer(GetType(Имя (название) класса, например, DataBase))
Dim myWriter As New IO.StreamWriter(Имя (путь) файла)
mySerializer.Serialize(myWriter, Экземпляр класса, который нужно сохранить, например, экземпляр класса DataBase. Экземпляр - Dim myDataBase As New DataBase())
myWriter.Close()


а с XML-ом тут вообще работать не надо, поскольку кроме огромного количества кода, ничего хорошего из этого не выйдет :)

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Поиск части строки в элементах массива | Автор: Arti
Добавлено: 05.05.2008 / 11:21 | ответов: 5 | просмотров: 117

Дан массив строк, как найти в нем индекс элемента который содержит часть строки из поиска? Т.е еслиб речь шла о всей строке то можно было бы сделать так
001:
002:
003:
Dim strindex As Integer = Array.IndexOf(strMassiv, "вся строка")

Colorized by: Eros.CodeSyntaxColor Engine
результатом будет индекс элемента в массиве strMassiv который содержит строку "вся строка", а как быть если искать надо только по части строки?

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Алексей
Добавлено:05.05.2008 / 11:37
Примерно так:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
Dim strMassiv() As String = {"вся строка", "всея", "строка"}
Console.WriteLine(Array.Find(strMassiv, AddressOf SearchInArray))

'--------------------------------------------------------------------
Public Shared Function SearchInArray(ByVal value As String) As Boolean
 Return value.StartsWith("вся", StringComparison.InvariantCultureIgnoreCase)
End Function

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Arti
Добавлено:05.05.2008 / 12:27
Спасибо, но как-то у вас все сложно или я чайник, сделал пока так.
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim strMassiv() As String = {"вся строка", "всея", "строка"}    
For i As Integer = 0 To UBound(Lines)
      If strMassiv(i).Contains("все") Then
        MsgBox("Индекс элемента массива который содержит подстроку все" & vbTab & i)
        Exit For
      End If
    Next
  End Sub

Colorized by: Eros.CodeSyntaxColor Engine

Метод Contains рулит.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Arti
Добавлено:05.05.2008 / 12:32
Ошибочка
001:
002:
003:
For i As Integer = 0 To UBound(Lines)

Colorized by: Eros.CodeSyntaxColor Engine
надо
001:
002:
003:
For i As Integer = 0 To UBound(strMassiv)

Colorized by: Eros.CodeSyntaxColor Engine

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Алексей
Добавлено:05.05.2008 / 12:40
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 Dim strMassiv() As String = {"вся строка", "всея", "строка"}
 MsgBox("Индекс элемента массива который содержит подстроку 'все'" & vbTab & Array.IndexOf(strMassiv, Array.Find(strMassiv, AddressOf SearchInArray)))
End Sub

Public Shared Function SearchInArray(ByVal value As String) As Boolean
Return value.IndexOf("все") >= 0
End Function

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


надо
001:
002:
003:
004:
For i As Integer = 0 To UBound(strMassiv)

_______________________
Colorized by: Eros.CodeSyntaxColor Engine

лучше
001:
002:
003:
004:
For i As Integer = 0 To strMassiv.Length - 1

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: Arti
Добавлено:05.05.2008 / 12:43
Принято.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


задача о простых числах | Автор: Dragon-zla
Добавлено: 03.05.2008 / 16:01 | ответов: 2 | просмотров: 84

Помогите пожалуйста составить алгоритм для решения задачи.Сама задача такова:"Нужно любое число представить в виде произведения простых чисел".Сам сделал алгоритм, но он ужасно длинный и как мне кажется глючный.Может кто знает,что там нужно написать?

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Edlin
Добавлено:04.05.2008 / 08:51
На мой взгляд это простой рекурсивный алгоритм. Пусть исходное число - N.

1) Находишь наименьшее число D, на которое делится N. D будет простым, т.к. в противном случае существовало бы меньшее число, на которое делилось бы и N, и D. Найти D можно обычным циклом, пробуя делители от 2 до N/2.

2) Сохраняешь D в список найденных простых делителей, а N заменяешь на N/D. Если полученное число равно 1, то ты нашел полный список простых делителей. Если оно не равно 1, то продолжаешь с п.1.

Я все сказал. Честь имею.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Dragon-zla
Добавлено:04.05.2008 / 11:11
Большое тебе спасибо, как раз короткий и простой, а у меня какая-то лабуда на 8 пунктов получалась.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Помогите построить логику, как лучше реализовать | Автор: Arti
Добавлено: 03.05.2008 / 09:18 | ответов: 5 | просмотров: 117

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

Ответить на это сообщение | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 1 | Автор: Алексей
Добавлено:03.05.2008 / 09:45
xml?

_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 2 | Автор: Arti
Добавлено:03.05.2008 / 09:58
Не умею я xml, объем данных небольшой, неужели никак низя через обычный текст, просто я не догоняю как записывать дату чтобы потом делать выборку, думаю в каждую строчку писать надо чтобы потом найти все строки с заданой датой точнее интервалом между двумя датами, потом найти в найденных строках все записи конкретного товара или как, потом сложить количество расхода ...... :( ? P.S. уже бошка болеть начала

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 3 | Автор: Алексей
Добавлено:03.05.2008 / 10:26
Не умею я xml

Работа с XML средствами Visual Basic .NET
Использование XML.Serialization

неужели никак низя через обычный текст

ну тогда можно регулярные выражения использовать, чтоб проще было файл прочитать, например:
данные
001:
002:
003:
03.05.2008 17:11:10,Мышка беспроводная надувная,шт.,10,20$,5,1
03.05.2008 17:11:12,Мышка беспроводная надувная с дыркой для шарика,шт.,5,25$,3,1
03.05.2008 17:12:00,Клавиатура для троих,шт.,1,45$,1,1

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
'шаблон точно рабочий, код не проверял
Dim sData As String = 'данные указанные выше'
Dim myRegEx As New Regex("(?<day>\d{2}).(?<month>\d{2}).(?<year>(\d{4}))\s(?<hour>\d{2}):(?<minute>\d{2}):(?<second>\d{2}),(?<productName>[^\,]*),(?<unit>[^\,]*),(?<count>[^\,]*),(?<price>[^\,]*),(?<outlay>[^\,]*),(?<balance>[^\n]*)")
Dim myMatches As MatchCollection = myRegEx.Matches(sData)
For Each m As Match In myMatches
 'дату тоже можно было бы загнать в одну группу, например: (?<date>[^\,]*)
 Console.WriteLine("Дата: " & m.Groups("day").Value & "." & m.Groups("month").Value & "." & m.Groups("year").Value)
 Console.WriteLine("Товар: " & m.Groups("productName").Value)
 'и т.д. и т.п.
Next

_______________________
Colorized by: Eros.CodeSyntaxColor Engine


_________________
Это сообщение добавлено через Kbyte.Ru Forum Mail Conference (FMC)

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 4 | Автор: Arti
Добавлено:03.05.2008 / 10:37
Попробую воспользоваться вашим советом, о результатах отпишусь.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Ответ # 5 | Автор: Arti
Добавлено:03.05.2008 / 11:36
Приблизительно разобрался с кодом, т.е. как я понял его суть это считать данные из файла в котором в качестве разделителя запятая, с этим в целом проблем нету я использую немножко другой код для чтения типизированного текстового файла, а вот дальше что с этим делать? Создать массивы (даты, названия товара, количества, цены, количество проданного, остаток) загнать в них данные из файла, и как дальше с этим поступать вот основной не понятный для меня вопрос. Например элементы массива даты с date(30) по date(40) содержат диапазон даты за три дня, другие массивы (todar(30) по tovar(40), kolichestvo(30) по kolichestvo(40) и т.д.) содержат различные товары и количество списанного того или иного товара, как вот здесь сделать выборку из массива по конкретному товару, за заданную дату, сколько его было списано т.е. сумму элементов массива spisanokolichestvo() за определенный период значения массива date(), т.е. наверно найти элемент массива date() начало например 10.03.2008 потом идти по индексам массива date() до тех пор пока не встретится элемент со значением 11.04.2008 т.е это за месяц, потом обработать те же индексы у массива товар записать(запомнить) номера индексов в которых упоминается товар по которому надо сделать отчет, затем те же индексы массива tovar() найденные за определенный период и содержащие строку с названием товара по которому ведется выборка запомнить, потом по этим индексам опредлить в каких элементах массивов ostatki() spisanokolichestvo() идет речь о данном товаре. Или как быть вот основной вопрос для меня как работать с этими массивами, потому пожалуйста очень прошу помогите!!!.

Добавить ответ | Посмотреть эту тему на сайте | Форум Kbyte.Ru


Наверх

 

Последние статьи

Нестандартная форма
Автор: Zhenik Ipatov | добавлено: 05.05.2008 / 12:42 | просмотров: 17

Первое что бросается в глаза, когда первый раз используешь программу это конечно же её облик, внешний вид. Есть вероятность что если пользователю не понравится внешний вид окна, то он не будет пользоваться продуктом. Значит нам, не побоюсь этого слова, программистам нужно как можно лучше, удобнее, понятнее, красивее и приветливее сделать лицо программы. Нужно как можно эффектнее преподнести программу. С самого первого появления Windows окна получили прямоугольный стандарт и все User Control’ы

Как узнать размер базы данных MySQL через php
Автор: Николай Рудченко | добавлено: 14.02.2008 / 13:01 | просмотров: 529

В этой небольшой статье вы узнаете, как получить размер вашей базы данных (БД) MySQL используя язык программирования PHP.

Взаимодействие с другими сайтами через HTTP (HttpWebRequest и HttpWebResponse)
Автор: Немиро Алексей | добавлено: 27.07.2007 / 14:01 | просмотров: 4674

В данной статье речь пойдет о том, как можно программно заполнить и отправить Web-форму, а также получить результат с использованием довольно простых классов - HttpWebRequest и HttpWebResponse.

Работа с SQL – Запросы
Автор: Хабибулин А. (aka Bille Gates) | добавлено: 22.07.2007 / 04:43 | просмотров: 7792

В данной статье рассмотрены часто используемые SQL-запросы и приведены примеры их использования.

Использование XML.Serialization
Автор: Немиро Алексей | добавлено: 19.07.2007 / 15:38 | просмотров: 2163

В данном обзоре речь пойдет об использование XML.Serialization в .NET и ее применении на примере сохранения и считывания настроек программы с использованием синтаксиса языка Visual Basic .NET.

 

Статьи на Kbyte.Ru

Наверх

 

Интересные коды и решения

Как обработать не существующий адрес?
Дата добавления: 31.07.2006 / 14:45 | просмотров: 1435 | платформа: ASP .NET (VB)

Как узнать IP-адрес посетителя?
Дата добавления: 01.09.2006 / 12:20 | просмотров: 2257 | платформа: ASP

Как сделать секундомер?
Дата добавления: 16.08.2006 / 23:26 | просмотров: 1922 | платформа: VB

Как показать сообщение?
Дата добавления: 16.08.2006 / 23:31 | просмотров: 1653 | платформа: VB

Как узнать размер рабочей области экрана?
Дата добавления: 23.08.2006 / 19:03 | просмотров: 2046 | платформа: VB .NET

Как получить позицию курсора на экране?
Дата добавления: 16.08.2006 / 19:47 | просмотров: 1343 | платформа: VB

Как разрешить вводить в TextBox только цифры?
Дата добавления: 04.08.2006 / 16:55 | просмотров: 2225 | платформа: ASP .NET (VB)

Запуск программы
Дата добавления: 21.08.2006 / 20:19 | просмотров: 2511 | платформа: VB

Подсчет количества определенных символов в тексте
Дата добавления: 31.07.2006 / 12:30 | просмотров: 1710 | платформа: VB

DataGridView: Как добавить новую строку?
Дата добавления: 02.08.2006 / 09:31 | просмотров: 3543 | платформа: VB .NET

 

Универсальные коды на Kbyte.Ru

Наверх

 

Юмор на Kbyte.Ru

Зима. Замеpзший водоем. Hа лед выходит любитель подледного лова и пpистpаивается бypить лyнкy, как вдpyг откyда-то свеpхy гpомовой голос:
- МУЖИК! ЗДЕСЬ РЫБЫ HЕТ!!!
Мyжик огляделся - кpyгом никого. Плечами пожал, отошел метpов на сто, и опять свеpлить.
- МУЖИК!!! ЗДЕСЬ РЫБЫ HЕТ!!!!!
И опять кpyгом никого. Hy мyжик еще подальше отошел...
- МУЖИК!!!!!! Я ТЕ СКАЗАЛ - HЕТ ЗДЕСЬ РЫБЫ!!!!!!!!!!!!!
Мyжик не выдеpжал и обpатя взоp небy вскpичал:
- Да кто это говоpит?!!!
- КТО,КТО! ДИРЕКТОР КАТКА!!!

 

Рейтинг: 193
Всего голосов: 319
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

- Смотри, какой я себе слуховой аппарат купила. Это самая миниатюрная модель, какая только была в магазине. А действует также хорошо, как и крупные модели!
- Да? И насколько она дороже?
- Ровно половина шестого!

 

Рейтинг: 174
Всего голосов: 296
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Компьютерный магазин. Заходят мужчина и женщина.
Женщина: Нам надо, что бы телефон к компьютеру подключался.
Я: У вас Блютуз или ИрДа?
Женщина: Вы с кем разговариваете?
Я в замешательстве, не знаю что ответить.
Женщина: Нам провод нужен, что бы данные на компьютер можно было передать.
Я: Мини USB?
Женщина: Мы не знаем что это такое.
Я: Сейчас вам покажу.
Достаю кабель, показываю. Они достают телефон, смотрим, разъема для мини USB нет.
Я: Вы в мануале посмотрите у телефона Блютуз или ИрДа есть.
Женщина: Вы с кем разговариваете?
Я: Ну, как с кем, с вами.
Женщина: Что такое мануал?
Я: Руководство пользователя.
Женщина: У нас, его нет.
Я: Зайдите в магазин, где радиотелефоны продаются, спросите, есть ли у этой модели Блютуз или ИрДа.
Покупатели в недоумении уходят.

 

Рейтинг: 1026
Всего голосов: 1516
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Опытный врач-стоматолог приглашает пациентов для опытов.

 

Рейтинг: 161
Всего голосов: 300
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Открыта новая радиостанция для юзеров под названием RT FM. По ней будут транслироваться чтения различных мануалов и ответы на часто задаваемые вопросы.

 

Рейтинг: 323
Всего голосов: 506
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Винды не глючат? Вероятно, вирус!

 

Рейтинг: 342
Всего голосов: 502
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Вовочка спрашивает:
- Папа презервативы рвутся?
- Посмотри в зеркало!

 

Рейтинг: 186
Всего голосов: 317
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

В пустую комнату в общежитии прокрадывается студент, не зажигая свет подходит к окну, вытряхивает из цветочного горшка кактус, убирает часть земли и кладет пирожок, завернутый в полиэтилен. После всего этого он возвращает кактус на место, выравнивает землю и ложится спать. Утром уходит на занятия. Вечером возвращается, бросается к горшку, раскапывает землю, а там... записка: "Не разбрасывай свои вещи на видных местах. Пирожок съели, чтоб он не испортился".

 

Рейтинг: 303
Всего голосов: 486
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

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

 

Рейтинг: 1143
Всего голосов: 1630
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Вчера астрономы "разжаловали" Плутон. Жители бывшей планеты обещают направить жалобу в Страсбургский суд.

 

Рейтинг: 325
Всего голосов: 495
Оцените этот анекдот через E-Mail:
Выберите оценку: 5 | 4 | 3 | 2 | 1

 

Весь юмор на Kbyte.Ru

Наверх


Выпуск подготовил: R-KDR-19826

Редактор: Немиро Алексей

Copyright (c) Nemiro AS, 2005-2007


В избранное