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

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



Выпуск # 271


http://www.kbyte.ru/

 

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

Здравствуйте дамы и господа!
Очередной выпуск рассылки Kbyte.Ru!

 

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

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

    Вопрос #000764: Програмное определение позиции меню в vb6

    Вопрос #000754: HttpWebRequest и HttpWebResponse

    Вопрос #000745: Проблема с компонентом WINSOCK

    Вопрос #000743: C#, forms

    Вопрос #000735: Localization and DataBase

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

    Денвер и пара мелкий вопросов...

    Потоки

    Узнать номер строки

    Тестирование

    Помогите пожалуйста найти ошибку

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

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

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

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

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

    Выбор языка программирования для научных работ (2-я редакция)

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

Юмор на Kbyte.Ru

 

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

 

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


Вопрос #000764: Програмное определение позиции меню в vb6

Автор вопроса: Иван Денишев // 16.02.2008 / 23:24

Здравствуйте уважаемые эксперты!
Говорят, что вы можете ответить на любой вопрос.
Как программно в vb6 узнать, на каком пункте меню находится курсор.
Для примера, возьмём меню "файл".
Caption | Name
Файл | MnuFile
Создать | MnuFileNew
Открыть | MnuFileOpen
Ну, и пожалуй, хватит. И так будет понятно.
Запускаем программу и жмём: либо f10, либо alt.
Затем стрелку вниз.
Меню "Создать", выделится другим цветом.
Так вот, как программно получить, где находится курсор?
Ведь, в vb нету свойства GotFocus у менюшек.
Очень надеюсь на вашу помощь!
---
С уважением: Иван Денишев.

Отвечает: Алексей Немиро // 17.02.2008 / 10:12

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

ВНИМАНИЕ: Данный пример довольно опасный, и может привести к зависанию Visual Basic!

Скачать готовый пример можно тут: http://kbyte.ru/Code/Samples/form1.zip

Создайте новый EXE-проект, на форме разместите Timer и вставьте следующий код:

Код формы:
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
Option Explicit

Private Sub Form_Load()
 gHW = Me.hwnd
 Hook
End Sub

Private Sub Form_Unload(Cancel As Integer)
 Unhook
End Sub

Private Sub Timer1_Timer()
 Me.Caption = SelectedMenuString
End Sub


Также добавьте несколько элементов меню.
Дополнительно создайте новый модуль и вставьте следующий код:

Код модуля:
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:
061:
062:
063:
064:
065:
066:
067:
068:
069:
070:
071:
072:
073:
074:
075:
076:
077:
078:
079:
080:
081:
082:
083:
084:
085:
086:
087:
088:
089:
090:
091:
092:
093:
094:
095:
096:
097:
098:
099:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
Option Explicit

Public SelectedMenuString As String 'здесь будет заголовок выбранного элемента меню

Private Declare Function CallWindowProc Lib "user32" _
  Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, _
  ByVal hwnd As Long, ByVal Msg As Long, _
  ByVal wParam As Long, ByVal lParam As Long) As Long

Private Declare Function SetWindowLong Lib "user32" _
  Alias "SetWindowLongA" (ByVal hwnd As Long, _
  ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Private Declare Function GetMenu Lib "user32" _
 (ByVal hwnd As Long) As Long

Private Declare Function GetSubMenu Lib "user32" _
 (ByVal hMenu As Long, ByVal nPos As Long) As Long

Private Declare Function GetMenuItemCount Lib "user32" _
 (ByVal hMenu As Long) As Long

Private Declare Function GetMenuState Lib "user32" _
 (ByVal hMenu As Long, ByVal wID As Long, _
  ByVal wFlags As Long) As Long

Private Declare Function GetMenuString Lib "user32" _
  Alias "GetMenuStringA" (ByVal hMenu As Long, _
  ByVal wIDItem As Long, ByVal lpString As String, _
  ByVal nMaxCount As Long, ByVal wFlag As Long) As Long

Private Const MF_BYPOSITION = &H400&
Private Const MF_HILITE = &H80&
Private Const WM_MENUSELECT = &H11F
Private Const GWL_WNDPROC = -4

Public lpPrevWndProc As Long
Public gHW As Long

Public Sub Hook()
  'Begin hooking into messages.
  lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, _
  AddressOf WindowProc)
