シュワルツ変換の不具合
シュワルツ変換の不具合で困っています。
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1959574
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1882190
で質問したものです。
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
&hoge;
sub hoge{
open(o,"hoge.txt");
@all = <o>;
close(o);
for (@all){
($sentence,$filename) = split(/,/,$_);
$score++;
push @hoge, ($score,$_,"<br>\n");
}
@hoge = map {$_->[0]} sort {$b->[1] <=> $a->[1]} map {[$_, split /,/]}@hoge;
print @hoge;
}
というcgiを作成し、実行してみたのですが望んだ処理が出来ません。
hoge.txtは
,123,abc.txt
,456,def.txt
,789,ghi.txt
,123,jkl.txt
,456,mno.txt
,789,pqr.txt
という内容です。
cgiを実行すると
6 5 4 3 2 1 ,789,pqr.txt
,456,mno.txt
,123,jkl.txt
,789,ghi.txt
,456,def.txt
,123,abc.txt
となってしまいスコアが先頭に集まってしまいます。
シュワルツ変換の行を削除すると
6,789,pqr.txt
5,456,mno.txt
4,123,jkl.txt
3,789,ghi.txt
2,456,def.txt
1,123,abc.txt
こうなるのですが、これをシュワルツ変換を用いて
1,123,abc.txt
2,456,def.txt
3,789,ghi.txt
4,123,jkl.txt
5,456,mno.txt
6,789,pqr.txt
と出力させたいのです。
どこをどのように変えればよいでしょうか。
宜しくお願いします。
お礼
御回答ありがとうございます。 御提案された通り、Selection_Range.Range.Selectを、 Selection_Range.Selectに変更すると上手く行きました。 せっかくなので、この際お聞きしたいのですが、 段落の先頭文字を削除する時に、僕はRight関数を使って str = Selection_Range.Paragraphs(x).Range.Text Selection_Range.Paragraphs(x).Range.Text = Right(str, Len(str) - 1) としたのですが、もっと簡単に削除する方法はありますでしょうか? 恐れ入りますが、よろしくお願い致します。