Converting array formula to work with datatables/dataset tia sal

S

sal

Greets, All

Converting array formula to work with datatables/dataset tia sal

I finally completed a formula I was working on, see working code below.

I would like to change this code so it will work with a variable mutl-
row, 5 column datatable where the users select items. Anyone have any
suggestions on where to start?
Or changes in the current code that might be made.

Private Sub Arraylooptest_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Arraylooptest.Click
Dim arraya() As Integer = {15, 17, 20, 25} 'variable numbers
users can change

Dim arrayb() As Integer
Dim arrayc() As Integer
Dim i, k As Integer, total As String
Dim v As Object

ReDim arrayb(arraya.GetUpperBound(0) - 1)
arrayb(0) = arraya(0) + arraya(1)
Console.WriteLine("Numbers used ")
For Each v In arraya
Console.WriteLine((v))
Next

Console.WriteLine(String.Format("a(0)->({0}) + a(1)->({1})= b
(0)->({2})", arraya(0), arraya(1), arrayb(0)))

For i = 1 To arraya.GetUpperBound(0) - 1
Console.WriteLine(String.Format("b({0})->({1}) + a({2})->
({3})= b({4})->({5})", i - 1, arrayb(i - 1), (i + 1), arraya(i + 1), i,
arrayb(i - 1) + arraya(i + 1)))
arrayb(i) = arrayb(i - 1) + arraya(i + 1)
Next

ReDim arrayc(arrayb.GetUpperBound(0) - 1)
'If statement to break if only two elements selected
If (arrayc.Length) = 0 Then
MessageBox.Show("only two elements use your calculator :)")
Exit Sub
Else
End If

arrayc(0) = arrayb(0) + arrayb(1)
Console.WriteLine("==Loop of Sums==")
Console.WriteLine(String.Format("b({0})->({1}) + b({2})->({3})= c
({4})->({5})", 0, arrayb(0), 1, arrayb(1), 0, arrayb(0) + arrayb(1)))
For k = 1 To arrayb.GetUpperBound(0) - 1
arrayc(k) = arrayc(k - 1) + arrayb(k + 1)
Console.WriteLine(String.Format("c({0})->({1}) + b({2})->
({3})= c({4})->({5})", k - 1, arrayc(k - 1), k + 1, arrayb(k + 1), k,
arrayc(k)))

Next
ReDim Preserve arrayc(k)
'Show overall answer or puts answer in next open array slot
If k = 1 Then
Exit Sub
Else
arrayc(k) = arrayc(k - 2) + arrayc(k - 1)
Console.WriteLine(String.Format("c({0})->({1}) + c({2})->
({3})= c({4})->({5})", k - 2, arrayc(k - 2), k - 1, arrayc(k - 1), k,
arrayc(k)))

End If


End Sub



This is the output
Numbers used
15
17
20
25
a(0)->(15) + a(1)->(17)= b(0)->(32)
b(0)->(32) + a(2)->(20)= b(1)->(52)
b(1)->(52) + a(3)->(25)= b(2)->(77)
==Loop of Sums==
b(0)->(32) + b(1)->(52)= c(0)->(84)
c(0)->(84) + b(2)->(77)= c(1)->(161)
c(0)->(84) + c(1)->(161)= c(2)->(245)



PS. Thanks to everyone who got me this far.
I sure have learned alot.

TIA
 
C

Cor Ligthert

sal,

How many times have I written as answer on this kind of messages, that I
have made a complete sample special for you including the datatable in this
vbnet newsgroup

However it seems you drops only questions.

Cor
 
S

sal

I want to take time out to personally thank Cor Ligthert and everyone for
all their help on my issues. To answer Cor question if I got his
responses the answer is yes. And I'm also continuing to implement the
changes (to datatables) he/she and others have so kindly sent me into the
program. The above message is a formula I had to make using arrary's
because I did not have the technical know how to loop through individual
columns in datatables. That's what it really comes down to
1) not knowing how to loop through datatables columns
2) not knowing the equivialent getupperbound method found in array's for
use in datatables.

If I offended anyone in anyway I sincerely apologize

I know the holiday season gets many people tense just remember.
"Don't sweat the little stuff, oh yea it's all little stuff"

;-)
Love and Joy
Sal
 
C

Cor Ligthert

Sal,
1) not knowing how to loop through datatables columns

Than ask that in the same thread as is the first question.

It is now very unusefull sending you a sample and seeing you going another
direction and than come back with the same question you started the first
time and confirming my answer in a new message thread, while I spent time
making an sample special fitted on your question.

\\\
for i as integer = 0 to mydatatable.rows.count -1
for y as integer = 0 to mydatatable.rows(i).columns.count - 1
myvalue = datatable.rows(i).items(y)
next
next
///

Seems quiet simple for me.

Cor
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top