End Sub

Public Sub Unhook()
  'Cease hooking into messages.
  SetWindowLong gHW, GWL_WNDPROC, lpPrevWndProc
End Sub

Function AnyLit(hSubSubMenu As Long) As Long
  Dim i As Long
  Dim MenuCount As Long

  'Get the number of items in the menu.
  MenuCount = GetMenuItemCount(hSubSubMenu)

  'Loop through the menu items.
  For i = 0 To MenuCount - 1
    'Check whether this item is highlighted.
    If GetMenuState(hSubSubMenu, i, MF_BYPOSITION) And _
        MF_HILITE Then
      AnyLit = True
      Exit Function
    End If
  Next i

  'Return FALSE, no items highlighted.
  AnyLit = False
End Function

Private Sub WalkSubMenu(hSubMenu As Long)
  Dim i As Long
  Dim MenuItems As Long
  Dim hSubSubMenu As Long
  Dim buffer As String
  Dim result As Long

  'Get the count of menu items in this menu.
  MenuItems = GetMenuItemCount(hSubMenu)

  'Loop through all the items on the menu.
  For i = 0 To MenuItems - 1
    'Determine whether this item is highlighted.
    If GetMenuState(hSubMenu, i, MF_BYPOSITION) And _
        MF_HILITE Then
      'Attempt to get a submenu for each menu item.
      hSubSubMenu = GetSubMenu(hSubMenu, i)

      'Check for a submenu with something selected on it.
      If hSubSubMenu And AnyLit(hSubSubMenu) Then
        'There is a submenu with a selection so walk it.
        WalkSubMenu hSubSubMenu
      Else
        buffer = Space(255)
        result = GetMenuString(hSubMenu, i, buffer, Len(buffer), MF_BYPOSITION)
        buffer = Left$(buffer, result)
        SelectedMenuString = GetDescription(buffer)
        Exit Sub
      End If
    End If
  Next i
End Sub

Public Sub FindHilite(TheForm As Form)
  Dim hMenu As Long
  Dim hSubMenu As Long
  Dim i As Long
  Dim MenuCount As Long

  'Clear any previous description.
  SelectedMenuString = ""

  'Get the menu handle.
  hMenu = GetMenu(TheForm.hwnd)

  'Check to see if there is no menu.
  If hMenu <> 0 Then
    'Get the number of top-level menus.
    MenuCount = GetMenuItemCount(hMenu)

    'Enumerate through all top-level menus.
    For i = 0 To MenuCount - 1
      'Ignore top-level menus not currently selected.
      If GetMenuState(hMenu, i, MF_BYPOSITION) And _
          MF_HILITE Then
        'Get a handle to the submenu.
        hSubMenu = GetSubMenu(hMenu, i)

        'Walk the submenu.
        WalkSubMenu hSubMenu
      End If
    Next i
  End If
End Sub

Private Function GetDescription(MenuCaption As String) As String
 GetDescription = MenuCaption
End Function

Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
 If uMsg = WM_MENUSELECT Then
  FindHilite Form1
 End If
 WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Function


При выборе элемента меню в переменной SelectedMenuString будет текст заголовка выбранного элемента меню.

 

Вопрос #000754: HttpWebRequest и HttpWebResponse

Автор вопроса: Сергей // 13.02.2008 / 23:01

Здравствуйте.
Алексей Сергеевич в статье "Взаимодействие с другими сайтами через HTTP" хорошо описал, как можно программно заполнить и отправить Web-форму и получить результат. Спасибо. А как быть, если есть защита от автоматов? Т.е. как отобразить имиджи с цифрами, получить и отправить выбранный вручную ответ? Спасибо.

--------------------------------------
Категория: --- C# (Си шарп)

Отвечает: Алексей Немиро // 14.02.2008 / 03:35

Здравствуйте, Сергей.

Для этого придется икать уязвимости в самой CAPTCHA, «проще всего» разобраться с картинкой, которая в url содержит код, по которому она была сгенерирована.

http://www.captcha.ru/breakings/

Также можно попробовать написать распозновалку картинок, но это уже зависит от ее кривизны и окраски, чем меньше кривизны и меньше цветов, тем больше вероятность написать нормальную распозновалку.

