株銘柄コード 重複行を削除するマクロをNo.21654
emc827 さん 06/08/04 01:59
 
winxp pro sp2, hm5.18
問合せ:
株 銘柄コードと銘柄名称 fileがあります。
銘柄コード:上位4桁固定
銘柄コードをチェックして、重複行を削除するマクロを探しています。
最初に出てきた行を残し、後から出てきた行を削除します。

銘柄コード.txt
6502,東芝
6502,(株)東芝 ----------削除
6784,プラネックス
3778,さくらインターネット
3778,さくらインターネット株式会社-----削除
8991,ライフステージ
........... 

よろしくお願いします。

[ ]
RE:21654 株銘柄コード 重複行を削除するNo.21657
アルビレオ さん 06/08/04 03:29
 
ユーザーのアルビレオです。

マクロ変数サイズの制約からコードは5桁が限界、あまり応用が利きません。
そのかわり何度も検索を繰り返すよりも高速です。(たぶん)


//最後の行が改行されていなかったら改行を挿入
gofileend;
if(column > 0) insert "\n";
//1行目からスキャン
#line = 1;
while(#line < linecount2){
  //先頭4文字を数値に変換
  #code = val(gettext2(0, #line, 4, #line));
  if(#code == 0){
    #line = #line + 1;//先頭4文字が数値ではないならスキップ
  }else if(#a[#code] == 0){
    #a[#code] = 1;//初出コードなら記録
    #line = #line + 1;//次の行へ
  }else{
    movetolineno 1,#line;//重複行の先頭へカーソル移動
    deleteafter;//重複行を削除
    delete;//改行を削除
  }
}

[ ]
RE:21657 座布団 10枚!No.21658
emc827 さん 06/08/04 04:40
 
株コードの場合、上位4桁固定です。
早速、testしてみました。これで十分です。
ありがとう御座いました。

[ ]
RE:21657 株銘柄txtから銘柄コードを取りNo.21708
emc827 さん 06/08/22 05:10
 
emc827です。
先日、マクロを作って頂きありがとう御座いました。
関連マクロのお願いです。
Q:
株銘柄.txtから銘柄コードを取り出すマクロをお願いします。
銘柄コード:上位4桁固定。
順番はそのままです。

銘柄コード.txt
8946,陽光都市開発 ----------->8946
8854,日住サービス ----------->8854
9005,東京急行電鉄 ----------->9005
4324,電通         ----------->4324
........... 

よろしくお願いします。

[ ]
RE:21708 株銘柄txtから銘柄コードを取りNo.21709
三月 さん 06/08/22 06:20
 
>Q:
>株銘柄.txtから銘柄コードを取り出すマクロをお願いします。
>銘柄コード:上位4桁固定。
>順番はそのままです。
>
>銘柄コード.txt
>8946,陽光都市開発 ----------->8946
>8854,日住サービス ----------->8854
>9005,東京急行電鉄 ----------->9005
>4324,電通         ----------->4324
>........... 
>
マクロではないですが、置換ダイアログで
・検索「^\f....\f.*$」
・置換「\1」
・正規表現にチェック
で先頭の4文字だけにできたりしますがいかが?
先頭が銘柄コード以外のものがある場合は不定ですが。

あえてマクロにするなら
replaceall "^\\f....\\f.*$","\\1",regular;
でしょうか。

[ ]
RE:21709 座布団10枚No.21710
emc827 さん 06/08/22 07:06
 
testで確認しました。
マクロがいいです。
ありがとう御座いました。





[ ]