記号に囲まれた文字数カウントNo.08211
ニコ さん 16/08/16 14:59
 
「」に囲まれた文字列を下記のように改行しようと考えています。


あああ「文字列」あああ

 ↓

あああ

☆文字列☆

あああ


-----------------------------------------------------------
gofiletop;
 while( 1 ) {
     searchdown "(「)(?!\\n)", regular;
     if( !result ) break; {
         insertreturn;
    insertreturn;
     }
 }
gofiletop;
 while( 1 ) {
     searchdown "(」)(?!\\n)", regular;
     if( !result ) break; {
         right;
         insertreturn;
    insertreturn;
     }
 }

replaceall "^(?#maxlines:10)\n+","\n",regular;
endmacro;
-----------------------------------------------------------
上記が私が作成致しましたマクロです。
※つっこみ所満載ですが、とりあえす動きます(汗
文字数制限無しで「」に囲まれた箇所を改行します。


ここから「」に囲まれた文字列が40文字以上で改行できるようにしたいと考えていま
す。※全角1文字、半角0.5文字計算
逆に文字列が40文字に満たない場合、改行しないようにしたいです。

お力をお貸し頂けますと幸いです。

[ ]
RE:08211 記号に囲まれた文字数カウントNo.08212
ニコ さん 16/08/16 15:01
 
>「」に囲まれた文字列を下記のように改行しようと考えています。
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>お力をお貸し頂けますと幸いです。


すみません訂正です。

>あああ「文字列」あああ
>
> ↓
>
>あああ
>
>☆文字列☆
>
>あああ

とか書いてますが

あああ

「文字列」

あああ

の間違いです。(滝汗



[ ]
RE:08211 記号に囲まれた文字数カウントNo.08218
h-tom さん 16/08/16 17:08
 

h-tom です。

>ここから「」に囲まれた文字列が40文字以上で改行できるようにしたいと考えていま
>す。※全角1文字、半角0.5文字計算
>逆に文字列が40文字に満たない場合、改行しないようにしたいです。

1)setcompatiblemode を使って、検索で範囲選択するように設定
2)検索「〜」を検索
3)charcount で、範囲選択内の文字数をカウント
 検索時に、"「」"を含めないなら、40文字で判定。
 検索時に、"「」"を含めるなら、40+2文字で判定する。
4)判定文字以上なら、検索結果の前後に改行を追加。

という流れで処理可能でしょう。

charcount は引数の設定次第で
> ※全角1文字、半角0.5文字計算
も可能です。

[ ]
RE:08218 記号に囲まれた文字数カウントNo.08221
ニコ さん 16/08/16 18:36
 
>
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>も可能です。

ご返信ありがとうございます。
頂いたヒントをもとに考えてみます。
行き詰ったらまた質問するかもしれません。申し訳ないです。

[ ]
RE:08211 記号に囲まれた文字数カウントNo.08222
colder さん 16/08/16 18:48
 
colderです。
>ここから「」に囲まれた文字列が40文字以上で改行できるようにしたいと考えてい
>ます。※全角1文字、半角0.5文字計算
>逆に文字列が40文字に満たない場合、改行しないようにしたいです。
かなり強引な方法ですが、一発で置換する方法があります。
まっとうな方法ではないのでお薦めできませんが。(そんな方法を紹介するなという
ツッコミはなしで)
setencode 8,0;
replaceallfast "\x81\x75.{80,}?\x81\x76(!?\\n)", "\\n\\0\\n", regular;
setencode 1,0;
endmacro;

[ ]
RE:08222 記号に囲まれた文字数カウントNo.08239
ニコ さん 16/08/17 15:09
 
>colderです。
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>endmacro;

ありがとうございます。
このような方法もあるのですね。
奥が深いです。

[ ]