Либо придется подключать человека, отдавать ему картинки и чтобы он сам вручную вводил номера.


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

 

Вопрос #000745: Проблема с компонентом WINSOCK

Автор вопроса: Дмитрий // 10.02.2008 / 15:57

Уважаемые Эксперты!
Помогите решить вот такую проблему: создал приложение с использованием сокетов но на других компьютерах оно не запускается из-за того что якобы отсутствует компонент MSWINSCK.OCX. Как можно решить эту проблему?
Заранее спасибо


--------------------------------------
Категория: --- Visual Basic 5.0/6.0

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

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

Файл MSWINSCK.OCX можно найти в папке WINDOWS\system32 Вашего
компьютера. Чтобы Ваша программа работала на другом компьютере, Вам
необходимо перенести этот файл, и возможно зарегистрировать его.
Регистрация компонентов производится программой regsvr32.exe,
которую можно найти в той же папке (system32). Для регистрации достаточно
перетащить файл компонента (mswinsck.ocx) на файл regsvr32.exe в проводнике Windows.


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

 

Вопрос #000743: C#, forms

Автор вопроса: "Slonov K." // 09.02.2008 / 14:05



Добрый день.
C# .
Есть форма(Form1) с кнопкой, при нажатии на неё создаётся другая
форма(Form2).

private void button1_Click(object sender, EventArgs e)
{
Form2 Fr = new Form2();
Fr.Show();
}

Вопрос : как добиться чтобы чтобы при повторном нажатии на эту же
кнопку не создавалось ещё одно окно(типа Form2) , а просто
становилось становилось активным уже существующее Fr.
Заранее спасибо.
Костя

З.Ы. Может я что то принципиально не так делаю?

Отвечает: EROS // 10.02.2008 / 18:36

Здравствуйте
Подобного поведения можно добиться различными способами, вот один из
них:

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
012:
013:
014:
private void button1_Click(object sender, EventArgs e)
    {
      foreach (Form item in Application.OpenForms)
      {
        if (item is Form2)
        {
          item.Focus();
          return;
        }
      }

      Form2 frm = new Form2();
      frm.Show();
    }


--
С уважением,
EROS mailto:eros@fromru.com

 

Вопрос #000735: Localization and DataBase

Автор вопроса: Taleh Mikailov // 05.02.2008 / 15:36

Здравствуйте уважаемые эксперты!
На свой вопрос, что написал прошлый раз не получил ответа. В связи с этим решил более подробнее обьяснить ситуацию и более точно сформулировать свой вопрос...
Мне нужно включить в Веб Приложение поддержку локализации из Баз Данных.
Долго искал, по этому вопросу, какой-нибудь материал в сети.
Мое внимание привлекла вот эта статья: www.microsoft.com/rus/msdn/publish/articles/asap.mspx
После того, как прочитал статью, для примера создал не большое приложение и одну таблицу в Базе Данных()
Таблица(StringResources) из Базы Данных(CustomResourceProviderSample)

resourceType | cultureCode |resourceKey | resourceValue
Default.aspx en lbHelloLocalResource1.Text Hello(en)
Default.aspx en lbLanguageLocalResource1.Text English(en)
Default.aspx en lbWelcomeLocalResource1.Text Welcome(en)
Default.aspx en hlAboutCompanyLocalResource1.Text About Company(en)
Default.aspx en hlContactUsLocalResource1.Text Contact Us(en)
Default.aspx en hlLearnMoreLocalResource1.Text Learn More(en)
Default.aspx en btnSendDemoMailLocalResource1.Text Send Demo Mail(en)
AboutCompany.aspx en lbCompanyNameLocalResource1.Text MatrixSoftware(en)
AboutCompany.aspx en Literal1LocalResource1.Text "Текст с описанием фирмы(en)"
AboutCompany.aspx en hlContactUsLocalResource1.Text Contact Us(en)
AboutCompany.aspx en btnBackLocalResource1.Text Main Page(en)


Обращение к ресурсам осуществляю следующим образом:

this.lbHello.Text = HttpContext.GetLocalResourceObject("Default.aspx", "lbHelloLocalResource1.Text") as string;

