[表示 : 全て 最新50 1-99 101- 201- 2chのread.cgiへ]
Update time : 05/09 19:59 / Filesize : 73 KB / Number-of Response : 245
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【マクロは】帰ってきたVxEditor【DMonkey】



1 名前:名無しさん@お腹いっぱい。 [2007/08/16(木) 21:23:29 ID:0S5jxqyO0]
一年余りの充電期間を経て、まさかの復活を遂げたテキストエディタ
VxEditorの、主にマクロを開発したいスレです。

公式サイト? VxEditorの部屋
 ttp://dr-x.hp.infoseek.co.jp/

ダウンロードページ
 ttp://www.vector.co.jp/soft/win95/writing/se236058.html

参考スレッド‐テキストエディタをまったり語ろう ver.23
 ttp://pc11.2ch.net/test/read.cgi/software/1180879766/


75 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/03(水) 12:26:42 ID:dKEN4SU90]
>>73
file = 'c:\foo\bar.txt'; //ファイル名
fmt = 'yyyy/mm/dd(aaaa) hh:nn:ss'; //日時の書式
if (Window.FileName.toLowerCase() != file.toLowerCase()) { return; }
Date.format = fmt;
Editor.Text += "\n\n"+Date.toString()+"\n";

↑の最初2行をいじってマクロ(拡張子dmsのファイル)として保存して、
メニューのツール->ツール設定->追加から実行ファイルとして指定。
自動実行タブの実行条件で"ひとつのエディタフォームの起動時"にチェック。

これで1行目で指定したテキストを開いた時に日時が勝手に挿入されるので、
あとは指定したファイルをVxEditorで開くショートカットを作ればOK。
txtファイルがVxEditorに関連付けられてるならテキストファイルへの
ショートカットを作成するだけ。

おまけで自動実行使わない場合のマクロ↓

file = ''c:\foo\bar.txt';
fmt = 'yyyy/mm/dd(aaaa) hh:nn:ss';
w = new Window;
e = new Editor;
if (w.FileName != "" || e.Modified) { w.WindowNo = w.Open(); e.WindowNo = w.WindowNo; }
w.FileLoad(file,0);
Date.format = fmt;
e.Text += "\n\n"+Date.toString()+"\n";


76 名前:名無しさん@お腹いっぱい。 [2007/10/03(水) 16:20:41 ID:ZOtXfwxJ0]
任意の行(例えば、3行目と10行目と22行目)を抜き出す事は可能ですか?

77 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/03(水) 18:36:41 ID:dKEN4SU90]
抜き出してどうすりゃいいのか知らんけど、とりあえずalert

var a = new Array(3,10,22);
var el = Editor.Text.split("\n");
var s = "";
for (i in a) { s+=(a[i]<=Editor.LineCount)?el[a[i]-1]+"\n":""; } //最終行超えてたら空文字
alert(s);


78 名前:76 mailto:sage [2007/10/03(水) 18:43:20 ID:ZOtXfwxJ0]
>>77
抜き出して、書き出したかったんです。
ありがとう。ありがとう。

79 名前:73 mailto:sage [2007/10/03(水) 21:45:30 ID:32wUlmg10]
>>75
バッチリ望み通りの動作です!
本当にありがとうございます。

80 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/04(木) 19:23:03 ID:FRS7/3ll0]
HTMLタグを含む定型文で選択範囲の文字列を挟み込むというマクロを作りたいのですが
どのようにしたらいいでしょうか?
補完タンのページにあるコメント化を改造したらできるかなと思っていたのですが

81 名前:名無しさん@お腹いっぱい。 [2007/10/05(金) 19:50:42 ID:v5g163cV0]
DMonkeyでソートって出来ましたっけ?

82 名前:名無しさん@お腹いっぱい。 [2007/10/06(土) 10:52:34 ID:zfSLfeN+0]
現在開いているファイルを関連付けに従って実行するにはどうしたら良いのでしょうか?
vxのメニューバーにあるツールから
 実行ファイルを cmd
 コマンドラインパラメータを "$FILEPATH"や start "$FILEPATH"
に設定したんですがdos窓が開くだけなんです。
何か簡潔な実行方法は無いのでしょうか?

83 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/06(土) 19:49:32 ID:Ok+mqtgs0]
>>82
パラメータを「/c start "" "$FILEPATH"」にすればOK

