Вот дернул же меня черт схватиться за VB.NET.
Второй день не могу сделать казалось бы простую вещь.
Видимо сказывается большой перерыв в программировании.
Прошу вот чего.
Задача такая.
Есть текстовый файл с данными.
Я его загоняю в
Public Structure OC
Dim Symbol As String
Dim Shares As Integer
Dim Pivot As Single
Dim Close As Single
End Structure
Подскажите, пожалуйста, каким образом мне эту структуру вывести в таблицу в форму.
Т.е. что делать дальше.
С массивами, вроде, понятно, а вот со структурой — никак.
KMS wrote: > Добрый день, форумяне. > > Вот дернул же меня черт схватиться за VB.NET. > Второй день не могу сделать казалось бы простую вещь. > Видимо сказывается большой перерыв в программировании. > > Прошу вот чего. > Задача такая. > Есть текстовый файл с данными. > Я его загоняю в > Public Structure OC > Dim Symbol As String > Dim Shares As Integer > Dim Pivot As Single > Dim Close As Single > End Structure > > Подскажите, пожалуйста, каким образом мне эту структуру вывести в > таблицу в форму. Т.е. что делать дальше. > С массивами, вроде, понятно, а вот со структурой — никак. > > Спасибо большое. > > С уважением, Коняев Павел.
Пример:
' an example of structure that contains a fixed length string
Structure PersonStruct
Dim FirstName As String
Dim LastName As String
Public Address As String
Private SSN As String
' Simulate a fixed-length string.
Dim ZipCode As Microsoft.VisualBasic.Compatibility.VB6.FixedLengthString
' A constructor for this structure.
Sub New(ByVal firstName As String, ByVal lastName As String)
Me.FirstName = firstName
Me.LastName = lastName
' Initialize the fixed-length string.
ZipCode = New Microsoft.VisualBasic.Compatibility.VB6.FixedLengthString(10)
End Sub
Function CompleteName() As String
CompleteName = FirstName & " " & LastName
End Function
End Structure
' this procedure demonstarte usage of Structures
Sub TestStructures()
' Creation is similar, but structures don't require New.
Dim sPers As PersonStruct ' New is optional.
' Assignment to members.
sPers.FirstName = "Joe"
sPers.LastName = "Doe"
' Method and property invocation.
Console.WriteLine(sPers.CompleteName()) ' => Joe Doe
' Assignment to a variable.
Dim sPers2 As PersonStruct = sPers
' Structure are value types, hence the new variable receives
' a copy of the original structure.
sPers2.FirstName = "Ann"
' The original structure hasn't been affected
Console.WriteLine(sPers.FirstName) ' => Joe
End Sub
Peter
Posted via RSDN NNTP Server 1.8
Re[2]: VB.NET прошу помощи в работе со структурой.
Здравствуйте, Peter Fleischer, Вы писали:
PF>KMS wrote: >> Добрый день, форумяне. >> >> Вот дернул же меня черт схватиться за VB.NET. >> Второй день не могу сделать казалось бы простую вещь. >> Видимо сказывается большой перерыв в программировании. >> >> Прошу вот чего. >> Задача такая. >> Есть текстовый файл с данными. >> Я его загоняю в >> Public Structure OC >> Dim Symbol As String >> Dim Shares As Integer >> Dim Pivot As Single >> Dim Close As Single >> End Structure >> >> Подскажите, пожалуйста, каким образом мне эту структуру вывести в >> таблицу в форму. Т.е. что делать дальше. >> С массивами, вроде, понятно, а вот со структурой — никак. >> >> Спасибо большое. >> >> С уважением, Коняев Павел.
PF>Пример:
PF>' an example of structure that contains a fixed length string
...........
Спасибо.
В консоль вывод получился.
Подскажите, пожалуйста, как вывести данные в форму.
Спасибо.
З.Ы. Я понимаю, что вопрос тупой, но вот затык у меня на этом месте и все.
Re[3]: VB.NET прошу помощи в работе со структурой.
KMS wrote:
... > Подскажите, пожалуйста, как вывести данные в форму.
...
Вариантов много. Если прямо писать на форму, то можно использовать graphics object, напр. так:
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
Dim gr As Graphics = Me.CreateGraphics
Dim pt As New PointF(10, 10)
gr.DrawString("my text", Me.Font, Brushes.Black, pt)
End Sub
Peter
Posted via RSDN NNTP Server 1.8
Re[3]: VB.NET прошу помощи в работе со структурой.
От:
Аноним
Дата:
22.12.04 04:56
Оценка:
ТОварищи, может вы сначала продемонстрируете человеку ОБЫЧНЫЙ способ — с Label. Я просто на VB не мастак, но зачем же так людей пугать...
Re[3]: VB.NET прошу помощи в работе со структурой.
От:
Аноним
Дата:
22.12.04 05:03
Оценка:
Самый простой вариант напишу:
Стандартным и простейшим хранилищем текста на форме можно считать Label — поместите его на форму, получится Label с именем label1
Если задача просто вывести статический текст, то правим свойство Text в редакторе свойств и все готово
Но если надо динамически, то в требуемом месте программы (напрмер как в приведенном выше примере в обработчике нажатия кнопки) надо поместить очень простую строчку:
label1.Text = "мой текст"
и все...
Fagim wrote: > ТОварищи, может вы сначала продемонстрируете человеку ОБЫЧНЫЙ способ > — с Label. Я просто на VB не мастак, но зачем же так людей пугать...
Обычным способом вывести текст на форму являлся в предвдущих версиях VB:
print "мой текст"
Я не думаю, что форум может заменить обучение, простое чтение основных книжек и хелпов.
Peter
Posted via RSDN NNTP Server 1.8
Re[4]: VB.NET прошу помощи в работе со структурой.
От:
Аноним
Дата:
22.12.04 05:24
Оценка:
Да, но этот форум конкретный реально пестрит чайниковыми вопросами, на которые люди получают все же ответы. Если человек хорошо понимает про Label, он так и отпишет, "нет чуваки, эта попсень с Label и print мне итак известна, дайте мне крутой хардкор с GDI+", но предыдущие посты в такого впечатления не производили, так и жду уже следующего письма:
"неужели чертовое MS не предусмотрела вывода текста на экран (в окошке Windows) без точного указания координат и использования непонятного Brushes, и почему нельзя вывести просто на экран, как это можно было в DOS и наверняка можно в Linux (ибо она крута до невозможности), а только в свое окошко... маздай!!!"
Re[3]: VB.NET прошу помощи в работе со структурой.
От:
Аноним
Дата:
22.12.04 05:35
Оценка:
> Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click > Dim gr As Graphics = Me.CreateGraphics > Dim pt As New PointF(10, 10) > gr.DrawString("my text", Me.Font, Brushes.Black, pt) > End Sub
Прикольно это, но для начинающего проще все-таки так:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Label1.Text = "Нужный мне текст"'или
TextBox1.Text = "Нужный мне текст"End Sub
Здравствуйте, Аноним, Вы писали:
>> Private Sub Button2_Click(ByVal sender As System.Object, _ А> ByVal e As System.EventArgs) Handles Button2.Click >> Dim gr As Graphics = Me.CreateGraphics >> Dim pt As New PointF(10, 10) >> gr.DrawString("my text", Me.Font, Brushes.Black, pt) >> End Sub А>Прикольно это, но для начинающего проще все-таки так:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
А> Label1.Text = "Нужный мне текст"
А> 'или
А> TextBox1.Text = "Нужный мне текст"
А>End Sub
Спасибо всем большое.
Дабы вы не подумали, что мне лень самому писать, а проще на форуме спрашивать, скажу что перерыл два тома по C# и русский MSDN по VB вкупе со встроеным хелпом. Ну, может я туповатый... Да и отсутствие практики и опыта наверняка сказывается.
Вы пишите про "Нужный мне текст", но, по-видимому, это несколько не то, чего я прошу от уважаемого собрания.
С вашего позволения, я повторюсь с некоторыми дополнениями.
Есть DataTable с 6 столбцами.
Dim InitDataTableTicker As DataTable = New DataTable("InitDataTableTicker")
Я из текстового файла набил ее данными.
С помощью
Console.WriteLine(InitDataTableTickerRow("Symbol"))
и т.д. я могу вывести данные в консоль.
Так вот, я хочу отобразить эти данные с помощью DataGrid.
А лучше на основании DataTable сформировать DataView.
Dim XXXXXXXX_proc As New DataView(InitDataTableTicker) — наверное так?!
И отобразить DataView с помощью DataGrid.
-----------
Я пробую DataGrid1.SetDataBinding(XXXXXXXX_proc , "ParentTable") в различных вариантах, но ничего не получается, хотя в форме я создал DataGrid1.
Вот где-то рядом хожу, а все никак...
Спасибо.
З.Ы. Может кто-нибудь ICQ даст?! Обязуюсь не приставать с вопросами. Моя благодарность не будет знать границ..... м-м-м... в разумных пределах.
Re[4]: VB.NET прошу помощи в работе со структурой.
От:
Аноним
Дата:
22.12.04 11:06
Оценка:
>Так вот, я хочу отобразить эти данные с помощью DataGrid.
а если так:
Спасибо.
Если это код на VB, то у меня не пошло.
Не знает что такое dataGridTable.
Не знает что такое dataSet.Tables.
Re[5]: VB.NET прошу помощи в работе со структурой.
От:
Аноним
Дата:
22.12.04 11:45
Оценка:
Код действительно не на VB, но перевести должно быть не сложно
dataGridTable — это имя переменной, подставь имя СВОЕГО DataGrid
dataSet.Tables — то же самое, подставь вместо dataSet имя СВОЕГО набора данных
Товарищ, если вы не понимапете ТАКИХ вещей, лучше возьмите и что-то прочитайте даже не про .NET, а просто про VB, а то вам сударь скоро начнут хамить. Люди примеры уж некуда простее и понятнее кидают, а вам они непонятны.
А>Код действительно не на VB, но перевести должно быть не сложно А>dataGridTable — это имя переменной, подставь имя СВОЕГО DataGrid А> dataSet.Tables — то же самое, подставь вместо dataSet имя СВОЕГО набора данных А>Товарищ, если вы не понимапете ТАКИХ вещей, лучше возьмите и что-то прочитайте даже не про .NET, а просто про VB, а то вам сударь скоро начнут хамить. Люди примеры уж некуда простее и понятнее кидают, а вам они непонятны.
где DataGrid1 — Name МОЕГО DataGrid-а,
InitDataTableTicker — описан селдующим образом:
Dim InitDataTableTicker As DataTable = New DataTable("InitDataTableTicker")
Не работает!
На DataGrid1 ругается, как "Name 'DataGrid1' is not declared."
На InitDataTableTicker.Tables ругается, как "Tables' is not a member of 'System.Data.DataTable"
Я ж, ведь, не прошу помощи у хамов?!
Я прошу помощи у тех, кто имеет возможность и желание помочь мне разобраться.
Спасибо.
С уважением, Коняев Павел.
З.Ы. Если не сложно, киньте на konyaev@cosmostv.by кусок работающего кода, а я сам попробую разобраться.
Re[6]: VB.NET прошу помощи в работе со структурой.
От:
Аноним
Дата:
22.12.04 12:17
Оценка:
этот код пробовал
Dim dt As New DataTable("MyTable")
Me.dataGrid1.DataSource = dt
Me.dataGrid1.Refresh()
, где dataGrid1 твой dataGrid, добавленный на форму
только за место dt, свой заполненный dataTable поставь.
Ругается на frmKMS_Gen.DataGrid1, как
"Reference to a non-shared member requires an object reference."
Re[6]: VB.NET прошу помощи в работе со структурой.
От:
Аноним
Дата:
22.12.04 13:13
Оценка:
>2. frmKMS_Gen.DataGrid1.DataSource = InitDataTableTicker >Первая работает, вторая — нет.
у меня DataGrid1 настройки по умолчанию, а InitDataTableTicker это DataTable?
>>2. frmKMS_Gen.DataGrid1.DataSource = InitDataTableTicker >>Первая работает, вторая — нет. А>у меня DataGrid1 настройки по умолчанию, а InitDataTableTicker это DataTable?
Да. DataTable.
Dim InitDataTableTicker As DataTable = New DataTable("InitDataTableTicker")
или так
Dim InitDataTableTicker As New DataTable("InitDataTableTicker")
или так
Dim InitDataTableTicker As DataTable
Я уже DataGrid1 как только не сношал, — не идет.
В чем может быть дело?
Хотя бы направление, куда ковырять?!
Спасибо.
С уважением, Коняев Павел.
Re[6]: VB.NET прошу помощи в работе со структурой.
От:
Аноним
Дата:
22.12.04 15:01
Оценка:
А>Похоже, что у меня с пабликами/приватами проблема.
Ну конечно! Обьявите frmKMS_Gen.DataGrid1 как public и все пойдет, как по маслу... до следующей ошибки .
А если серьезно, то все-же стоит почитать литературу (или МСДН) с целью освоения хотя бы самых элементарных вопросов. Иначе программирование для Вас превратится в диалоги (или монологи) на RSDN и GotDotNet.
Ведь Вы же догадались про "с пабликами/приватами", тогда почему сами не проверили?
KMS wrote:
... > В чем может быть дело? > Хотя бы направление, куда ковырять?!
Павел,
для демонстрации открой новый проект (Windows Forms).
В коде Form1 следующий код:
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'Dim DataTable1 As New DataTable("Tab1")
With DataTable1
.Columns.Add(New DataColumn("col1", GetType(System.Int32)))
.Columns.Add(New DataColumn("col2", GetType(System.String)))
.Columns.Add(New DataColumn("col3", GetType(System.String)))
End With'For i As Integer = 1 To 10
Dim DataRow1 As DataRow = DataTable1.NewRow
With DataRow1
.Item("Col1") = i
.Item("Col2") = "Line " & i.ToString
.Item("Col3") = "Text " & i.ToString
End With
DataTable1.Rows.Add(DataRow1)
Next'Dim DataGrid1 As New DataGrid
With DataGrid1
.Dock = DockStyle.Fill
.DataSource = DataTable1
End With
Me.Controls.Add(DataGrid1)
'End Sub
Peter
Posted via RSDN NNTP Server 1.8
Re[9]: VB.NET прошу помощи в работе со структурой.