Одним словом строго следую указаниям из статьи...
Проблема в том, что при компиляции приложения получаю 8 ошибок:

Error 1 The type or namespace name 'ResourceProviderFactory' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceProviderFactory.cs 11 46 CustomResourceProviders


using System;

using System.Web;

using System.Diagnostics;

using System.Globalization;

using System.Resources;

using System.Threading;

namespace CustomResourceProviders

{

public class DBResourceProviderFactory : ResourceProviderFactory

{

public override IResourceProvider CreateGlobalResourceProvider(string classKey)

{

Debug.WriteLine(String.Format(CultureInfo.InvariantCulture, "DBResourceProviderFactory.CreateGlobalResourceProvider({0})", classKey));

return new DBResourceProvider(classKey);

}

public override IResourceProvider CreateLocalResourceProvider(string virtualPath)

{

Debug.WriteLine(String.Format(CultureInfo.InvariantCulture, "DBResourceProviderFactory.CreateLocalResourceProvider({0}", virtualPath));

// we should always get a path from the runtime

string classKey = virtualPath;

if (!string.IsNullOrEmpty(virtualPath))

{

virtualPath = virtualPath.Remove(0, 1);

classKey = virtualPath.Remove(0, virtualPath.IndexOf('/') + 1);

}

return new DBResourceProvider(classKey);

}

}

}

-----------------------------------

Error 2 The type or namespace name 'Compilation' does not exist in the namespace 'System.Web' (are you missing an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceProvider.cs 2 18 CustomResourceProviders


using System.Web.Compilation; <-????

------------------------------------------

Error 3 The type or namespace name 'DisposableBaseType' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceProvider.cs 17 36 CustomResourceProviders


namespace CustomResourceProviders

{

/// <summary>

/// Resource provider accessing resources from the database.

/// This type is thread safe.

/// </summary>

public class DBResourceProvider : DisposableBaseType, IResourceProvider <- ????????

{

private string m_classKey;

private StringResourcesDALC m_dalc;

// resource cache

private Dictionary<string, Dictionary<string, string>> m_resourceCache = new Dictionary<string, Dictionary<string, string>>();

/// <summary>

/// Constructs this instance of the provider

/// supplying a resource type for the instance.

/// </summary>

--------------------------------------------

Error 4 The type or namespace name 'IResourceProvider' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceProvider.cs 17 56 CustomResourceProviders


------------------------------------

Error 5 The type or namespace name 'Security' does not exist in the namespace 'System.Web' (are you missing an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceReader.cs 5 18 CustomResourceProviders
С этой разобрался!

Error 6 The type or namespace name 'DisposableBaseType' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceReader.cs 23 34 CustomResourceProviders


Error 7 The type or namespace name 'IResourceProvider' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceProviderFactory.cs 14 25 CustomResourceProviders


Error 8 The type or namespace name 'IResourceProvider' could not be found (are you missing a using directive or an assembly reference?) C:\Documents and Settings\talekh\My Documents\Visual Studio 2005\Projects\DBResourceProviderWeb\CustomResourceProviders\DBResourceProviderFactory.cs 20 25 CustomResourceProviders


Совсем НЕ уверен, что делаю все как надобно, поэтому обращаюсь к вам !!!
Очень прошу помочь !!!

Буду рад получить от вас замечания и исправления !!!
Заранее благодарю!!!

Отвечает: EROS // 08.02.2008 / 03:47

Здравствуйте.
Судя по описанию ошибок вы не подключили необходимые библиотеки либо
не указали нужную директиву using


--
С уважением,
EROS

 


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

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

Наверх

 

 

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

Денвер и пара мелкий вопросов... | Автор: Kolya007
Добавлено: 29.02.2008 / 09:02 | ответов: 2 | просмотров: 52

Есть ли возможность сделать так, чтобы Apache входящий в состав Денвера, читал asp, а не только php... Если да, то как это можно сделать...))
А теперь к мелочам...))
1) Непомню спрашивал или нет... Как сделать переадресацию в php?..
2) Сессии и куки в php... Как их создавать, проверять их наличие и т.д.?..
3) Какие есть возможности для создания авторизации в php?..
4) И вопрос по верстке...)) Как сделать, чтобы div разпологались относительно объекта (другого div и т.п.) и имели размер в зависимости от экраннго разрешения?..
5) Где хранится информация о системе пользователя?..

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