実行ファイルを「rundll32」、パラメータを
「url.dll,FileProtocolHandler "$FILEPATH"」にしてもOK

前者だと一瞬コマンドプロンプトが開いちゃうので
後者のがお勧めかな





84 名前:82 [2007/10/06(土) 20:10:19 ID:zLa1SukE0]
>>83
すごく変則的で予想も付きませんでした。
本当にありがとうございます。

85 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/10(水) 19:19:24 ID:0WUememl0]
「設定」→「テキスト」→「テキストの種類:perl」の設定にした時って
予約語の色設定は反映されないのでしょうか?
コメント読む限りですと「文字列とコメントタブは反映されない」とありますので
予約語は色設定が反映されると思ってたのですが、勘違いでしたでしょうか?

マクロ使っても特定文字に色付けってのは難しいですよね…?

86 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/12(金) 23:09:58 ID:MwkUas200]
>85
それはPerl用の予約語がカラッポだからじゃないですか?

試しに、dms用の設定をご覧下さい。
予約語のリストにたくさん書いてあると思うので、
それに習ってPerlのも埋めていただければ、いいのではないかと。

勿論200くらいあるPerlの予約語を一語ずつ入力しなくても、
一件一行形式のテキストファイルの拡張子を.kwdにすれば、
キーワードファイルとして一括読み込みできますから、
どっか別のエディタの設定ファイルからPerl用を拾い出して、
リストを加工すればいいんじゃないでしょうか。


87 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/13(土) 00:57:55 ID:5sesUYxB0]
>80
正規表現による検索置換を使ったマクロを作ってみた。

たとえば文書中の単語(タンゴ)からリンク(tango.html)を張りたいとする。
でも文章を入力中は単語が主でリンクは従なので、こんな風に書きたい。
 タンゴ tango.html

単語の境目を明示的に、かつ手間を少なくしたいので、タブで区切ってみる。

 (Tab)タンゴ(Tab)(Tab)tango.html(Tab)

これを選択して、以下のマクロを実行するとこうなる。
<a href=tango.html>タンゴ</a>

この方法だと区切りを間違えなければ、文書中に複数のリンクを一度に作れる
と思うのだが、どうか。


88 名前:87 mailto:sage [2007/10/13(土) 00:59:06 ID:5sesUYxB0]
/*
(Tab)テスト(Tab)(Tab)test.html(tab) と書いてあれば、
<a href="test.html">テスト</a> に置換するマクロ。
*/

var words = new Array(
'\t([^<].*?)\t\t([a-z\.].*?)\t','<a href="$2">$1</a>'  //←最後の行の末尾には , をつけない
);
var e = new Editor;
var text = e.SelText;
for (i = 0; i < words.length; i += 2) {
text = text.replace(words(i),"gim",words(i+1)); //大文字小文字は区別しない
}
e.SelText = text;



89 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/13(土) 11:01:40 ID:Wj9Hq8n40]
>>86
85とは別人だが、私も予約語の色が反映されない。
予約語は当然山盛り登録済みで、
テキストの種類を標準にすると予約語の色は反映される。
テキストの種類をperlにすると色反映されない。

当面の仕事はphpのみだから放置しているが…


90 名前:86 mailto:sage [2007/10/14(日) 01:38:48 ID:r+vHrxyP0]
うーむ、言われてみてEmEditorのPerl用定義ファイルから抽出した予約語(200語くらいある)
をkwd形式にして食わせてみたら、確かに以下の10語くらいしか強調されませんでした。

continue
else
for
goto
if
return
while
delete
do
int
new

しかも別にPerlじゃなくても、ってのばっかだし。

バージョンは0.5.5で、Windows200SP4の組み合わせです。


91 名前:名無しさん@お腹いっぱい。 [2007/10/15(月) 23:19:47 ID:6USdbYXc0]
保守

92 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/20(土) 13:33:07 ID:8FO/Dp8k0]


93 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/21(日) 02:26:41 ID:/dX/vswq0]
ツールの設定でファイルのあるディレクトリをコマンドプロンプトで開きたいんですが
cmd [$DIRPATH]
としてみたんですがうまくいきません。
どうすればいいんでしょうか?



94 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/21(日) 02:39:47 ID:YfSUIkF20]
このエディターが音声入力に対応しているかどうか試してみた。
これは音声入力で入力した文章だ。きちんと入力できている。最高だ。
これだったらメモ帳を使えと言われるかもしれないか。
タイプするよりは疲れない。

