|
今日は、マクロ初心者の rosegardeyk です。また、無茶苦茶なことして悩んでます。
前に教えていただいたIKKIさんのマクロ Xlate_日本語=英語@LSD.mac では LSD辞書
は HttpGet ではなく HttpPost を使って引くようになっていますが、
"http://lsd.pharm.kyoto-u.ac.jp/weblsd/c/begin/%E9%85%B5%E7%B4%A0" (秀丸上
からなら引用符で囲んで "http://lsd.pharm.kyoto-u.ac.jp/weblsd/c/begin/酵素"
でも可)をダブルクリックするとLSD辞書引きの結果:酵素[%E9%85%B5%E7%B4%A0]
→Enzymeがでるので HttpGet を試したところ 下記マクロのように HttpPost を使わ
なくても結果が得られます。
Google翻訳でも"http://translate.google.co.jp/#ja/en/%E9%85%B5%E7%B4%A0" (秀
丸上なら引用符で囲んで "http://translate.google.co.jp/#ja/en/酵素" としてU
TF8変換しなくても結果をブラウザーで見ることができます)をダブルクリックすると
翻訳結果(Enzyme)が出るので, 同じように HttpGet が使えると思ったのですが下
記マクロのように<title>Error 404 (Not Found)!!1</title>とエラーになってしま
います。
HttpGetとHttpPost のどちらを使っても構わないのですがどうしたら、Google翻訳の
結果を秀丸マクロで取り込めることができるでしょうか?
よろしくご教示ください。
ちなみに、hidemarnet.explorer でもうまく結果が見られないです。
ところで、IKKIさんのマクロXlate_日本語=英語@Yahoo!翻訳.mac は うまく動いてい
て、とても役に立ってます。こちらも HttpPost を使っていますね。
Livedoor翻訳もYahoo翻訳と同じCross Languageの翻訳エンジン使ってますが
"http://livedoor-translate.naver.jp/text/#ja|en|%25E9%2585%25B5%25E7%25B4%25
A0%250A" (秀丸上なら"http://livedoor-translate.naver.jp/text/#ja|en|酵素"も
可)でブラウザーに翻訳結果を表示できるのですが、やはり HttpGet では下記マクロ
のようにエラーになってしまいます。HttpPostでやるのしょうか?いろいろ試したけ
れどYahoo翻訳とはパラメータが違うようでうまくいきません。<title>404エラー:
指定されたページは存在しません。 - NAVER</title>がでます。 こちらもご教示い
ただければ大変助かります。
//マクロ例////////////////////////////////////////////////////////
MAIN:
$$uri = "http://lsd.pharm.kyoto-u.ac.jp/weblsd/c/begin/%E9%85%B5%E7%B4%A0";/
/LSD辞書で"酵素"を引く
call HttpGet $$uri;
question "「はい」で次の Google翻訳に進む。\n「いいえ」LSD辞書で「酵素」を引
いた結果の大きなHTMLをnewfileに書き込み終了する。";
if (!result) {newfile; insert $$return; endmacro;}
$$uri = "http://translate.google.co.jp/#ja/en/%E9%85%B5%E7%B4%A0";//Google翻
訳で"酵素"を英訳する
call HttpGet $$uri;
question "Google翻訳 はい」で次の Livedoor翻訳へ\n\n\n$$return = " + $$retu
rn; if (!result) {newfile; insert $$return; endmacro;}
$$uri = "http://livedoor-translate.naver.jp/text/#ja|en|%25E9%2585%25B5%25E7
%25B4%25A0%250A";//Livedoor翻訳で"酵素"を英訳する
call HttpGet $$uri;
question "Livedoor翻訳 $$return が大きいので、「はい」で終了\n「いいえ」でn
ewfile に書き込み可です"; if (!result) {newfile; insert $$return; endmacro;}
END:
endmacro;
HttpGet:
##http = createobject("Msxml2.XMLHTTP");
if (!##http) ##http = createobject("Microsoft.XMLHTTP");
if (!##http) return "";
callmethod ##http, "Open", "GET", $$1, 0;
callmethod ##http, "Send";
$$resp = getpropstr(##http, "ResponseText");
releaseobject ##http;
return $$resp;
|
|