Ответ # 1 | Автор: Алексей
Добавлено:29.02.2008 / 10:48
1. Помню, что уже отвечал :)
header("Location: Путь_Редиеркта");

2.
001:
002:
003:
004:
005:
006:
if(!isset($_SESSION)) { // нет сессии
session_cache_expire(60); // создаем
session_start();
}

Colorized by: Eros.CodeSyntaxColor Engine

001:
002:
003:
004:
005:
006:
if (!isset($_SESSION["Abrakadabra"])) // нету параметра Abrakadabra
{
 $_SESSION["Abrakadabra"] = "Kbyte.Ru откройся!"; // создаем
}

Colorized by: Eros.CodeSyntaxColor Engine

001:
002:
003:
echo $_SESSION["Abrakadabra"];

Colorized by: Eros.CodeSyntaxColor Engine

про кукисы уже не помню ничего :)

3. Есть замечательная возможность изобрести такую возможность самому :)

4. Размер относительно разрешения экрана ставь процентами, либо ставь отступы от краев, также процентами, либо пикселями.
для выравнивания используй
001:
position: relative; float: left

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

5. Какая такая система пользователя? Если ты имеешь ввиду большого полосатого муха, которого юзает клиент, то эту инфу можно получить только JavaScript-ом, на стороне клиента.

6. Жаль что я забыл написать правило, которое запрещало бы задавать кучу вопросов одним топиком :), но ничего, как изганю дух лени из своего компутера, обязательно напишу такое правило, а пока радуйтесь, что его нет :)

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


Ответ # 2 | Автор: Kolya007
Добавлено:29.02.2008 / 19:33
Спс...))
PS:
Если ты имеешь ввиду большого полосатого муха, которого юзает клиент, то эту инфу можно получить только JavaScript-ом, на стороне клиента.

Его самого...))
Жаль что я забыл написать правило, которое запрещало бы задавать кучу вопросов одним топиком :), но ничего, как изганю дух лени из своего компутера, обязательно напишу такое правило, а пока радуйтесь, что его нет :)

Зато так удобнее...))

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


Потоки | Автор: Inf
Добавлено: 29.02.2008 / 00:40 | ответов: 2 | просмотров: 59

Вопрос, как можно запустить поток и при этом передать значение в переменную? т.е

001:
002:
003:
004:
005:
Public Sub main_thread(ByVal value As String)
'тут код который нужно запустить в поток и который очень часто использует значение из value
End Sub

Colorized by: Eros.CodeSyntaxColor Engine


При запуске потока обычным способом:
001:
002:
003:
Thread1 = New Thread(AddressOf main_thread("передаём данные"))

Colorized by: Eros.CodeSyntaxColor Engine

