Structure/component For Performing Complex Calculations?
May 24, 2010
I hope this is the right forum. I've been developing something for a while now, and I've hit some walls with the direction I was going. I'm not an expert in .Net, so I was hoping maybe there's a nice solution that I had no idea of its existance.
A little bit of background: I'm building a relatively large scale calculation component which used to be in a spreadsheet. It composes of about 1300 values, about 150 which are passed in to the component, and the remaining 1150 are calculated based on these inputs. However, these values can be in multiple rows, as in there will be multiple rows of these 1300 values. Aggregate calculations need to be performed on these rows on a regular basis. Right now I'm using a dataset to perform this since it supports multi-row calculations nicely, but it has its limitations. It doesn't support some of the mathematical functions that I need it to perform (such as exponential) and performing a calculation like a weighted average is a hassle because you need to add a new field for it. Furthermore it doesn't let you use custom variables in your expressions, so if you want to create an on/off switch for something you need to create a single row table and set up a relationship to it. Also I'm getting tired of the dataset designer being riddled with bugs, and it's obvious to me that it was not meant for calculations of this magnitude. Not being able to see the data type of the field in the designer is a minus too (you have to bring up the property window on that field). I looked in to just creating classes to perform this, but the problem is that it needs to be relatively dynamic, and the calculations need to refresh based on user inputs. The best way I can think of doing this is setting up the 1150 calculated variables as properties so that they will be calculated automatically. But, I'm afraid that this is going to fire off thousands of calculations each time any variable is accessed, which is going to be a rather significant performance hit.
So, my question is whether anyone knows of a good structure or component that I could use to achieve my goals. I apologize if I didn't do a very good job explaining my situation, so I'll try to elaborate on any of my explanations if anything is unclear.
I haven't used VB in 2 years and have forgetten way too much, but I still understand quite a bit. I just can't synthesize it.
Anyways, here is what I am struggling to do.
I have a CSV file as formatted in the screenshot at this link:[URL]
Number of rows can change but the number of columns won't.
I need to:
1:read in a csv file
2:take the second column save the first and last number as a variables for computations (these numbers will be the smallest and largest numbers, respectively if that makes it easier to program)
3:put into the first column of a new array the following computations based on the 2nd column from the csv file computation=((array value-first number)/(last number-first number)*100)
4:add to first column the same computations again but +100 i.e. if the first row had a cell that had computed to 1 then the next number would be 101
5:add to first column again the same computations again but with an addition +100 (+200 total) this should cause the column to have numbers between 0 and 300
6:write column 3 of array to 2nd column of the new array
7:write column 4 of array to the end of 2nd column of the new array
8:write column 5 of array to the end of 2nd column of the new array
9:delete excess array space
10:write new array to txt file with delimiter of " " (a tab) with the same name as the previous file
I have been looking at this for 6 hours now and although I figured out how to read in a csv file, I was not able to figure out how to call up the individual values for computations.
I won't complain if you give me code but what I really want is an understanding of what I need to do to accomplish this.
I'm a Python programmer and VB.NET newbie converting an application from Python to VB.NET (3.5).In Python, I have a function which returns a list of tuples which I run on two datasets with results like this:
Then I want to check if the two data sets are identical.In Python I check for equality like this:
"Equal" if data1 == data2 else "Not Equal"I want to know the easiest way to structure the data in VB.NET.
It looks like the right data structure for each data set in VB.NET is a List(of Something).
Should I create a Class to hold each data item, or is there a simpler way? If I do, will I need a custom way to decide if two instances hold the same data? What is the easiest way to compare the two data sets for equality?
Which is the most efficient and speedy data structure in order to carry out calculations on it?. I have seen, collections, arrays, list arrays, databases and more. I would prefer to write just straight forward code that will be effective and which I can still understand. What I would like to do initially is have the ability to add new draws to the end of the file, edit the individual files and delete lines if required.
File would then be reformatted to show the corrections made. Some kind of data entry window is envisioned. As far as number crunching goes, I would like to make counts of each number in each of the columns , calculating averages, times since last drawn and so on.
Without being too long winded, I would eventually like to find triple combinations and maybe use them as predictions. So there you have it. This way I won�t have to go off on the wrong path, on a data structure that may not be able, or be too slow for the tasks at hand.
I am converting an old Vb6 solution to .net 2.0 in vs2010. I've been working in C# for about 3 years now and .net for 5. I don't recall having this problem in C#, but if I want initialize a readonly collection of DerivedControlFoo Is there a clean way to do it besides creating a sub to do it all off somewhere else? I'd love to be able to do it at the class level at the declaration for readability and simplicity.
Create a DLL component for database operation and use created component in another project. Required methods, events and properties
a. Connect b. Add c. Delete d. Save e. Record navigation (first, next, previous, last) f. Properties for all database fields g. Events for validation of database fields.
I've created a component whose name I'd like to be able to change while editing in the component tray. I've added a Designer action for a name property, but now I'm stuck.
Looking at the property grid, I can see that the name property is parenthesised, indicating that it's not a regular property.
Module Module1 Public Structure structure1 Public TRANS() As structure2 End Structure Public Structure structure2 Public X() As Integer End Structure End Module
I'm new to VB 2008 after having spent a long time with VB6, so I apologize if this is a stupid question. But I'd really like to have this straightened out.
Let's say I have a pretty large structure that has lots of properties.
Code:
Now say that I want an internal database with about 10 instances of this structure total, describing, say, 10 different products that a store sells. When these values are loaded from a database, they remain totally static. (However, they can be different each time a program loads)
Now say that I have a class. Each instance of this class is a type of that BaseProduct structure. Meaning, each instance of the class pertains to one of the 10 types of products that the store sells. However, this class has additional properties that pertain specifically to each instance, which are not static.
Code:
Now, the problem here is... If I have 200 different transactions, each one contains an instance of BaseProduct. BaseProduct is HUGE, and is largely redundant (only 10 types possible), so I think it's a little silly to include a whole copy of it with EVERY transaction. However, the Transaction class really needs information regarding the base product it pertains to. Is there a way to, instead of declaring a New BaseProduct in the Transaction class, to simply make one of the properties of the Transaction class a pointer to a BaseProduct variable?
In VB6, I would accomplish this by making a BaseProduct(10) array, and then giving each Transaction an ID number referring to an entry in that array. But in VB 2008, using class structure, this is impossible. I can't define the BaseProduct(10) array outside of a class in a namespace, and if I define it in the actual application's form, then the class loses modularity since it relies on the application that's using it.
I am trying to communicate with an external device and i am trying to send a byte array to the external device via sockets but i am always getting a response the message size is too small so i am not sure what i have done wrong. Between the data type there should be no alignment present and all numbers are represented in little endian format. The char array is not null terminated as mentioned in the protocol specifications.
I have to send data based on a struct that embeds 2 other struct. So here's my vb.net code for the struct used to convert to byte array and the sending part.
Public Structure MESSAGETYPE_OIP_Login Dim Header() As COMMANDHEADER Dim UserName() As PSTRING
I've trying to do an inner join select statement where I select two fields from a table, and than all the records of a field in a second table that have the same id as the first table.The code looks as follow:
Dim conn As OleDbConnection Dim cmd As OleDbCommand Public Sub openDB()
[code]....
I get a an exception: "invalid bracketing of name [Vegetables Descriptions.DescID] if I take it out to make it look as follow I get a "Join expression not supported"
da = New OleDbDataAdapter("SELECT [Vegetables Descriptions.Task], [Vegetables Descriptions.Description], [TasksOcc.When] FROM [Vegetables Descriptions] INNER JOIN [TasksOcc] ON [DescID] = [DescID] WHERE [Vegetables Descriptions.VegeID] = vegeID", conn)
I tried folowing examples from the net but where unsuccessful.
I'm having a problem that's driving me crazy; I can't understand how to convert the XML structure into a class structure (that I want to use to hydrate a XML document).
The XML document looks like this:
xml <?xml version="1.0" encoding="utf-8"?> <artists xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns="http://www.spotify.com/ns/music/1">
I would like to perform an audit as part of a unit test that uses reflection to verify some assumptions, the basic-psuedo code for this would be as follows:
I know about VSTO/VSTA, and I also know that some VBA functionality (with .NET syntax of course) can be done in .NET. There is definitely a learning curve going from VBA to .NET without VSTO. My question though is, can everything that is done in VBA somehow be recreated in .NET without VSTO?
The reason is because I am converting my VBA application into .NET for several reasons: I want to take advantage of OO, my class libraries will be better available for use, and for fun. I wouldn't be too happy if I got so far in only to learn of some limitations.
If I have code like this (C# or VB.Net does not matter)
Dim e As IEnumerable(Of XElement) = _ From s In _dataSourceSettings.Elements _ Where s.Attribute("name").Value = toInsert.Attribute("name").Value If e.Count > 0 Then e.Remove() End If
How do I get now new _dataSourceSettings without element that I removed?
I am writing a INSERT Statement which will INSERT data into a Access 97 DB.Everytime i run the Statement from my VB.NET Code i always get Error in INSERT SyntaxI have narrowed it down to one DB Field - INSERT INTO TEMP (Size) VALUES ('" & varSize & "') - I have taken all the other variable out.
Is the fieldname "Size" a reserved name or anything in Access 97 and is there a way round this so my whole statement will work including the Size part?
I have some old VB6 code which was written by someone else who is doing the same insert but instead of INSERT they have created a VB6 RecSet and set all the values then used RecSet.Update to insert the row of data. Is there a VB.NET version of RecSet and Update.
I am writing a program that rolls those crazy many-sided dice for use in fantasy games, and I have come to a point in my work where I am completely stumped. I am hoping that some of the more seasoned VB programmers on these forums might be able to point me in the right direction.
If this explanation gets a bit lengthy, please forgive me; I tend to be long winded. The feature I am trying to implement is that every roll result can have one or more "damage types" associated with it, such as "Fire" or "Acid". If I rolled a dice with "Fire" as the type, and the resulting dice roll was a 4, this would result in an output string of "4[Fire]". If there are more than one type, they are separated by commas like "4[Fire,Acid]".
The problem is when performing math while keeping track of these types. For addition and subtraction, there is little problem, "4[Fire]" added to "4[Acid]" is simple "8(4[Fire], 4[Acid])", while "8[Cold]" minus "4[Fire]" will leave "4[Cold]". Still with me? The problem comes into play when we multiply or divide rolls with types together. If we multiply "4[Fire]" and "4[Acid]", we get "16[Fire,Acid]" which is different than either "Fire" or "Acid" alone. Similarly, if we divide that "16[Fire,Acid]" by "4[Fire]", we are left with "4[Acid]", but if we divide by "4[Cold]" instead we will have "4[Fire,Acid]"
So how do I go about keeping track of this? Some of the dice strings my parser can handle might have dozens of damage types that might need to be figured into the total results. The result should display the total for the entire calculation, with results per damage type tracked separately. Currently I am using code that parses the string data above so that every type name is stored in an array with a integer variable associated with it for the total of that damage type. So, for the string "4[Fire,Ice]" I am storing the info in a variable that holds the 4 and an array that holds "Fire" and "Ice".
I have a program that has the option to create a restore point. My problem is that when you click on it to do so, the program just locks up until it's finished creating the restore point. I have put a separate form on the program and it has a Marquee Progress Bar Control which I downloaded, so the idea is.
User clicks "Create Restore Point"
frmRestore.show Marquee Progress Bar goes on and on while the restore point is created Restore point is done frmRestore.hide
The thing is, when you click create restore point, the form shows and the program just locks up, onces the restore point is created the form hides again. Could this problem be solved with a Background worker? To be honest I'm not completely sure what it does, I mucked around with the controls but can't seem to find anything useful.
I have a program that has the option to create a restore point...My problem is that when you click on it to do so, the program just locks up until it's finished creating the restore point.
I would like to know about timer_tick function.I have one form(form1) with 2 buttons : button1 and save respectively. There are picturebox and a timer as well Upon form1 show, I would like to use ALT + printscreen to perform button1 click. Having said that, when button1 click, it will perform Clipboard.ContainsImage() which is in timer_click. How to ensure that I can use ALT + Printscreen and able to capture the image?
Initially this function will be activated when user press printscreen button and it will show the image captured. However I have amended to add a button to perform the same action (ALT + Printscreen) ---> perform button click..and capture screen:
I am trying to multiply timespan by an integer....
Private Sub wtothrs0_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles wtothrs0.MouseClick Dim temp As TimeSpan = TimeSpan.Parse(ttothrs0.Text) + TimeSpan.Parse(wetothrs0.Text) wtothrs0.Text = temp.ToString
[code]....
i gives the error mes "Input string was not in a correct format."
Can I perform an action when the X (CLOSE BUTTON) will be press?ex.If he pressed the X button then a msgbox will prompt and will verify his action of closing the application.
I have created tool which performs batch processing on files that are selected. The sub routine I have defined in the code, now I want to implement a way through which I can select actions that I want to perform and then perform the actions. For example the list has multiple actions, like Open, Close, SaveAs, Resize, Color Correct etc. I should be able to select what all I want to do on each file and then perform this actions. Someone suggested me using delegates for this, but I cant use that since all my functions have different parameters. Ither option I had is to use a nested IfElse or Switch to determine which action is selected and call function according to it, but thats to heavy I think, is there any optimized a better way to do this.???
I am pretty new to using LINQ and have been trying it out querying my strongly typed DataTable. I have managed to perform a 'Select' ok but was wondering if someone can point me in the right direction to do Insert and Updates. I'm not sure if LINQ is best doing an insert at all?
My Select code is as follows:
Dim results = From myRow In _dt.AsEnumerable() _ Where myRow.Language_key = Lang And _ myRow.Section_key = SectionKey And _
im using an open source backup tool and im going to add extra functions. [Code] All in all im wondering how i can incorporate "sleep" into sleeping until the selected time, and then performing the backup.
I have an asynchronous task that is executing a function. The function does not contains any looping statements, but instead it is executing series of sql commands on sql server. Now, i have a button on my window that can cancel these sql operations. In other words, cancel the whole asynchronous task.
I know that this technique will require CancellationTokenSource and CancellationToken to cancel the task, but i've seen many examples on the internet and all of them are showing that the function that task is executing contains loop statements in which they are checking for IsCancellationRequested boolean property. But in my case, it is not so. My function does not have any loop statements in which i can do a check on this boolean property.