95 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/21(日) 10:22:51 ID:i308ss580]
>>93
実行ファイルを「cmd」、パラメータに「/k cd /d "$DIRPATH"」でどうよ?


96 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/21(日) 11:44:25 ID:7vT34wWL0]
>>94
指が相当弱いのか、声帯が恐ろしく強いのか
そのどちらかだろ

97 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/21(日) 13:40:26 ID:/dX/vswq0]
>>95
できました!
ありがとうございます!

98 名前:名無しさん@お腹いっぱい。 [2007/10/25(木) 07:01:57 ID:5vDrOJXV0]
保守

99 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/28(日) 19:28:29 ID:jwu3+YPT0]
viにおけるSHIFT-Jの動き(行結合)をシミュレートするマクロです。需要あるか?
// TAB幅展開後のテキスト長を得る
function getTabExpandedLength(text, tabwidth) {
var result = 0;
for (i = 0; i < text.length; i++) {
c = text.charAt(i);
if (c == "\t") {
spaces = tabwidth - (result % tabwidth);
result += spaces;
} else {
result += c.sizeOf();
}
}
return result;
}
Editor.BeginUpdate();
try {
var curRow = Editor.Row;
var curCol = Editor.Col;
if (curRow < Editor.LineCount) {
var curLineStr = Editor.GetLineString(curRow);
var nextLineStr = Editor.GetLineString(curRow + 1).trimLeft();
Editor.SetLineString(curRow, curLineStr + nextLineStr);
Editor.LineDelete(curRow + 1);
Editor.Row = curRow;
Editor.Col = getTabExpandedLength(curLineStr, Editor.TabSpaceCount);
}
} finally {
Editor.EndUpdate();
}


100 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/29(月) 02:54:31 ID:7G21icJ+0]
DMonkey 自体の質問してもいいでしょうか?
ダメだったら誘導してもらえたら幸いです。

クラスに(メソッドではなく)プロパティを定義するには
どう書けばいいのでしょう?
スクリプトではメソッドしか定義できないのでしょうか?

↓だとメソッドになってしまうので…。
function f(){ ... }
Class1.prototype.prop = f1;


101 名前:100 mailto:sage [2007/10/29(月) 05:26:15 ID:7G21icJ+0]
すいません。例で書いたコード変ですね。
本当は既存の Editor クラスにプロパティを追加したいので、
function prop(){ ... }
Editor.prototype.prop = prop;
としてみてもメソッドになってしまう、という話です。


102 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/29(月) 14:01:58 ID:KUBtlOkv0]
プロパティといいながら突っ込んでる関数の中身は何?
よくわからんけど、javascriptはインスタンスにもメンバ追加できるから
e1 = new Editor;
e2 = new Editor;
e1.prop = 1;
e2.prop = 2;
alert(e1.prop); //->1
alert(e2.prop); //->2
って書けるけど駄目なん?

あとDMonkeyならclassベースの継承もできるから
class myEditor extends Editor{
myprop = 'my property';
function mymethod(){
alert(this.GetLineString(0));
}
}
e = new myEditor;
alert(e.myprop); //->"my property"
e.mymethod(); //->1行目の文字列
みたいな書き方も出来るよ。

103 名前:100 mailto:sage [2007/10/29(月) 20:51:41 ID:7G21icJ+0]
>>102
レスどうもです。
しかし、値の設定(または取得)時に処理が必要なので、
フィールドとして持つだけではダメなのです。
102 さんのコードで言うと 3 行目の
e1.prop = 1;
の代入によってコードが走るような仕組み
(なのでフィールドではなくプロパティ)が欲しいんです。
31.setProp(1);
でいいだろ、と言われそうなんですができたら欲しいなぁと。

あと class ベースの継承の情報もありがとうございました。
一部の自作クラスはそうやって作っています。
prototype 使ったのは既存のスクリプトで new Editor() している所でも
使いたくてなのです。全部 new myEditor() に直すのも…と思って。




104 名前:102 mailto:sage [2007/10/29(月) 21:34:28 ID:r/a5Cifj0]
ああ、セッターか、って、そもそもjavascriptでセッターとかってできたっけ?
と思ったらjavascript1.5だとできるんだね。DMonkeyだと無理そうだなあ。

105 名前:100 mailto:sage [2007/10/29(月) 22:23:09 ID:7G21icJ+0]
>> 102
どうもです。
セッター使えないのですね。残念。
でも使えない、と分かれば setProp, getProp で我慢するです。
ありがとうございます。