не чего не выходит, читал в MSDN вот тут всё про потоки:
http://msdn.microsoft.com/library/rus/default.asp?url=/library/RUS/vbcn7/html/vaconfreethreading.asp
но к сожелению нет ни слова возможно ли реализовать то что мне нужно :(
И ещё вопросик, в место AddressOf Visual Studio предлагает на выбор, сам AdressOf и Function, вот что это за Function? экспериментировал, не чего не вышло, спасибо


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


Ответ # 1 | Автор: Алексей
Добавлено:29.02.2008 / 04:41
Вопрос, как можно запустить поток и при этом передать значение в переменную?

Нужно использовать делегаты

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


Ответ # 2 | Автор: EROS
Добавлено:29.02.2008 / 08:00
1. Параметр должен быть типа Object (Public Sub main_thread(ByVal arg As Object))
2. В конструкторе Thread1 никаких паметров передавать не надо (Thread1 = New Thread(AddressOf main_thread))
3. Параметр передается в методе Start ( Thread1.Start(arg) )
4. Внутри потока параметр из типа Object приводишь к нужному тебе типу(в твоем случае приведение к String) и спокойно с ним работаешь.

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


Узнать номер строки | Автор: Inf
Добавлено: 28.02.2008 / 20:17 | ответов: 2 | просмотров: 60

Здравствуйте
Подскажите пожалуйста как мне поступить в этой ситуации:
имеется код который работает с содержимым массива, а именно со строками
001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
Dim lines() As String = System.IO.File.ReadAllLines("test.txt")

    For Each value As String In lines
      If value.Contains("test_dannie") Then
        Dim result As String = value.ToString
        'а вот тут нужен код который запишит в переменную номер строки где содержиться "test_dannie", подробнее написано чуть ниже
      End If
    Next

Colorized by: Eros.CodeSyntaxColor Engine

Как видно код работает со строками, а именно проверяет содержимое каждой, и ищет строку которая содержит в нашем случае "test_dannie" так вот, меня всё устраивает всё работает, но проблема, мне нужно получить номер строки где будет найдено это совпадение, вроде просто, а сообразить не могу, подскажите пожалуйста возможно ли это реализовать в моём случае? Спасибо
Visual Studio 2008

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


Ответ # 1 | Автор: Алексей
Добавлено:29.02.2008 / 04:24
001:
002:
003:
004:
005:
006:
Dim row As Integer = 1
..
row += 1
..

Colorized by: Eros.CodeSyntaxColor Engine

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


Ответ # 2 | Автор: EROS
Добавлено:29.02.2008 / 08:03
В данном случае проще всего вместо цикла вида ForEach надо использовать For .. To В этом случае в этой перменной и будет номер строки

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


Тестирование | Автор: Алексей
Добавлено: 26.02.2008 / 06:55 | ответов: 0 | просмотров: 39

Все за сертификатами в систему тестирования! :) Может даже кто-то нормальный тест сможет написать ;-)

Сертификат
#000001

Сертификат #000010

http://kbyte.ru/UserServices/MyTests.aspx
http://kbyte.ru/Service/Tests.aspx

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


Помогите пожалуйста найти ошибку | Автор: agakamran
Добавлено: 25.02.2008 / 23:41 | ответов: 2 | просмотров: 77

private void addToolStripMenuItem_Click(object sender, EventArgs e)
{
//Dialog d = new Dialog();
Form2 d=new Form2();
if (d.ShowDialog() == DialogResult.OK)
{
//yeni yaradilani massive daxil edek
arTheCars.Add(d.theCar);
UpdateGrid();
}

SaveFileDialog mySav = new SaveFileDialog();
mySav.InitialDirectory = ".";
mySav.Filter = "xidmet files(*.ham)|*.ham|All files(*.*)|*.*";
mySav.FilterIndex = 1;
mySav.RestoreDirectory = true;
mySav.FileName = "xidmet.ham";
//if (mySav.ShowDialog() == DialogResult.OK)
// {
// Stream myStream = null;
FileStream myStream = new FileStream("xidmet.ham", FileMode.Create);
// if ((myStream = mySav.OpenFile()) != null)
// {
BinaryFormatter myBin = new BinaryFormatter();
myBin.Serialize(myStream, arTheCars);
myStream.Close();
// }
// }
}

Помогите пожалуйста найти ошибку немого сохранить новое добавленное запись по отладкам посмотрю arTheCars получает добавленное количества строк но выдается такое ошибка заранее благодарен
Type 'Car.Form1' in Assembly 'Car, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.

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


Ответ # 1 | Автор: Алексей
Добавлено:26.02.2008 / 04:50
Общий форум (ASP .NET)

Form2 d=new Form2();

SaveFileDialog mySav = new SaveFileDialog();

все верно? :)

И что такое arTheCars? ArrayList? или какой-то другой массив, или коллекция?

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


Ответ # 2 | Автор: Edlin
Добавлено:26.02.2008 / 09:02
Я так понял Form2.theCar возвращает объект типа Car.Form1 (?). Похоже этот тип не помечен аттрибутом Serializable. По крайней мере один из типов объектов, хранящихся в arTheCars не имеет такого аттрибута.

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


Наверх

 

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

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

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

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

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

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

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

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

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

Выбор языка программирования для научных работ (2-я редакция)
Автор: Юдин С. Ю. | добавлено: 15.03.2007 / 02:49 | просмотров: 4202

Идея написания этой статьи возникла после того, как на одном из сайтов по физике http://physics.nad.ru/aniboard/messages/291.html я обнаружил интересный алгоритм моделирования движения тела в поле постоянной напряженности по различным направляющим. Вернее, меня заинтересовал не весь алгоритм, т.к. основа их всех одна (принцип Даламбера, если не считать квазиалгоритма с применением уравнений Лагранжа 2-го рода) и различаются они только способом определения реакций в месте соприкосновения тел. ...

 

Статьи на Kbyte.Ru

Наверх

 

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

Запись данных в файл
Дата добавления: 31.07.2006 / 17:20 | просмотров: 1208 | платформа: ASP .NET (VB)

Как поместить одну форму в другую?
Дата добавления: 31.07.2006 / 12:09 | просмотров: 1218 | платформа: VB

Как изменить текущее системное время Windows?
Дата добавления: 16.08.2006 / 20:21 | просмотров: 1252 | платформа: VB

Анализ даты стандарта RFC822
Дата добавления: 24.03.2007 / 10:58 | просмотров: 1256 | платформа: RegEx

Как узнать, отправлялись данные форме или нет?
Дата добавления: 31.07.2006 / 14:23 | просмотров: 1253 | платформа: ASP .NET (VB)

Анализ чисел
Дата добавления: 24.03.2007 / 11:09 | просмотров: 939 | платформа: RegEx

Как распечатать Web-страницу?
Дата добавления: 17.08.2006 / 17:58 | просмотров: 1518 | платформа: VB

Поиск предложений
Дата добавления: 24.03.2007 / 11:06 | просмотров: 977 | платформа: RegEx

Анализ даты стандарта DD.MM.YYYY и DD.MM.YY
Дата добавления: 24.03.2007 / 11:00 | просмотров: 1081 | платформа: RegEx

Преобразование строки в Double, исключая проблемы с разделителем
Дата добавления: 27.04.2007 / 15:53 | просмотров: 1460 | платформа: VB .NET

 

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

Наверх

 

Юмор на Kbyte.Ru

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

 

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

 

- Михал Ефремович, а как вы намерены бороться с этими, как их там, зарплатами в конвертах?
- Да нет ничего проще, Владимир Владимирович, запретим конверты!

 

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

 

У одной провайдерской фирмы спросили:
- Почему Вы так активно создаете сервисы бесплатного e-mail?
- Ну, как Вам сказать...
А Вы читали когда-нибудь чужую почту?

 

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

 

Сынок не может оторваться от компьютера. Родители вызвали доктора. Доктор осмотрел его и сказал:
- Его придётся лечить!
Родители:
- Как?
- Сигаретами, выпивкой, девочками...

 

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

 

Биллу Гейтсу пpисвоили звание гpафа - тепеpь он ДеБилл Гейтс!

 

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

 

Три летучие мыши висят вниз головами.
Вдруг одна - рраз - вверх головой.
(1) - ???
(2) - А, это у нее обморок!

 

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

 

- Вовочка, какие зубы растут последними?
- Золотые, - ответил Вовочка

 

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

 

Новый Русский (НР) припарковывается у обочины, ставит джип на охрану и идет вдоль тротуара, покручивая на пальце ключики и насвистывая себе под нос. Картина: рядом с джипом паркуется горбатый "Запорожец". Из машины вылезает мужик, ставит на педали капканы, на руль подводит электропровода, обматывает машину по периметру конкретной цепью, ставит амбарный замок. НР:
- Ты че мужик? Думаешь, такое дерьмо угонят?!
- Это твою машину угонят, а в мою ср@ть ходят!!

 

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

 

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

 

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

 

В школе финальный урок русского языка. Решается годовая оценка.
Учительница спрашивает детей:
- Объясните, детки, что означает выражение: "Родиться в рубашке"?
Машенька:
- Мой дедушка родился в рубашке. Когда была война, в его танк
попала ракета, башню оторвало, все сгорели - а дедушка выжил.
Петя:
- Мой папа родился в рубашке. Когда он сплавлялся по горной речке
на плоту, плот перевернулся, все утонули - а он выплыл. И т.д.
Дошла очередь до Вовочки:
- Мой кот родился в рубашке.
- Почему, Вовочка? Объясни!
- Я вчера съел пять таблеток виагры - а его дома не было!

 

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

 

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

Наверх


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

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

Copyright (c) Nemiro AS, 2005-2007


В избранное