検索して行頭が特定の文字でないときの処No.02877
teru さん 01/12/17 20:18
 
マクロ初心者のteruです。どのようにしたらいいのかわからないので教えてください。

ファイルの中の
2001121211aaaaaaaaaaaaaa〜
bbbbbbbbb
2001121211bbbbbbbbbbbbbb〜
何行か続く・・・

なんていう文字列を先頭が2001で始まらなかった場合に、その上2001で始まる行に連
結するマクロの書き方を教えてください。
単純に言えば2001でなかったら、その行の行頭でBSをするというものです。

そんなの簡単だよ(^-^)という方、ご教授願います。

[ ]
RE:02877 検索して行頭が特定の文字でないNo.02878
tats さん 01/12/17 23:43
 
こんばんわ。tatsです。

少しだけお聞きしたいのですが、

>ファイルの中の
>2001121211aaaaaaaaaaaaaa〜
>bbbbbbbbb
>2001121211bbbbbbbbbbbbbb〜
>何行か続く・・・
>
>なんていう文字列を先頭が2001で始まらなかった場合に、その上2001で始まる行に
>連結するマクロの書き方を教えてください。
>単純に言えば2001でなかったら、その行の行頭でBSをするというものです。

上の条件は、2001以外から始まらなくてはならないのでしょうか?
もし、2以外からであれば、下のマクロでOKだと思います。

gofiletop;//ねんのためファイル先頭より
while(code != eof){
golinetop2;
if(code != 0x32)backspace;
down;
}
endmacro;

どうでございましょうか?

[ ]
RE:02878 検索して行頭が特定の文字でないNo.02879
teru さん 01/12/17 23:52
 
teruです。
tatsさんありがとうございます。

しかし、bbbbbbbbの部分の行頭に"2"がたまにある為
せめて4〜6桁くらいは頭に欲しいのです。


>こんばんわ。tatsです。
>
>少しだけお聞きしたいのですが、
>
>>ファイルの中の
>>2001121211aaaaaaaaaaaaaa〜
>>bbbbbbbbb
>>2001121211bbbbbbbbbbbbbb〜
>>何行か続く・・・
>>
>>なんていう文字列を先頭が2001で始まらなかった場合に、その上2001で始まる行に
>連結するマクロの書き方を教えてください。
>>単純に言えば2001でなかったら、その行の行頭でBSをするというものです。
>
>上の条件は、2001以外から始まらなくてはならないのでしょうか?
>もし、2以外からであれば、下のマクロでOKだと思います。
>
>gofiletop;//ねんのためファイル先頭より
>while(code != eof){
>golinetop2;
>if(code != 0x32)backspace;
>down;
>}
>endmacro;
>
>どうでございましょうか?

[ ]
RE:02879 検索して行頭が特定の文字でないNo.02880
tats さん 01/12/18 00:15
 
またまた、こんばんわ。tatsです。
こんなのは、どうでしょうか?

gofiletop;
while(code != eof){
golinetop2;
if(code == 0x32){
right;
if(code == 0x30){
right;
if(code == 0x30){
right;
if(code == 0x31){
down;
}else{
golinetop2;
backspace;
}
}else{
golinetop2;
backspace;
}
}else{
golinetop2;
backspace;
}
}else{
golinetop2;
backspace;
}
}
endmacro;

[ ]
RE:02880 検索して行頭が特定の文字でないNo.02881
teru さん 01/12/18 00:40
 
すごいです!!感動しました。
しかし、最後の行でどうしてもループしてしまい、処理が中断します。
↓の順番を変えれば完全に終わるのでしょうか?

>golinetop2;
>if(code == 0x32){
>right;
>if(code == 0x30){
>right;
>if(code == 0x30){
>right;
>if(code == 0x31){

[ ]
RE:02878 検索して行頭が特定の文字でないNo.02882
きいろいまふらあ さん 01/12/18 01:37
 
>>単純に言えば2001でなかったら、その行の行頭でBSをするというものです。
>
>上の条件は、2001以外から始まらなくてはならないのでしょうか?
>もし、2以外からであれば、下のマクロでOKだと思います。

「2001」からはじまるということでちょっとだけいじらせていただいて

>gofiletop;//ねんのためファイル先頭より
>while(code != eof){
>golinetop2;
if(gettext(0,y,4,y) != "2001")backspace;
movetolineno 1,lineno + 1;
>}
>endmacro;

なんてのでいかがでしょうか?
折り返しも考慮してみました。

[ ]
RE:02882 検索して行頭が特定の文字でないNo.02883
teru さん 01/12/18 02:31
 
tatsさん、きいろいまふらあさん。
本当にありがとうございました。
ちゃんと終了しなかった原因は僕にありました。

本当にありがとうございます。
いっぱい感謝します。

[ ]