String.length とか、Editor.selText とか、
どんな仕組みになってるんだろう…。


106 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/29(月) 23:06:35 ID:qEPxgfCpO]
おいおい、そこはネイティブコードでしょ

107 名前:100 mailto:sage [2007/10/29(月) 23:33:29 ID:7G21icJ+0]
ネイティブであっても文法的にそう書いて呼び出せるなら
呼び出される側もユーザー定義できるようになってるかなぁと
淡い期待を抱いたんですが…。
定義できないなら、ネイティブも全部メソッドにして欲しかった( ´・ω・`)

108 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/10/31(水) 17:36:51 ID:ji3yQzaq0]
画面を分割したときにshift+F4とctrl+F4で
分割位置が変更できることを今知った。

分割位置をマウスドラッグで変えようとすると、
グレーのラインが途中で止まってしまうのは私だけですか?

109 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/02(金) 10:38:47 ID:f5ahhbSV0]
以下のコード、何で片方だけ ENameError が起きるのか分からない…。
バグ?漏れが寝ぼけてるだけ?

class Point {
 function Point(x, y){
  this.x = x;
  this.y = y;
 }
 
 function to(x, y){
  return new Line(this, new Point(x, y));
 }
}
class Line {
 function Line(start, end){
  this.start = start;
  this.end = end;
 }
}

point1 = new Point(100, 100);
line1 = point1.to(200, 200);
writeln(line1.start.x); // => 200
writeln(line1.end.x); //ENameError


110 名前:名無しさん@お腹いっぱい。 [2007/11/02(金) 10:51:11 ID:Amj8Y07T0]
どこかで捨てられちゃってるんだろうね。

111 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/02(金) 13:01:57 ID:AmasBiNX0]
function Point(x, y){
 this.x = x;
 this.y = y;
 this.to = function (x,y) {
  return new Line(this, new Point(x,y));
 };
}
//以下同

class使わないで書いてみたらちゃんと動いたけど
>>109がなんで駄目かはよくわかんないや。

112 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/02(金) 13:43:57 ID:AmasBiNX0]
>>109 の8行目のnew Lineしてる中のnew Point(x,y)で
なぜかthisが書き換わってnew Point(x,y) 自体は
オブジェクトを返してないみたい。
classのメソッド内で自クラスをnewするとバグるみたいだ。


113 名前:109 mailto:sage [2007/11/02(金) 23:06:29 ID:f5ahhbSV0]
>> 110, 111, 112
やっぱりダメっすか…。
class を使わない方法で回避しときます。どもです!
# SourceForge のルールを良く分かってないんですが、
# Bugs に上げておいた方がいいのかなぁ?




114 名前:名無しさん@お腹いっぱい。 [2007/11/03(土) 12:44:32 ID:cU2P9cmQ0]
>>113
参照がスコープ間でダダ漏れにならないようにする仕様かもしれぬが。

115 名前:名無しさん@お腹いっぱい。 [2007/11/06(火) 17:21:27 ID:iC6neyDS0]
選択の反転って出来ませんか?

116 名前:115 [2007/11/07(水) 12:43:15 ID:TxpXJ5iu0]
選択の反転ってテキストエディタ全般で利用不可だったね
すげー勘違いしてた

117 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 22:01:35 ID:nPBxcnCy0]
マクロからEnterキーを押したかのようにしたいんですがうまくいきません

e = new Editor;
e.SelText = "\n";
とやってみてるんですがこれではオートインデントが働かないので困ってます
どうすればいいでしょうか

118 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 22:19:16 ID:BeJdWppq0]
それでオートインデントが効いたら逆に困るよ

WSHでSendKeys使うのがお手軽。どうしてもDMonkeyでやりたいならpostMessage()でいけるかと。

119 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 22:38:51 ID:UE+US7A60]
>>117
Enterだけのキーマクロを保存してKeyMacroでそれを実行。


120 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 22:43:23 ID:nPBxcnCy0]
>>119
できました!
そういえばキーマクロがあったんですね
ありがとうございます!

121 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/07(水) 23:04:07 ID:BeJdWppq0]
>>119
その手があったな・・・orz

122 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/09(金) 18:06:19 ID:bobyw3T+0]
DMonkeyについてなんですが

ヘルプにVCLオブジェクトの詳細はDelphi6のドキュメント見ろや
みたいなことが書いてあるんですが
Borland公式ではもう公開されていないみたいです。

だれかドキュメント持ってませんか?
うぷってくれると嬉しいです。

123 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/11(日) 16:58:30 ID:wAEAxLLT0]
delphi 6 help でググってみ



124 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/11(日) 18:09:33 ID:FE+Rax1O0]
うわ、普通にドキュメントだけダウンロードできますね
ありがとうございました。

125 名前:名無しさん@お腹いっぱい。 [2007/11/11(日) 22:54:26 ID:4aWuyY2R0]
たとえば
『大阪府大阪市』
『京都府京都市』
『千葉県千葉市』
のように都道府県と市町村が繰り返しになる場合、
都道府県を省いて、

『大阪市』
『京都市』
『千葉市』
にするには、EmEditorとかoeditだと

検索:(.*?)[県府]\1市
置換:\1市
を実行すればいいのですが、VxEditorだと\1→$1なので、

検索:(.*?)[県府]$1市
置換:$1市
にすれば良さそうなものですが、何故かこれだと置換されないのです。
で、試行錯誤と偶然から

検索:(.*?)[県府]\1市
置換:$1市
これを実行すればうまくいくことを発見しました。

まだほかにもこの手のイレギュラーが隠されているのでしょうか。


126 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/11(日) 23:23:18 ID:qMVkfb5R0]
検索で\1を使い、置換で$1を使うのはおそらくPerlからの流れ。
サクラエディタやK2Editorなども同様。

127 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/11(日) 23:27:00 ID:TbPASEDn0]
イレギュラーっていうほど変わった仕様かな?

128 名前:名無しさん@お腹いっぱい。 [2007/11/12(月) 00:48:29 ID:jdHaKMBN0]
少なくともREADMEやDOCには\1も使えるとは書いてないよね?

129 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 08:01:45 ID:L9KCOTPw0]
Perlつーかbregonig.dllの仕様じゃねーの?

130 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/12(月) 22:51:22 ID:VYfolEx/0]
bregonigだと置換にも\1が使えるんだが、VxEditorでは使えないところを見ると、
置換は独自処理なんだろうな。

131 名前:名無しさん@お腹いっぱい。 [2007/11/17(土) 07:02:47 ID:UE2GRCT40]
保守

132 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/18(日) 01:45:31 ID:A3JK0CPi0]
これ使ってて思ったんだけどマクロ側からイベント指定したりとか出来ないもんかな
設定ファイル直接いじったりとかで出来るかもしれないけど
あとマクロを別スレッドで実行してほしい
マクロ実行中とか出て他のマクロ実行できないしファイル保存がうまく利かなかったりする

133 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/18(日) 01:53:28 ID:qFuHyp+C0]
マクロを別スレッドで実行するといろいろ面倒なことがあるんじゃなかろうか
一つのエディタオブジェクトを複数のマクロで同時に操作してしまったときとか
問題ありそうな気が



134 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/11/18(日) 17:27:11 ID:A3JK0CPi0]
そのへんはファイルロックみたいな機構を付ければいい話じゃね?
そもそもひとつのエディタオブジェクトに複数のマクロが同時アクセスなんてそんなにないだろうし

135 名前:名無しさん@お腹いっぱい。 [2007/11/20(火) 19:30:36 ID:d7g7B9ti0]
AutohotkeyのAutohotkey.ahkていうファイル開こうとすると読み取り専用ファイル
として開くにしてないのに閲覧モードになるんだけど
普通の編集モードで開く方法おしえて

136 名前:名無しさん@お腹いっぱい。 [2007/11/28(水) 16:43:38 ID:2970ht9j0]
保守

137 名前:名無しさん@お腹いっぱい。 [2007/12/05(水) 14:31:22 ID:7tf8Z+5M0]
保守

138 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/12/05(水) 23:25:08 ID:V7lQ7/pO0]
DMonkeyスレが落ちてたのでこちらに書いときます。
DMonkeyのバグらしきものを2つみつけました。

対象はecma_activex.pasです

1.
TJActiveXObject.GetValue メソッドで
ArrayStyle = True、Param数1の時に
Sをパラメータとしているが
これによりActiveXに渡るパラメータが
必ず文字列型と認識されてしまい、整数型が必要な場合などにエラーとなる。
オリジナルの型でそのまま渡す必要がある。


var ie = new ActiveXObject("InternetExplorer.application");
ie.Visible = true;
ie.Navigate("www.yahoo.co.jp/");
while (ie.busy) ;
while (ie.Document.readyState != "complete");
var tags = ie.Document.getElementsByTagName("TD"); // TDは文字型なので通る
var s = "";
for (var i = 0; i < tags.length-1; i++) {
s = s + tags[i].innerText; // iは数値型なのでエラーになる
}



139 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/12/05(水) 23:25:57 ID:V7lQ7/pO0]
つづき
2.
ArrayStyle = False時に
メソッド型のプロパティ(DISPATCH_METHODが必要なプロパティ)が
DISPATCH_PROPERTYGETでエラーとなったら
関数として登録をする、というような処理しているようであるが、
エラーとならずretに'[object]'などの文字列が戻るだけの場合がある。
そういうタイプのプロパティでエラーが発生する。


var ie = new ActiveXObject("InternetExplorer.application");
ie.Visible = true;
ie.Navigate("www.yahoo.co.jp/");
while (ie.busy) ;
while (ie.Document.readyState != "complete");
var tags = ie.Document.getElementsByTagName("TD");
var s = "";
for (var i = 0; i < tags.length-1; i++) {
s = s + tags.item[i].innerText; // itemがそのタイプなのでエラーになる
}

テスト環境:Windows2000,IE6
DMonkey 0.3.9.1

140 名前:138 mailto:sage [2007/12/07(金) 09:04:28 ID:ZAm3TTi10]
さらにバグではないですが少し不便な点もあげときます。

3.関数型プロパティを()なしでアクセスするとエラーもでず動作もせずで
 エラーに気づきにくい


var ie = new ActiveXObject("InternetExplorer.application");
ie.Visible = true;
ie.Navigate("https://login.yahoo.co.jp/config/login?.src=www&.done=www.yahoo.co.jp");
while (ie.busy) ;
while (ie.Document.readyState != "complete");
for (var tag in ie.Document.getElementsByTagName("FORM")) {
if (tag.Name == "login_form") {
tag.Submit; // NG
tag.Submit(); // OK
break;
}
}

4.2(>139)で述べたような処理方法を採用しているので例外が発生したのが分かりにくい

var ie = new ActiveXObject("InternetExplorer.application");
ie.Visible = true;
ie.Navigate("www.yahoo.co.jp/");
//while (ie.busy) ;
//while (ie.Document.readyState != "complete");
// Documentの準備ができていないので例外が発生するが・・・
var tags = ie.Document.getElementsByTagName("TD");


141 名前:138 mailto:sage [2007/12/07(金) 11:12:16 ID:ZAm3TTi10]
修正案を DelWiki にあげときました。

142 名前:名無しさん@お腹いっぱい。 [2007/12/14(金) 08:03:44 ID:vmM9eCfx0]
保守

143 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/12/16(日) 17:32:53 ID:cL/Npjnt0]
質問です。
文字列をドラッグして選択して右クリックから出すコンテキストメニューに
「指定文字列をGoogle検索」を加えたいのですが、可能ですか?




144 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/12/16(日) 19:55:25 ID:dTOalfyJ0]
>>143
Googleで検索するツールが登録されてる前提で書くとツールの設定で
[オプション]-[ポップアップメニューに表示する]にチェック入れる。


145 名前:名無しさん@お腹いっぱい。 [2007/12/17(月) 01:07:13 ID:tCp6DH9kO]
PPAで書いたやつでも可能かな?

146 名前:名無しさん@お腹いっぱい。 [2007/12/25(火) 06:49:15 ID:Ba143n4G0]
保守

147 名前:名無しさん@お腹いっぱい。 [2007/12/25(火) 12:47:08 ID:osXlCHFc0]
質問です。
ttp://lukewarm.s41.xrea.com/up/index.php
にある096.zipや097.zipをツールに登録してdiffを
使おうとするとエラーが出てしますのですがどうしたらいいのでしょう。

148 名前:名無しさん@お腹いっぱい。 [2008/01/03(木) 16:40:04 ID:GFmLZiXp0]
保守

149 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/01/11(金) 14:38:19 ID:3m7rQQNd0]
検索ダイアログをモードレスにして欲しいと切に願ってるのですが、ユーザー側でできる対応策って何かありませんか?

150 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/01/11(金) 19:08:02 ID:vPmln7cy0]
>149
どういう理由でそんなことしたいの。
どうしてもっていうなら作者さんにお願いするしかないと思うけど。

151 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/01/11(金) 19:13:11 ID:vPmln7cy0]
あと検索は incsrch.dms を使ったほうがしやわせになれると思うんだ。
好みにもよるけどね。

152 名前:149 mailto:sage [2008/01/15(火) 16:34:33 ID:rKMemhAV0]
>>150
>どういう理由でそんなことしたいの
1.検索・置換ワードをファイル中から複数コピペできない。

2.検索ダイアログを出しているときに他ウィンドウにフォーカスを移すと、
VxEditorにフォーカスを戻すのに、VxEditor本体をクリックしてもアクティブにならず、検索ダイアログをクリックしないといけない。
(ダイアログ出してる時はAlt+Tabの一覧に載らないのも不便)

こんな感じです。自分の使い方が悪いんですかねえ・・・。

incsrch使ってみました。便利ですね。標準の検索と使い分けて利用しようと思います。


153 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/01/15(火) 17:35:39 ID:CVQR5gvQ0]
>152
> ユーザー側でできる対応策
ということなら
1に関してはクリップボード拡張ソフトを使う。
2は alt+tab の一覧にはダイアログのほうが出るけどそれじゃだめなのかい。
確かに本体クリックじゃだめだけど。
ダイアログ出したままフォーカス切り替えるというのはなにかコピペするためじゃないかと思うんだけど、
alt+tab で戻って貼り付けできるので現状のままでいいのでは。
どうしてもクリックっていうのならタスクバークリックでどうだ。



154 名前:149 mailto:sage [2008/01/15(火) 18:37:03 ID:rKMemhAV0]
>>153
失礼しました。alt+tabでフォーカスが移らないのは自分が入れてたalt+tab拡張ソフトの問題でした(他のソフトなら問題ありませんでした)。
という訳で2はおkです。ありがとうございます。
1については、頻繁に検索語と置換語を変える(テキスト中の文字列を使って)
ような事例を表したかったのですが ( >>152では伝わりませんね、すみません。)
今実際クリップボード拡張ソフトを使ってやってるのですが、モードレスになってくれればなあと感じている次第です。
他ソフトで普段検索ダイアログ出しっぱなしで作業する事が多いので、それに慣れてしまってる自分のせいかもしれませんが。

それと
> ユーザー側でできる対応策
は「ユーザー側でモードレスにする方法(設定法)」という意味で使いました。
もしかしたら自分の知らない設定法があるかも、と思いまして。

155 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/01/16(水) 00:54:55 ID:2d96D4Dz0]
あとはモーダルな置換ダイアログのスクリプト書くしかないじゃないかな。

> 「ユーザー側でモードレスにする方法(設定法)」という意味で使いました。
150 でないと言ったつもりなのでわざと違う意味にとったの。

156 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/01/16(水) 00:56:40 ID:2d96D4Dz0]
おれは馬鹿か。
×モーダル
○モードレス

157 名前:名無しさん@お腹いっぱい。 [2008/01/24(木) 07:42:48 ID:7Va3nZig0]
あげ

158 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/03(日) 01:10:55 ID:T0VKvNFb0]
過疎だな

159 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/03(日) 09:57:40 ID:58JiFUd10]
マイナーエディタフリークの俺は現在進行形のApsalyに乗り換えた

160 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/05(火) 17:49:56 ID:qYQARcF/0]
Ctrl+Eの上書き保存して閉じるが地味に便利

161 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/07(木) 14:33:44 ID:T0TRrAfJO]
複数行と言うか最終行までチェックする方法がわからず困っていますorz

1234567 <tab> aaa/test/…/….html
7654321 <tab> aaa/test/…/….html
3456789 <tab> aaa/test/…/….html
9876543 <tab> aaa/test/…/….html
9876543 <tab> aaa/test/po/….html
1234567 <tab> bbb/test/…/….html
7654321 <tab> bbb/test/…/….html
3456789 <tab> bbb/test/…/….html
3456789 <tab> bbb/test/pi/….html
9876543 <tab> bbb/test/…/….html
1234567 <tab> ccc/test/…/….html
7654321 <tab> ccc/test/…/….html
3456789 <tab> ccc/test/…/….html
9876543 <tab> ccc/test/…/….html


数列とアドレスをタブで区切ってる、こんな感じの文が続いてます。

tabから後でtestより前(例文のaaa/の部分)『以外』が全く同じ行が
その行より後、文の終わりまでにあったら、tabから後でtestより前を削除したいんです。

9876543 <tab> aaa/test/po/….html
3456789 <tab> bbb/test/pi/….html
1234567 <tab> test/…/….html
7654321 <tab> test/…/….html
3456789 <tab> test/…/….html
9876543 <tab> test/…/….html

こんなことって可能ですかね?

162 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/08(金) 03:36:48 ID:CEDZKYfM0]
これってデフォルトの文字コードって設定できないんですかね?
設定部分を探してるんだけど見つからない…

163 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/02/14(木) 23:30:57 ID:RgTAqSqi0]
もう解決してそうだけど
>>161
説明の通りの動作
e=new Editor;
h=new Object;
for (i=0;i<e.LineCount;++i) {
k = e.GetLineString(i).replace(/(\t).+\/(test\/)/,"\ttest");
if (h.hasOwnProperty(k)) {
e.SetLineString(i,k);
} else {
h[k]=1;
}
}
これだと例の結果にならないので、
"tabから後でtestより前を削除"して、さらにその結果から重複を除く場合、
6行目の
e.SetLineString(i,k);

if (h[k]==1) {e.SetLineString(i,k);}
else{e.LineDelete(i--);}
h[k]+=1;
に変更

文書を全部ハッシュに詰め込むんで、ウン万行とかのファイルとかでやると死ぬと思う。





164 名前:名無しさん@お腹いっぱい。 [2008/02/21(木) 18:40:33 ID:PBueQqcF0]
保守

165 名前:161 mailto:sage [2008/02/28(木) 22:38:34 ID:5w7uSMLvO]
>>163
遅くなってしまったけどありがとう!
丸々ハッシュか…多くても500行とかだから大丈夫だと思う。
すごく助かったし勉強になった。ありがとう。

166 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/10(月) 06:33:50 ID:0QJ8Nj1T0]
保守

167 名前:名無しさん@お腹いっぱい。 [2008/03/17(月) 19:29:42 ID:Omasg0wA0]
あげ

168 名前:名無しさん@お腹いっぱい。 mailto:age [2008/03/29(土) 13:46:19 ID:eslTYCTe0]
Ver 0.5.6

169 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/29(土) 18:20:19 ID:3hSfr8G+0]
ところでVxEditorの検索・置換って行頭や行末って単独で使えないの?
行頭や行末に文字を挿入とかって使い方したいんだが

とりあえず\nを使った書き方でやるしかねぇの?

170 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/29(土) 18:30:21 ID:P3Ib50BV0]
それなら正規表現使えばいい
行頭は^、行末は$で表すことができる
詳しくはぐぐって勉強

171 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/29(土) 19:18:17 ID:olr8rEdI0]
>>169
出来ない。
行頭に「//」挿入なら「^(.)」を「//$1」とかに置換しないとダメ。


172 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/29(土) 20:51:37 ID:3hSfr8G+0]
>>171
それだと空行には挿入されないから等価じゃねぇのよな
まあ、どのテキストエディタも一長一短だが、VxEditorはこの辺はイマイチだのぅ
他の機能は優秀なのに正規表現周りだけ中途半端に他のエディタに負けてる
正規表現置換だけK2Editorでも使うか



173 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/29(土) 22:10:24 ID:P6ppRGxg0]
更新履歴
>2008/03/26 Ver 0.5.6
>
> ・フォーカスのない状態でツールバーに触れるとアドレス違反が出る場合が
> あったのを修正。
> ・タスクトレイの表示で失敗する場合があったのを修正。
> ・エディタの終了で時間がかかる場合があったのを修正。
> ・VxGrepで検索がすべて終了しなくてもプレビューできるように変更。
> ・同梱しているxdoc2txt.dllのバージョンを1.28に変更。




174 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 11:15:17 ID:SrNFDg8P0]
>>168-172
VxEditor使ったことないけど同梱のBregonig.dllのバグってことはない?
ttp://k-takata.bbs.coocan.jp/?m=listthread&t_id=72&summary=on

Bregonig.dllをVer.1.42以降に差し替えてみて

175 名前:名無しさん@お腹いっぱい。 mailto:sage [2008/03/30(日) 12:06:24 ID:9OjIPxJd0]
>>174
1.43入れてみたがやっぱりダメっぽい
やっぱり、VxEditor側の問題っぽさげかな







[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<73KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef