ソートがおかしいNo.07801
colder さん 13/03/07 15:49
 
colderです
ソートがいろいろおかしいです。
現在は自作のソートモジュール(開発キットに含まれているソートの改造版)を使って
いるので個人的には問題ないですが一応報告します。

・小数点で始まる数がうまくソートできない(Shift-JIS順のときはソートしない)
テストデータ
 .12
 .45
 .65
 .27
 .67
 .58
 .89
・指数部がマイナスのとき安定でない
テストデータ
 0.000000001230e-1
 0.00000001230e-2
 0.0000001230e-3
 0.000001230e-4
 0.00001230e-5
 0.0001230e-6
 0.001230e-7
 0.01230e-8
 0.1230e-9
 1.230e-10
 12.30e-11
 123.0e-12
 1230.0e-13
 12300.0e-14
 123000.0e-15
 1230000.0e-16
 12300000.0e-17
 123000000.0e-18
 1230000000.0e-19
 12300000000.0e-20
 123000000000.0e-21
 1230000000000.0e-22
・値が極端に大きいとき結果がおかしい(プラス/マイナス/小数点も計算オフ)
テストデータ
 1234567890
 2345678901
 3456789012
 4567890123
 5678901234
 6789012345
 7890123456
 8901234567
 9012345678
・極端に差が小さい数があるとき結果がおかしい(Shift-JIS順のとき)
テストデータ
 0.1231354654234567891
 0.1231354654234567892
 0.1231354654234567893
 0.1231354654234567894
 0.1231354654234567895
 0.1231354654234567896
 0.1231354654234567897
 0.1231354654234567898
 0.1231354654234567899
・特定のパターンで遅くなる(数万行になると同規模のランダムなデータと比べて明
らかに遅いです)(32bit版)
テストデータ
 1
 3
 ... 奇数列
 2
 4
 ... 偶数列
環境 win7 秀丸v8.30β27

[ ]
RE:07801 ソートがおかしいNo.07802
秀丸担当 さん 13/03/07 16:28
 

バグ情報ありがとうございます。
その通りでした。
前の修正でおかしくなってしまっていました。
調べて修正させていただきます。

[ ]
RE:07802 ソートがおかしいNo.07803
colder さん 13/03/07 16:40
 
colderです
お願いします。
ひとつ報告漏れがありました
・タブで始まる行が空行よりも前になります。

[ ]
RE:07803 ソートがおかしいNo.07805
秀丸担当 さん 13/03/07 17:34
 

β26での修正が全然うまくいっていませんでした。
すみません。
早めにβ28で修正しました。

>・タブで始まる行が空行よりも前になります。

この点については、別の文字として比較され、文字コードが低いので以前からそ
うだったと思います。
「連続したタブ文字/空白文字を1つの空白文字であるかのようにして比較する」
がONだと同じになると思います。

[ ]
RE:07805 ソートがおかしいNo.07806
colder さん 13/03/07 20:26
 
colderです。
>>・タブで始まる行が空行よりも前になります。
>
>この点については、別の文字として比較され、文字コードが低いので以前からそ
>うだったと思います。
>「連続したタブ文字/空白文字を1つの空白文字であるかのようにして比較する」
>がONだと同じになると思います。

例が悪かったようです。
タブは関係ないです。現在のソートだと改行文字(\r)も比較対象になっていて、たと
えば
1,2,3
1,2
1,2,3
1,2
こんなデータでCSVモード、2番目のフィールドでソートした場合、
3番目のフィールドがある行が前にくるように並べ替えられてしまいます。
(2番目までしか無い行は改行文字も比較対象になっているため)

あまりにも細かい要望なので無視していいです。

[ ]
RE:07806 ソートがおかしいNo.07808
秀丸担当 さん 13/03/08 10:12
 

>タブは関係ないです。現在のソートだと改行文字(\r)も比較対象になっていて、たと

確かにその通りでした。
\rを比較対象とすることは意味が無いので、比較しないように修正させていただ
きます。

[ ]