Sort An Array Of Structures In .NET?
Nov 17, 2009I have an array of structures:
Structure stCar
Dim Name As String
[code].....
I have an array of structures:
Structure stCar
Dim Name As String
[code].....
I've learned about and understand HOW to do a bubble sort (theoretically), but I can't seem to wrap my head around how to use a bubble sort with array structures. I'm supposed to be able to sort the inputted student information (via textfile) using bubble sort and display the result in a listbox. Buttons for Sort by last name, sort by gpa, & sort by letter grade.
[Code]...
Sub Sort()
ReDim RollsCC(NumOfPlayers - 1)
For N As Integer = 0 To (NumOfPlayers - 1)[code]....
Here I am creating a temp single dimensional array, merging my 2d array into it, and then attempting to sort it by Rolls(N,1), which is a integer 1-6, Everything seems to be working right with the exception of this.
RollsCC.Sort(RollsCC, 0, 1)
How would one specify a numeral sort based on the first character in the string? im aware that I am switching Rolls(n,1) and Rolls(n,0) information during the sort.
I am using the Array type .Sort function to sort my array.By default it places the result Array into Ascending order Least to Greatest How do I change that to Descending order Greatest to Least?and How do I change it to Closest to logic? or does that not exist?Assume there is an Array of Numbers 0,13,21,-2,4,5,1.34 and I want them to sort closest to 0 or some other arbitray value; the Output should look similar to:
0,1.34,-2,4,5,13,21
I have a Structure, and I am having trouble initialising it. Specifically when I try to populate the Vector3 variables, it tells me that they are Nothing, so I need to make them New when the array of this structure is declared.[code]Structures cannot declare a non-shared 'Sub New' with no parameters.I have no parameter to supply, and this will be an array so I'm not even sure how I would supply it.The second option to fix the error is to make the Sub New shared, but then I get other errors: Cannot refer to an instance member of a class from within a shared method or shared member initializer without an explicit instance of the class.Does anyone know how I can resolve this. My end goal is to have an array of this structure type with the Vector3s ready to use.
View 6 RepliesI need to have an Array of UDTs(Structures). Elements have to be added (at end) and removed (from anywhere). The different values of the elements need to be changeable.
I know how to implement it as an oldstyle array, but wouldn't it be better to implement as a List ( of T)? and if yes is such a procedure possible?[code...]
I have 2 Structures
Public Structure One
Public ItemOne As String
Public ItemTwo As Integer
End Structure
[Code]...
Results In an Unhandled exception. Bad Record Length. and then If I close it and reopen it I get an 'Unable to read beyond end of stream' error. So what is the best way to save an array of structures? Binary Reader/Writer? and why does this way not work (Even if its derived from VB6)
I have a class file which contains a structure like this.
<StructLayout(LayoutKind.Explicit)> _
Public Structure SampleStructure
<FieldOffset(0)> Public field1 As Int16
[Code]......
how to go about getting data populated from a data grid view to an array of structures? I have a data grid view with 6 fields and 10 records that match elements in my array. I declared a list of songs based off of my structure Song.
[Code]....
Is an ArrayList the same thing as a Structure (i.e. 'array of records')? If they're not the same think, what't the difference?
View 3 RepliesI am getting an error when helping someone with their code. They are trying to create an array of Items, but gets an error at ItemStruc(counter).ItemName = Contents(0)
I am not sure why. >_>
Structure is as follows:
public structure Item
dim itemName as String
[Code].....
�On load read data from units.txt into an array of structures;�Allow the user to choose a major and then add units to a study plan.Note your program must not allow the user to add units not in the major and a unit can only be added once to a study plan;�Save student first name & last name, student number, unit codes to a user selected file (e.g. fred.txt); �Allow the user to select a student file to load using a common dialog control ;�Display the units for that student.
The program must have the following features:�It must use a common dialog control for saving data;�The program must have at least one general procedure; �The program must demonstrate the use of an array (array of structures recommended).I've attached a copy of the text file needed to be loaded.
I am trying to get the data from the text file to load into an array of structures and then be displayed in a listbox on FormLoad with no luck, all I get is a blank listbox.
Code:
Public Class frmMemList
'Create a structure to which data from text file MEMBERPHONES.TXT will be read.
Structure MemberList
[code]....
I am really struggling lately for some reason. I do not know why, but I can not get simple programming code to work, usually due to simple mistakes. Anyway, enough about that.Here is my code, I am trying to get the data from the text file to load into an array of structures and then be displayed in a listbox on F
Public Class frmMemList
'Create a structure to which data from text file MEMBERPHONES.TXT will be read.
Structure MemberList
[code].....
I am trying to create and initialize an array of structures of a fixed size. Each struct will be populated when a button is clicked. Here is an example of my struct:
public structure buttonStruct
dim x() as Boolean
dim y() as Boolean
[code]....
In my form_load function I am declaring the array of structs and:
Dim BtnStruct(15) As ButtonStruct
BtnStruct(0).Initialize()
[code]....
Whenever a specific button is clicked, I am trying to collect data and store it in the respective struct and so for example, if button 1 is clicked then I will store the data associated with button 1 into BtnStruct(0). The position of the button is stored in a public variable called BtnNum. If I attempt to store information in the struct inside another function as follows, I receive an error
BtnStruct(BtnNum).x(pos - 1) = temp "btnstruct is not declared. it may not be inaccessible due to its protection level"
I need to create a collection of millions of objects, each object has 3 double and one integer fields.If I remember (after more than 20 years without using C) in C you would allocate enough memory using a struct and an array, and read all the file content in one shot.In VB I created a class with the 4 members, and this constructor:
Sub New(BR As IO.BinaryReader)
X = BR.ReadDouble
Y = BR.ReadDouble
[code]....
I coded anything but I remember when using VB6 or Pascal/Delphi we used to define records/ structures with fixed length fields, then write those structures to a file knowing that they would always be the same length. You could then open a particular record within the file or simply find out how many records existed by reading the file length.From what I understand, it seems that such methods are depreciated in VB.NET and such structures are written as a stream.Does it now mean that we can define things like variable length strings and not need to worry about buffers or boundaries?Is it possible to read through such files and pick out individual records? Are there methods of determining how many records that exist in a file? What I'm looking to do is simply store multiple records of a structure in a file then retrieve them into an array so I can manipulate their order by sorting the array and search within the array. This is only a learning project so it is unlikely that the resultant array is going to be large, although if this is not generaly a good method of doing this then it might be interesting to fidn out what is. So far, I have read that they way to write a structure to a file is to "serialises" it and then write the bytes - is this correct?[code]
View 5 RepliesThese are the directions for the assignment.So far I am able to get the file read and printed onto a list box.The book we have for the class does not clearly talk about using the array of structure method with formatting an imported text file.After that I'm pretty much having a bit of trouble with everything else.I know I can figure most of it out but what I'm having a big amount of trouble with is the array of structures that he wants.I know that when I have the file imported that I need to save it temporarily and go through it and at every ":" put it in an array and save that spot and then keep scanning through the file. I know it is going to be a for loop using the index to count through but I'm not sure if how to start it.This is how the text file that he wants sorted out looks.
Ally Gators:Tim Tebow:240:280:250
Ally Gators:Albert Gator:150:175:222
Ally Gators:Joe Cool:195:220:217[code]...........
Correct the problems with this function, and then extend it so that it also returns a usable array of pointers to some structures.
The extended version of this function should: Maintain the same "char *" return type which returns a pointer to a usable, for storing a C string, memory buffer.
In addition, also return a usable array of pointers to structures. This array of pointers is of variable and random length, which must be obtained using GetNumberOfSomeSeqsToGenerate(), which is called, ONLY, from within this new extended version of the function.
The type of these structures and the function that should be used to get these structures are defined as follows:
typedef struct {
char* name; /* '\0'-terminated C string */
int number;
} SomeSeq;
[CODE]...
I'm trying to sort an array based on a structure but whenever I do this, it basically erases all the data in the entire array.I have verified that the array is populated correctly, it is when using array.sort that everything returns blank.
View 6 RepliesI'm using the following code to read in a highscores file with the score written first and the player's name written to the next line, and then display the top 3 scores or fewer if there aren't 3 scores written to the file. A highscores display should have the scores sorted with the highest first so that's what this program tries to implement.
Array.sort() isn't doing a damn thing. In fact, the program's not even reversing the arrays like it should either. I've tested array.sort() this way with the names and scores arrays given explicitly and it works fine. I thought maybe it was still reading the data as string even though it's declared otherwise but it rounds off decimals when I change the array type to Integer so I'm pretty sure it's not that.
I have no idea why reading the data in from a file changes how it's sorted. My teacher didn't understand what was going on either. Does anyone know what's going on here?
Imports System.IO
Public Class Form2
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
[Code].....
best way to sort an array of doubles into a lowest to highest array of the same length.
View 10 RepliesI need to sort an array containing a list of words and search the same using binarysearch. For certain reasons, the word-list must always be sorted using the sorting-rules of "en-US" i.e. American Regional Settings. The code will run under various international Operating Systems and of course this will mean that the word-list will be sorted differently according to the local Regional Settings in use. One problem could arise on a computer/device running with Lithuanian Regional Settings. Why? Because the letter "Y" in most languages is sorted like X-Y-Z while in Lithuanian, the sort order is I-Y-J. This behavior would create havoc to my program.
[Code]...
However, in means of flexibility I believe Guffa's answer is the best one. Why? Let's use another example:In German, the letter Ö is sorted Ö-X-Z while in Swedish and Finnish, the order is X-Z-Ö. In Estonian the sort order is Z-Ö-X. Complicated, isn't it? Guffa's solution will let me force Swedish sorting-oder (changing CultureInfo) on a device running under German Regional settings. Using Comparer.DefaultInvariant with its association to English wouldn't help in this case, probably the letter Ö would end up with O. Therefore my vote will go to Guffa.
I have a structure called 'Scheme' and in my program I want (ideally) an ArrayList of 'Schemes' (so i can add, remove schemes etc.). However, within the 'Scheme' structure, I want to have an ArrayList of 'Item''Item' is another structure. Are there any solutions out there for iterating through these arrays quite easily?
How can I easily add multiple Items to a Scheme and mutliple Schemes to my Scheme array. Code is below. When I try to add Items to a Scheme, I get the 'Object not set to a reference of an object, try the 'New' keyword', but you cannot declare 'New' keywork within a structure.
[Code]...
strtest() = objFile.ReadToEnd.Trim.Replace(vbCr, "").Split(vbLf).Distinct.ToArray
I created this command from a few examples which reads the text from a StreamReader, Trims, splits on EoL, and returns a unique list. My next command is a sort. I couldnt figure out how to add a sort to this command. Its really not that important but I was curious if there�s an easy way.
Additionally if there's a better way to take a text file into an array or collection I'm all ears.
vb.net 2005.
I have profitMarginArray(29,3) <29 is actually a variable, but figured I'd put in a number for the example> and what I need is to retreive elements 0 and 3 sorted on 3 in some way shape or form. The biggest problem is element 3 isn't unique so there could be 5 that have the same value (56.34 for instance) so a sorted list is out.
The current array could look something like
Item1, .34, .75, 54.67
Item2, .32, .75, 57.33
Item3, .29, .5, 42
[Code]....
I'm trying to sort an arraylist the code is below.
the value.sort() is returning the following error - Failed to compare two elements in the array. At least one object must implement IComparable."[code]...
I have the following array structure defined and am having trouble figuring out how to sort it..
Public svrElements() As svrElementRec
Structure svrElementRec
Public ElemName As String
[Code]....
how can i sort an array of points...? elements added out of sequence causing wrong shapes with e.graphics.drawlines.
View 12 RepliesI need to capture the last 5 lines from my "write to log" function so I can add it to a debug email. I can't think of an easy way to do this.
I did think I could have an array with 5 items in it, but I'd still need to shuffle the existing items to add the current data.