右インデントタブの置換について

[8371]右インデントタブの置換について 投稿者:案山子 投稿日:2014/09/16 07:14:06
お世話になっております。
ExtendScriptで構文を書くとして
右インデントタブを追加したい場合、
どのように指定したらよいのでしょうか?
+"~y"あたりでやって見たのですが、どうも違うようです。
お分かりでしたら、お願い致します。
[8372]Re: 右インデントタブの置換について 投稿者:案山子 投稿日:2014/09/16 07:16:50
大事なことを忘れておりました。CS6使用です。
[8373]Re: 右インデントタブの置換について 投稿者:流星光輝 投稿日:2014/09/16 09:57:29
右インデントタブをScriptで入力したいということですよね。
app.selection[0].contents='●\u0008●';
みたいにUnicode値を直接記入すれば良いと思います。
[8376]Re: 右インデントタブの置換について 投稿者:案山子 投稿日:2014/09/16 16:03:27
ありがとうございます。
望み通りの結果を得ることが出来ました。
[8377]Re: 右インデントタブの置換について 投稿者:案山子 投稿日:2014/09/17 08:04:13
調べ直してみたところ、JavaScriptのUnicodeエスケープ文字の一覧には、
バックスペース \u0008、タブ \u0009とあります。
私の発想では、バックスペース=右インデントタブに結びつける事は不可能でしたが、
右インデントタブ=\u0008というのは、どこかに資料があるのでしょうか?

それと、追加で申し訳ないのですが、入力のない空白は指定可能でしょうか?
例)あああ(タブ)いいい(タブ)<空白>(タブ)えええ
この空白をJavaScriptで指定し、●で埋めたい場合、
if(配列[2]=""){処理};とかでは上手くいかないようです。
Excel側で処理していますが、JavaScript側で処理する方法がお分かりでしたら、宜しくお願い致します。
[8378]Re: 右インデントタブの置換について 投稿者:流星光輝 投稿日:2014/09/17 09:21:09
>右インデントタブ=\u0008というのは、どこかに資料があるのでしょうか?

画像添付します。私は情報パネルで値を得ています。


>if(配列[2]=""){処理};とかでは上手くいかないようです。

比較演算子は合っていますか?

単純に
var hoge="あああ(タブ)いいい(タブ)<空白>(タブ)えええ"
hoge.replace(/\t\t/g, '●');
とかではダメなんでしょうか。

attached image
[8379]Re: 右インデントタブの置換について 投稿者:案山子 投稿日:2014/09/17 18:12:04
情報パレットの値の件、とても参考になりました。
思いつかなかったです。ありがとうございました。

空白の件は、例えば、未入力項目のあるExcelの表をコピー後の処理を前提にしています。
""で空白(未入力)が選択出来ないのは、こちらの使い方が誤っているようですので
もう少し、調べてみます。あ、条件式=少ないですね。書き間違えました。
お教え頂いた hoge.replace(/\t\t/,"\t●\t");試してみました。
ただ、前後にタブがない行頭と行末は、置換出来ないようです。
Excel側の検索と置換ですぐに出来ることなので、何とかなるのですが、
Excelファイルを読む込む自動処理の場合、
どうやっているのかと思い質問させて頂きました。
添付画像の上が下に置換したいと思っております。

attached image
[8380]Re: 右インデントタブの置換について 投稿者:流星光輝 投稿日:2014/09/18 02:44:17
書いてみました。(データ部分が長くて見づらいと思います。ごめんなさい。


#target indesign
// InDesignでtextFrameを1つ選択してから実行
var a="あああ\tいいいい\tうううう\t\t\r\tいいいい\tうううう\tえええ\tおおお\rあああ\t\t\tえええ\tおおお\r\tいいいい\tうううう\tえええ\tおおお\rあああ\tいいいい\t\t\tおおお\r\t\tうううう\tえええ\tおおお";
while (new RegExp("\t\t").test(a)){
a=a.replace(/\t\t/gm,"\t●\t");
}
var a=a.replace(/^\t/gm,"●\t").replace(/\t$/gm,"\t●");
app.selection[0].parentStory.contents=a;


※敢えて「表になるペーストをしない」と解釈しました。
実際にInDesign上に文字列としてコピペした後のデータで処理するなら書き換えて下さい。
[8381]Re: 右インデントタブの置換について 投稿者:案山子 投稿日:2014/09/19 09:22:23
お世話になります。お手数をお掛けしました。
スクリプトさくっと動いてくれましたが、やはり簡単にはいかないん事なんですね。
Excelはセルベースだからその辺の違いなのかもしれませんね。参考になりました。感謝申し上げます。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)