Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


sortering

Postades av 2005-11-04 13:05:44 - Axel Nilsson, i forum vb.net, Tråden har 4 Kommentarer och lästs av 631 personer

Hej
Söker lite hjälp ang sortering
Quicksort funkar ju bra om man har en kolumn som skall sorteras.
Men säg att man har följande struktur

Patient Weight Height Name
4 60 1.45 Kalle
2 70 1.70 Bo
10 55 1.55 Maria


Då gäller att det finns ett inbördes förhållande mellan kolumnerna. Och detta är ju faktiskt mer vanligt än ovanligt. Använder jag quicksort så kan jag bara köra det på en kolumn i taget, och då uppstår ju fenomen som att patient 2 för vikten 55, höjden 1.45 och namnet Bo.
Jag söker efter en bra algoritm som sorterar x antal kolumner men ej kastar om inbördes förhållandet.

Jobbar mkt med sas, och där finns en procedur som heter proc sort
Synataxen hade i fallet ovan kanske blivit:
proc sort data=testdata;
by patient weight height name;
run;

eller varför inte
proc sort data=testdata;
by name patient;
run;

ja, ni fattar vad jag är ute efter; en motsvarande "procedur" i vb, vb net
Jag har buffrat allt i minnet i form av dynamiska arrayer, så den bör ju kunna ta en array + sorteringordning (variabelnamn) + ascending eller descending etc som argument. Självklart måste missing värden och olika datatyper (text, numerisk) hanteras.

någon?

mvh


Svara

Sv: sortering

Postades av 2005-11-04 14:17:28 - Ola Lindfeldt

Den enklaste lösningen jag kan komma på:
Dunka in allt data i ett Dataset, helst typat.
Använd en DataView för att sortera på de kolumner du vill.
<code>
Dim myDataView As DataView
myDataView = DataTable1.DefaultView
' By default, the first column sorted ascending.
myDataView.Sort = "State, ZipCode DESC"
</code>


Svara

Sv: sortering

Postades av 2005-11-04 14:36:59 - Marcus Gus

I ett projekt har jag en massa objekt i arraylist och använder dess sorteringsmöjligheter för att få det jag vill ha.


Ursäkta c#-koden, men det funkar likadant med vb.net
<code>
//klassen

arraylist _list = GetALotOfStuffDataInRandomOrder();
_list.Sort(new CompareNames());
//Sorted by Lastname, Firstname


//Objektet Stuff, lägg märke till CompareTo-funktionen
public class Stuff
{
private string _firstName = "";
private string _latsName = "";

public string FirstName
{
get
{
return _firstName;
}
set
{
_firstName = value;
}
}

public string LastName
{
get
{
return _latsName;
}
set
{
_latsName = value;
}
}

public int CompareTo(object x)
{
Stuff _otherObject = (Stuff)x;

if (LastName.CompareTo(_otherObject.LastName) == 0)
{
if (FirstName.CompareTo(_otherObject.FirstName) == 0)
{
return 0;
}
else
{
return FirstName.CompareTo(_otherObject.FirstName);
}
}
else
{
return LastName.CompareTo(_otherObject.LastName); //borde vara 0 äh... ändrar inte... ;-)
}
}

}

// Comparenames som ärver ifrån ICompare
public class CompareNames : IComparer
{
int IComparer.Compare(object x,object y)
{
Stuff SpecX = (Stuff)x;
CastModel.Specification.SpecificationPos SpecY = (Stuff)y;

return SpecX.CompareTo(SpecY);
}
}
</code>

Vet inte om det är bästa eller snabbaste metoden, funkar iaf perfekt i det projektet. Man kan ju lägga till CompareTo-metoder för det man vill sortera på Finns även en artikel på Codeproject som hanterar sortering som var riktigt bra. Kanske inte hjälper dig så mycket men kan kanske ge uppslag till lite att söka på?

Edit: Såg Ola's svar och av trådstartarens inlägg så förutsätter jag att han använder objekt upplagda i arrayer, används datatables så bortse från mitt inlägg.


Svara

Sv: sortering

Postades av 2005-11-07 09:49:26 - Axel Nilsson

tack.
har löst det nu!


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
517
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies