datafeilen Skrevet 17. desember 2006 Skrevet 17. desember 2006 Hei! Ifb. med en sorteringsalgoritme dukket det opp noe som jeg oppfattet som merkelig. Laget et enkelt eksempel av det : using System; using System.Collections.Generic; using System.Text; namespace SorteringsTestNorsk { class Program { static void Main(string[] args) { string[] mineOrd ={ "aa","ab", "ac" }; skrivut(mineOrd,"Uten sortering"); // vi sorterer Array.Sort(mineOrd); skrivut(mineOrd,"Etter sortering"); } static void skrivut(string[] ordene,string kommentar) { Console.WriteLine("\n" + kommentar); foreach (string ord in ordene) { Console.WriteLine(ord); } } } } Uskrift : Uten sortering aa ab ac Etter sortering ab ac aa Press any key to continue . . . Jeg trodde faktisk at 'aa' kom før 'ab' og 'ac'.. Det virker for meg som om 'aa' = å... Er dette en bug..eller en feature..i .Net? Er det mulig å sette en language settings som overstyrer dette?
Gråskjegg Skrevet 17. desember 2006 Skrevet 17. desember 2006 Feature. Velg en annen CultureInfo for å sortere på andre språk. - grå -
datafeilen Skrevet 18. desember 2006 Forfatter Skrevet 18. desember 2006 Takk. Måtte sette hele tråden til et nytt språk..Likte ikke dette - 'aa' <> 'å' også på norsk så det burde ikke vært slik. All sortering med 'aa' bli jo fullstendig bak mål.
Manfred Skrevet 18. desember 2006 Skrevet 18. desember 2006 Sånn funker det i windowsen din, hvis du har norsk språk også...
datafeilen Skrevet 18. desember 2006 Forfatter Skrevet 18. desember 2006 Jo - skjønner at default setting på denne settes av installasjonen på OS'et. Har forresten også funnet at en kan sende en Icomparer sammen med sort'n. Eks: Array.Sort(mineOrd, Comparer.DefaultInvariant); Her settes den til standard - altså slik at aa kommer foran ab - og en slipper å dynge ned hele tråden med en annen CultureInfo. Jeg mener uansett at dette heller mer mot en bug, enn feature - da default sortering for norsk installasjon burde være slik at aa går foran ab - men dette blir vel mer en språkdiskusjon - Tenk deg f.eks skulle sortere bilmerker: Saab, Skoda..Der blir jo Skoda komme før Saab i listen om en bruker Norske default instilling...(Noen burde hinte Saab importøren om MS sin implementasjon av .NET ;-)). Når en er klar over hvordan dette kan håndteres er det jo lettere å se på det som en feature...
j000rn Skrevet 18. desember 2006 Skrevet 18. desember 2006 (endret) Jeg mener uansett at dette heller mer mot en bug, enn feature - da default sortering for norsk installasjon burde være slik at aa går foran ab - men dette blir vel mer en språkdiskusjon - Tenk deg f.eks skulle sortere bilmerker: Saab, Skoda..Der blir jo Skoda komme før Saab i listen om en bruker Norske default instilling...(Noen burde hinte Saab importøren om MS sin implementasjon av .NET ;-)). Når en er klar over hvordan dette kan håndteres er det jo lettere å se på det som en feature... 7527943[/snapback] Hva du mener er en bug eller feature er egentlig ganske likegyldig. Det ER en feature. Microsoft følger her Norske rettskrivningsregler. Akuratt som hva alle andre leverandører gjør (testet Oracle, MySQL, Java, etc i det siste?). I Norge vil AA bli sortert som Å. Spør læreren din på barneskolen så skal du nok se han er helt enig. Andre land har også forskjellige regler for sortering, det er ikke bare Norge. Jeg heter forresten Aakre til etternavn. På norske lister kommer jeg bakerst, og på f.eks. engelske kommer jeg først. Sånn er det bare. Du får heller klage over Norsk Språkråd. Det er nok de som har en "bug", ikke Microsoft Endret 18. desember 2006 av jorn79
datafeilen Skrevet 18. desember 2006 Forfatter Skrevet 18. desember 2006 Heisan! Det er nok ikke så enkelt. Se her : http://www.ordnett.no/Alfabeter.html Om dette er korrekt vites ikke - men ut fra dette så er regelen at f..eks Saab kommer foran Skoda, mens Aase blir tolket som Åse og sortert deretter. Mao. en må kunne håndtere begge - og det er det jo mulig å få til. Poenget var hva som settes default. Og det normale - ved tvil - er at en skal ,ifølge nettsiden, bruke streng alfabetisering. Mao. skal en faktisk sett aa foran ab om en er i tvil. MS har valgt default den andre versjonen . Jeg var ikke klar over dette når denne tråden ble startet. Testet mot en MySQL base og tok en insert på en del navn. Tok så en ordinær select med order by navn. Her fikk jeg faktisk opp en 'aa' foran 'ab'. Men dette får bli nok sidesprang for nå
j000rn Skrevet 19. desember 2006 Skrevet 19. desember 2006 Heisan! Det er nok ikke så enkelt. Se her : http://www.ordnett.no/Alfabeter.html Om dette er korrekt vites ikke - men ut fra dette så er regelen at f..eks Saab kommer foran Skoda, mens Aase blir tolket som Åse og sortert deretter. Mao. en må kunne håndtere begge - og det er det jo mulig å få til. Poenget var hva som settes default. Og det normale - ved tvil - er at en skal ,ifølge nettsiden, bruke streng alfabetisering. Mao. skal en faktisk sett aa foran ab om en er i tvil. MS har valgt default den andre versjonen . Jeg var ikke klar over dette når denne tråden ble startet. Testet mot en MySQL base og tok en insert på en del navn. Tok så en ordinær select med order by navn. Her fikk jeg faktisk opp en 'aa' foran 'ab'. Men dette får bli nok sidesprang for nå 7531156[/snapback] Du har nok rett i sorteringen Men ISO standaren sier at AA skal sorteres som Å. At MySQL'n din ikke gjør det er vel fordi du har satt feil collation.
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå