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


sortera om man har flera kolumner

Postades av 2005-11-03 12:24:41 - Axel Nilsson, i forum visual basic - allmänt, Tråden har 4 Kommentarer och lästs av 723 personer

Hej
Söker lite hjälp ang sortering (vb 6).
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 visual basic.
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: sortera om man har flera kolumner

Postades av 2005-11-04 13:47:04 - Andreas Hillqvist

Du kan använda ettt disconnected recordset.


Svara

Sv:sortera om man har flera kolumner

Postades av 2005-11-04 13:55:23 - Axel Nilsson

vill göra det på riktigt sätt. recordset blir slöa. det kan vara många rader med mycket text och många kolumner..

det skall alltså vara så här att man skall kunna ge en sorteringsorder.
om vi tar exemplet

Age Initials
12 AL
12 AB
13 CG

så skall sortering ske på age och initial (alltså båda två, först age sen initial om det tillåter sortering)

dvs om andra sorteringsordningen tillåter inbördes sortering utan att första sorteringsordningen störs, så skall den sortera efter detta. det är alltså skillnad från att bara sortera på första ordningen och låta andra sort.ordningen "hänga med"

klassisk generall sortering alltså.


Svara

Sv: sortera om man har flera kolumner

Postades av 2005-11-04 15:25:26 - Andreas Hillqvist

Function NewRecordset() As ADODB.Recordset
Dim rs As ADODB.Recordset
    Set rs = New ADODB.Recordset
    rs.Fields.Append "Age", adInteger
    rs.Fields.Append "Initials", adVarChar, 5
    rs.Open
    Set NewRecordset = rs
End Function

Sub FillData(rs As ADODB.Recordset)
Dim I As Long
    For I = 1 To 1000
        rs.AddNew Array("Age", "Initials"), Array(I, CreateInitials)
    Next
    rs.MoveFirst
End Sub

Function CreateInitials() As String
    CreateInitials = Chr(65 + Int(Rnd * 26)) + Chr(65 + Int(Rnd * 26))
End Function


Sub TestRecordset()
Dim rs As ADODB.Recordset
    Set rs = NewRecordset
    
    FillData rs
    
    rs.Sort = "Initials, Age DESC"
    
    Do Until rs.EOF
        Debug.Print rs(0), rs(1)
        rs.MoveNext
    Loop
    
    
End Sub


Svara

Sv:sortera om man har flera kolumner

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

tack för hjälpen!


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 722
27 958
271 751
341
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