情報
概要
英文をYahoo!翻訳して翻訳した文章を返します。
解説
引数
S:英文
返り値
翻訳された日本語文
サンプルプログラム
経過ダイアログ=オフ。
「What do you usually do on weekends?」を簡易ヤフー英日翻訳して言う。
//何を通常週末にするか。
「What do you usually do on weekends?」をヤフー英日翻訳して言う。
//あなたは、通常週末に何をしますか?
//本体
//サンプル
経過プログレスバーとはプログレスバー。そのレイアウト=上。その最大値=100。
経過ステータスバーとはステータスバー。そのレイアウト=下。
#------------------------------------------------------------
#オプション
#------------------------------------------------------------
デフォルトタイムアウト回数=100。//0.1秒単位 0.1*[50]=5秒。
TCPホスト=「localhost」。//プロキシを使うとき用
TCPポート番号=80。//プロキシを使うとき用
HTTPバージョン=「1.1」。//よく知らない
TCP経過表示設定=オン。//経過表示したい場合
瞬間ダウンロード幅=10。//瞬間ダウンロード速度の値の瞬間度をどの程度にするか 低いほど瞬間的 高いほど平均ダウンロード速度に近づく
デフォルトヘッダ=「Accept: */*
Accept-Language: ja
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)」。//定番モノを入れておく
●TCP経過表示
//【使える状況確認用変数 一覧】
//現在メソッド → 今なにをしてるのか
//タイムアウト回数 → タイムアウトまでの回数(0.1秒)
//受信予定バイト数 → ダウンロードする予定のサイズ(単位:B)
//受信バイト数 → 現在ダウンロード完了してるサイズ(単位:B)
//追加受信バイト数 → 実際に今回ダウンロードしてるサイズ(レジューム○○の時に使う)
//経過パーセント → どのぐらいダウンロードできたか(プログレスバーとかに使ってね)
//平均ダウンロード速度 → ダウンロード速度(B/s)。//×8でbps //÷1000でKB/s //×8÷1000でKbps
//瞬間ダウンロード速度 → ダウンロード速度(B/s)。↑に比べて瞬間的 「瞬間ダウンロード幅」で計算間隔を決めよう
//現在ホスト → ホスト・ドメイン
//現在ホスト先 → どのページを見てるか的なもの
//現在アドレス → URL
//ダウンロード先 → 出力先の絶対パス
//サンプル
母艦のタイトル=「【{現在メソッド}】Time:{タイムアウト回数} / 予定:{(受信予定バイト数/1024/1024)を2で小数点切り上げ}MB 現在:{(受信バイト数/1024/1024)を2で小数点切り上げ}MB」。
経過プログレスバーの値=経過パーセント。
経過ステータスバーのテキスト=「{経過パーセントを3でゼロ埋め}% / 平均:{INT(平均ダウンロード速度/1024)}KB/s / 瞬間:{INT((瞬間ダウンロード速度/1000)*8)}Kbps / 追加:{追加受信バイト数}」。
#------------------------------------------------------------
#------------------------------------------------------------
#------------------------------------------------------------
#------------------------------------------------------------
#オプションここまで ↑↑↑↑↑↑ ↓はいじっちゃだめ
#------------------------------------------------------------
#------------------------------------------------------------
#------------------------------------------------------------
終了タイマーとはタイマー。
その値=10。
その時満ちた時は~終わり。
母艦の閉じた時は~終了タイマーの開始。
!「nakonet.nako」を取り込む。
蔵とはTCPクライアント。
これについて
ホスト=TCPホスト。
ポート=TCPポート番号。
受信した時は~受信時処理。
接続した時は~接続時処理。
切断した時は~切断時処理。
エラー時は~エラー時処理。
#「localhost:80」でプロキシ設定。
●プロキシ設定(Sで|Sを|Sから|Sの)
//localhost:80
串=Sを「:」で区切る。
1の間
もし、通信中=0ならば、抜ける。
違えば、0.1秒待つ。
蔵で切断。蔵のホスト=串[0]。蔵のポート=串[1]。
//無駄に多いグローバル変数達
通信中=0。Filedata=空。Header=空。一回目スイッチ=0。TimeOutCheck=0。タイムアウト回数=0。チャンク=空。
受信予定バイト数=0。受信バイト数=0。ヘッダ部分=空。経過パーセント=空。現在メソッド=空。チャンクFiledata=空。
ヘッダ取得スイッチ=オフ。現在ホスト=空。現在ホスト先=空。現在アドレス=空。TCPダウンロードスイッチ=オフ。チャンクポケット=空。
TCPダウンロード先=空。ダウンロード先=空。レジュームスイッチ=オフ。受信回数=0。チャンクスイッチ=オフ。
TCP開始時間=空。TCP終了時間=空。平均ダウンロード速度=空。瞬間ダウンロード速度=空。TCP経過時間=空。追加受信バイト数=空。
●TCPゲット基本(HEADをURLへ)
現在アドレス=URL。
ヘッダ部分=空。受信予定バイト数=0。追加受信バイト数=0。
もし、レジュームスイッチ=オンならば
もし、出力先ファイルの存在=はいならば、受信バイト数=(出力先ファイルのファイルサイズ)。
違えば、受信バイト数=0。
違えば
受信バイト数=0。
タイムアウト回数=デフォルトタイムアウト回数。
一回目スイッチ=はい。Filedata=空。TimeOutCheck=0。
Host=URLからURLドメイン名抽出。現在ホスト=Host。蔵のホスト=Host。
GET=URLの「http://{Host}」を空に置換。
現在ホスト先=GET。
本物デフォルトヘッダ=空。
もし、デフォルトヘッダ≠空ならば
本物デフォルトヘッダ=改行&デフォルトヘッダ。
もし、レジュームスイッチ=オンならば
Header=「GET {GET} HTTP/{HTTPバージョン}{改行}Host: {Host}{本物デフォルトヘッダ}
Range: bytes={受信バイト数}-
{HEAD}{改行}{改行}」。
違えば
Header=「GET {GET} HTTP/{HTTPバージョン}{改行}Host: {Host}{本物デフォルトヘッダ}
{HEAD}{改行}{改行}」。
蔵で接続。
1の間
もし、TCP経過表示設定=オンならば、TCP経過表示。
もし、TimeOutCheck=1ならば
TimeOutCheck=0。
タイムアウト回数=デフォルトタイムアウト回数。
もし、通信中=0ならば、抜ける。
もし、タイムアウト回数=0ならば、タイムアウト時処理。抜ける。
タイムアウト回数=タイムアウト回数-1。
0.1秒待つ。
●TCPポスト基本(HEADとBODYをURLへ)
現在アドレス=URL。
ヘッダ部分=空。受信予定バイト数=0。追加受信バイト数=0。
もし、レジュームスイッチ=オンならば
もし、出力先ファイルの存在=はいならば、受信バイト数=(出力先ファイルのファイルサイズ)。
違えば、受信バイト数=0。
違えば
受信バイト数=0。
タイムアウト回数=デフォルトタイムアウト回数。
一回目スイッチ=はい。Filedata=空。TimeOutCheck=0。
Host=URLからURLドメイン名抽出。現在ホスト=Host。蔵のホスト=Host。
GET=URLの「http://{Host}」を空に置換。
現在ホスト先=GET。
本物デフォルトヘッダ=空。
もし、デフォルトヘッダ≠空ならば
本物デフォルトヘッダ=改行&デフォルトヘッダ。
もし、レジュームスイッチ=オンならば
Header=「POST {GET} HTTP/{HTTPバージョン}{改行}Host: {Host}{本物デフォルトヘッダ}
Range: bytes={受信バイト数}-
Content-Length: {BODYのバイト数}
{HEAD}{改行}{改行}{BODY}」。
違えば
Header=「POST {GET} HTTP/{HTTPバージョン}{改行}Host: {Host}{本物デフォルトヘッダ}
Content-Length: {BODYのバイト数}
{HEAD}{改行}{改行}{BODY}」。
蔵で接続。
1の間
もし、TCP経過表示設定=オンならば、TCP経過表示。
もし、TimeOutCheck=1ならば
TimeOutCheck=0。
タイムアウト回数=デフォルトタイムアウト回数。
もし、通信中=0ならば、抜ける。
もし、タイムアウト回数=0ならば、エラー発生。
タイムアウト回数=タイムアウト回数-1。
0.1秒待つ。
#-----------------------------------------------------------------------
●TCPポスト(HEADとBODYをURLへ|BODYで)
もし、通信中=1ならば、戻る。
通信中=1。
ヘッダ取得スイッチ=オフ。現在メソッド=「TCPポスト」。レジュームスイッチ=オフ。
TCPダウンロードスイッチ=オフ。ダウンロード先=空。
HEADとBODYをURLへTCPポスト基本。
もし、TCP経過表示設定=オンならば、TCP経過表示。
ヘッダ部分&改行&改行&Filedataで戻る。
●TCPポストデータ取得(HEADとBODYをURLへ|BODYで)
もし、通信中=1ならば、戻る。
通信中=1。
ヘッダ取得スイッチ=オフ。現在メソッド=「TCPポストデータ取得」。レジュームスイッチ=オフ。
TCPダウンロードスイッチ=オフ。ダウンロード先=空。
HEADとBODYをURLへTCPポスト基本。
もし、TCP経過表示設定=オンならば、TCP経過表示。
Filedataで戻る。
●TCPポストヘッダ取得(HEADとBODYをURLへ|BODYで)
もし、通信中=1ならば、戻る。
通信中=1。
ヘッダ取得スイッチ=オン。現在メソッド=「TCPポストヘッダ取得」。レジュームスイッチ=オフ。
TCPダウンロードスイッチ=オフ。ダウンロード先=空。
HEADとBODYをURLへTCPポスト基本。
もし、TCP経過表示設定=オンならば、TCP経過表示。
ヘッダ部分で戻る。
#-----------------------------------------------------------------------
●TCPゲット(HEADをURLへ|HEADで)
もし、通信中=1ならば、戻る。
通信中=1。
ヘッダ取得スイッチ=オフ。現在メソッド=「TCPゲット」。レジュームスイッチ=オフ。
TCPダウンロードスイッチ=オフ。ダウンロード先=空。
HEADをURLへTCPゲット基本。
もし、TCP経過表示設定=オンならば、TCP経過表示。
ヘッダ部分&改行&改行&Filedataで戻る。
●TCPゲットデータ取得(HEADをURLへ|HEADで)
もし、通信中=1ならば、戻る。
通信中=1。
ヘッダ取得スイッチ=オフ。現在メソッド=「TCPゲットデータ取得」。レジュームスイッチ=オフ。
TCPダウンロードスイッチ=オフ。ダウンロード先=空。
HEADをURLへTCPゲット基本。
もし、TCP経過表示設定=オンならば、TCP経過表示。
Filedataで戻る。
●TCPゲットヘッダ取得(HEADをURLへ|HEADで)
もし、通信中=1ならば、戻る。
通信中=1。
ヘッダ取得スイッチ=オン。現在メソッド=「TCPゲットヘッダ取得」。レジュームスイッチ=オフ。
TCPダウンロードスイッチ=オフ。ダウンロード先=空。
HEADをURLへTCPゲット基本。
もし、TCP経過表示設定=オンならば、TCP経過表示。
ヘッダ部分で戻る。
●TCPデータ取得(HEADをURLへ|HEADで)
HEADをURLへTCPゲットデータ取得。
●TCPヘッダ取得(HEADをURLへ|HEADで)
HEADをURLへTCPゲットヘッダ取得。
#-----------------------------------------------------------------------
#-----------------------------------------------------------------------
#-----------------------------------------------------------------------
●TCPゲットダウンロード(HEADとURLをFILEへ|HEADとURLからFILEに|FILEへ)
もし、通信中=1ならば、戻る。
通信中=1。
ヘッダ取得スイッチ=オフ。現在メソッド=「TCPゲットダウンロード」。レジュームスイッチ=オフ。
TCPダウンロードスイッチ=オン。TCPダウンロード先=FILE。ダウンロード先=TCPダウンロード先。
出力先ファイル=TCPダウンロード先。出力先初期化。
HEADをURLへTCPゲット基本。
もし、TCP経過表示設定=オンならば、TCP経過表示。
ヘッダ部分で戻る。
●TCPポストダウンロード(HEADとBODYとURLをFILEへ|BODYとURLからFILEへ|FILEに)
もし、通信中=1ならば、戻る。
通信中=1。
ヘッダ取得スイッチ=オフ。現在メソッド=「TCPポストダウンロード」。レジュームスイッチ=オフ。
TCPダウンロードスイッチ=オン。TCPダウンロード先=FILE。ダウンロード先=TCPダウンロード先。
出力先ファイル=TCPダウンロード先。出力先初期化。
HEADとBODYをURLへTCPポスト基本。
もし、TCP経過表示設定=オンならば、TCP経過表示。
ヘッダ部分で戻る。
●TCPダウンロード(HEADとURLをFILEへ|HEADとURLからFILEに|FILEへ)
HEADとURLをFILEへTCPゲットダウンロード。
#-----------------------------------------------------------------------
●TCPゲットレジュームダウンロード(HEADとURLをFILEへ|HEADとURLからFILEに|FILEへ)
もし、通信中=1ならば、戻る。
通信中=1。
ヘッダ取得スイッチ=オフ。現在メソッド=「TCPゲットレジュームダウンロード」。レジュームスイッチ=オン。
TCPダウンロードスイッチ=オン。TCPダウンロード先=FILE。ダウンロード先=TCPダウンロード先。
出力先ファイル=TCPダウンロード先。
HEADをURLへTCPゲット基本。
もし、TCP経過表示設定=オンならば、TCP経過表示。
ヘッダ部分で戻る。
●TCPポストレジュームダウンロード(HEADとBODYとURLをFILEへ|BODYとURLからFILEへ|FILEに)
もし、通信中=1ならば、戻る。
通信中=1。
ヘッダ取得スイッチ=オフ。現在メソッド=「TCPポストレジュームダウンロード」。レジュームスイッチ=オン。
TCPダウンロードスイッチ=オン。TCPダウンロード先=FILE。ダウンロード先=TCPダウンロード先。
出力先ファイル=TCPダウンロード先。
HEADとBODYをURLへTCPポスト基本。
もし、TCP経過表示設定=オンならば、TCP経過表示。
ヘッダ部分で戻る。
●TCPレジュームダウンロード(HEADとURLをFILEへ|HEADとURLからFILEに|FILEへ)
HEADとURLをFILEへTCPゲットレジュームダウンロード。
#-----------------------------------------------------------------------
#-----------------------------------------------------------------------
//TCP用処理───────────────────────────────────
●接続時処理
通信中=1。
もし、TCP経過表示設定=オンならば、TCP経過表示。
もし、Header=空ならば、蔵を切断。戻る。
受信回数=0。
TCP開始時間=システム時間。前TCP時間=システム時間。
チャンクスイッチ=オフ。チャンクFiledata=空。チャンク=空。チャンクポケット=空。
Headerを蔵で送信。
●受信時処理
受信回数=受信回数+1。
TimeOutCheck=1。
TCPdとは文字列=蔵で受信。
もし、(一回目スイッチ=はい)ならば//ヘッダーが付いてくる場合=最初
一回目スイッチ=いいえ。
ヘッダ部分=TCPdから「{改行}{改行}」まで切り取る。
飽和判定ヘッダ部分=ヘッダ部分。
飽和判定ヘッダ部分=飽和判定ヘッダ部分から改行まで切り取る。
もし、飽和判定ヘッダ部分から「HTTP/1.1 416 Requested Range Not Satisfiable」を文字検索>0ならば
経過パーセント=100。通信中=0。蔵で切断。
戻る。
ヘッダ部分で反復
もし、対象の1から「Content-Length: 」を文字検索>0ならば
受信予定バイト数=対象の「Content-Length: 」から改行まで範囲切り取る。
もし、レジュームスイッチ=オンならば
受信予定バイト数=受信予定バイト数+受信バイト数。
抜ける。
ヘッダ部分で反復
もし、対象の1から「Transfer-Encoding: chunked」を文字検索>0ならば
チャンクスイッチ=オン。抜ける。
もし、受信予定バイト数=0ならば、受信予定バイト数=「不明」。
もし、ヘッダ取得スイッチ=オンならば
ヘッダ取得スイッチ=オフ。
経過パーセント=100。通信中=0。蔵で切断。
戻る。
もし、チャンクスイッチ=オンならば
チャンクポケット=空。
チャンクFiledata=チャンクFiledata&TCPd。
//初回のみ
もし、チャンク=空ならば
チャンク=チャンクFiledataから改行まで切り取る。もし、チャンク=空ならば、チャンク=チャンクFiledataから改行まで切り取る。
チャンク=「${チャンク}」をナデシコする。
#全体メモ=チャンク&改行&全体メモ。
もし、チャンク=「0」ならば、抜ける。
//------
違えば
1の間
もし、(チャンクFiledataのバイト数)≧チャンクならば
チャンクポケット=チャンクポケット&(チャンクFiledataの1から(チャンク)バイト抜き出す)。
チャンクFiledataの1から(チャンク)バイト削除。
チャンク=チャンクFiledataから改行まで切り取る。
1の間
もし、チャンク=空ならば、チャンク=チャンクFiledataから改行まで切り取る。
違えば、抜ける。
#全体メモ=チャンク&改行&全体メモ。
チャンク=「${チャンク}」をナデシコする。
もし、チャンク=「0」ならば
もし、TCPdから8バイト右部分をバイナリダンプ=『0A,0D,0A,30,0D,0A,0D,0A』ならば
抜ける。
違えば、エラー発生。
違えば、抜ける。
もし、チャンクスイッチ=オンならば
追加分B=チャンクポケットのバイト数。
違えば
追加分B=TCPdのバイト数。
受信バイト数=受信バイト数+(追加分B)。
追加受信バイト数=追加受信バイト数+(追加分B)。
経過パーセント=INT(受信バイト数/受信予定バイト数×100)。
TCP経過時間=(システム時間-TCP開始時間)。
平均ダウンロード速度=INT(追加受信バイト数/(TCP経過時間/1000))。
もし、受信回数%瞬間ダウンロード幅=0ならば
瞬間TCP時間=システム時間-前TCP時間。前TCP時間=システム時間。
瞬間ダウンロード速度=INT(追加分B/(瞬間TCP時間/1000))。
もし、チャンクスイッチ=オンならば
もし、チャンクポケット≠空ならば
もし、TCPダウンロードスイッチ=オンならば、チャンクポケットを出力。
違えば、Filedata=Filedata&チャンクポケット。
チャンクポケット=空。
違えば
もし、TCPダウンロードスイッチ=オンならば、TCPdを出力。
違えば、Filedata=Filedata&TCPd。
//ダウンロード終了処理 普通版
もし、チャンクスイッチ=オフならば
もし、受信予定バイト数=受信バイト数ならば
経過パーセント=100。通信中=0。蔵で切断。
//ダウンロード終了処理 PHP版 修正
違えば
もし、TCPdから8バイト右部分をバイナリダンプ=『0A,0D,0A,30,0D,0A,0D,0A』ならば
経過パーセント=100。通信中=0。蔵で切断。
●切断時処理
通信中=0。
●エラー時処理
蔵のエラーメッセージをいう。
●タイムアウト時処理
エラー発生。
#-----------------------------------------------------------------------
#↑↑ ここまでいじっちゃダメ
#-----------------------------------------------------------------------
#-----------------------------------------------------------------------
#↑ TCPクライアントでHTTPっぽいのセット【GUI部品作成後に置いてね!】 ↑
#-----------------------------------------------------------------------
#-----------------------------------------------------------------------
●ヤフー英日翻訳(Sを|Sから|Sの)
翻訳TEXT=SをURLエンコード。
HEAD=「User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1」。
URL=「http://honyaku.yahoo.co.jp/transtext」。
ソース=HEADをURLへTCPゲット。
ソース=ソースをSJIS変換。
翻訳BOTH=ソースの「<input type="hidden" name="both" value="」から「">」まで範囲切り取る。
翻訳KEY=ソースの「<input type="hidden" name="key" value="」から「">」まで範囲切り取る。
翻訳TIME=ソースの「<input type="hidden" name="time" value="」から「">」まで範囲切り取る。
BODY=「both={翻訳BOTH}&key={翻訳KEY}&time={翻訳TIME}&text={翻訳TEXT}&clearFlg=1&eid=CR-EJ」。
HEAD=「Content-Type: application/x-www-form-urlencoded」。
URL=「http://honyaku.yahoo.co.jp/transtext」。
ソース=HEADとBODYをURLへTCPポスト。
ソース=ソースをSJIS変換。
ソースの「<textarea rows=12 cols=30 name="trn_text" id="trn_textText" class="percent">」から「</textarea>」まで範囲切り取って戻る。
●簡易ヤフー英日翻訳(Sを|Sで|Sの)
ソース=「http://pipes.yahoo.com/poolmmjp/ej_translation_api?_render=rss&text={S}」をHTTPデータ取得。
ソース=ソースをSJIS変換。
ソース=ソースから「description」のタグ切り出し。
ソース=ソース[1]の「<description>」を空に単置換。
ソース=ソースの「</description>」を空に単置換。
ソースで戻る。
最終更新:2009年05月31日 17:29