約 3,089,778 件
https://w.atwiki.jp/shunbo/pages/36.html
ファイル検索
https://w.atwiki.jp/vst_prog/pages/19.html
Microsoft Visual C++ Express Editionのインストール方法(2010年4月14日) Visual C++起動、製品登録 Visual C++を起動 Microsoft Visual C++を起動する。 製品登録ダイアログを開く メニューから「ヘルプ」→「製品登録」を選択。 登録Webページへ移動 「今すぐ登録」を押し、登録Webページを開く。 Windows Live IDに登録しているのメールアドレス、パスワードを入力して「サインイン」を押す。 (Windows Live IDを持っていない場合は別途登録する。登録方法についてはここでは省略する。) 必要事項の入力 必要事項を入力し、「次へ」を押す。 登録キーのコピー 登録キーをコピーし製品登録ダイアログへ貼り付け、「登録を完了する」を押す。 製品登録の完了 カスタマエクスペリエンス向上プログラムについて選択し、「閉じる」を押す。 合計: - 今日: - 昨日: -
https://w.atwiki.jp/samurai3/pages/37.html
小ネタ・パロディ 小ネタ 件名 内容 簡単リセット スタート+セレクトのボタンを押しっぱなしでリセット ムービースキップ セレクトボタンでイベントムービーがスキップできる お手軽高得点 金を10000文以上持ってゲームスタート後即終了させると称号が金持ち侍となって高得点が入る。一撃死モードなら1000点。※ゲームが飽きやすくなるのでやる場合は注意plus版だと得点が調整されていて稼げない。 落ちているアイテムの秘密 落ちているアイテムは毎日0時に復活する。 猫になつかれる 猫に向かって土下座すると頭を撫でてもらえる。これによって猫の好感度が上がり、一定値を越えると主人公の後をついてくる。 足癖の悪い女達 伴侶を家に入れて扉を閉めてから別れると稀に扉を蹴り飛ばして出て行く。伴侶にならないいつせなども行う。伴侶扉を開ける→PCが閉める、を数回行うと蹴りが炸裂。 添い遂げます 伴侶を主人公が強制的に死亡するイベントへ連れて行くと、終了後死亡伴侶としてカウントされる。 キャッシュバック 店にお金を払った後エリアチェンジせず店主を殺すとお金が返ってくる。堂島でも可。 珍しい商品 街道の伝説の商人と二度目の話をするときに「もっと珍しいものはないか」を選択し、「じゃあいい」を選択すると珍しい商品を金のたまごと交換してくれる 探索手助け げんぢゅうろう探索等、探索候補エリアが複数存在する場合、候補エリア移動→全体マップから移動した際に「渡世が終わるまで徒歩で移動しよう」と言われるか言われないかによって該当エリアかどうか判別できる。 辱斬りの秘密 村娘等の女性キャラは下段攻撃を当てると服が破れてミニスカ状態になり、移動力が低下する。主要人物には不可能。刀経験値+10。これは主人公の女性容姿にも適用され、一撃死モードでは辱斬りになった場合死なずに衣服が破れる+体力半減だけで済む。 なすりつけ 辻斬り等、抜刀して襲いかかってきた状態でこちらは抜刀せずに他の侍がいるところまでつかず離さずで連れて行くとその侍と戦わせることができる。刀を抜かない奴の場合は、盾にして辻斬り等の攻撃をそいつに当てさせればいい。主要人物でも戦わせられる。浪人を蹴って抜刀させて連れて行ってもOK。同勢力間では無理。 連殺 □・△・○・×すべてのボタンを同時に押していけばいつまでも連殺できる。(同時でないと途切れる。連打も途切れる)また出るマークはボタンの方向に動く(○なら右) 何人連殺できるかな 100連殺は各勢力の100人斬りで達成可能だが、敵が大勢出てくるイベントでは100人以上の連殺ができることもある。・大団円 桜井家再興ルート or いつせルート or 主膳ルート … 天奈城城門、天奈城城内・桜花党 源十郎ルート … 実利城周辺城内だと狭く視界が悪いので、屋外での連殺がオススメ。途中で敵が途切れることもあるので、場合によってはこちらから向かう必要もある。無尽蔵に出てくる訳ではなく、一定人数を斬るとNPC達は次のイベント発生地点まで走っていき、その場で待機している。 無手で快適移動 走っている最中に無手構えをするとnpcに見咎められる事無く移動できる。ただし立ち止まった際・走り出す前に構えたままだと見咎められる。また、ジャンプ→着地時にも抜刀判定がある。動きの遅い容姿であってもこれなら快適侍生活。(スリよけ効果もある。) 鶏の恵み 鶏に体当たりすると稀にたまごを落とす。更にごく稀に金のたまごを落とすこともある。 王様のネギ? 御幹町のネギ畑に一本だけ大きいネギが生えていて、抜くことができない。王様にしか抜けないのだろうか…(蹴りで長ネギ入手) 無敵のスリ 御幹町で一人で歩いている子供に、お金をスられることがある(50文)。子供なので斬り殺せない(非道が加算されてくだけ)が、スられた後に話しかけて出る選択肢によっては取り返せる。 全体移動不可 初日、宗近との会話をせずに全体マップから移動しようとすると「それどころではない」と言われる。朽葉ヶ原から始まった場合も、徒歩で別マップに移動するまで同様の状態になる。桜井家再興ルート・大団円ルートにて、朽葉ヶ原での戦闘後に全体マップから移動使用とすると「自分で道を切り開け!」と熱いメッセージが表示される。一見の価値あり実利城にて源十郎を峰打ちで倒した後、常次から渡世を受けても源十郎は倒れた状態になっている。この時殺害して全体マップから移動しようとしても「それどころではない」と表示される。渡世をクリアすると親分交代のイベントが発生する。 連れまわし 朝になると別れを切り出す伴侶は帰ってしまう前に話しかけて別れ、時間が来てから再度伴侶にすると継続できる。また別れを切り出してもダッシュで引き離せばセリフを中断させることができ、別れずにいられる。これを利用して餅つきや白刃取りをすることも可能。 説明嬢千鳥 開始早々チンピラに絡まれている説明嬢を放置し続けると村の信頼度が落ち、何もしてないのに店の用心棒が襲い掛かってくるようになる 冷血嬢千鳥 色々説明してくれる説明嬢の千鳥。親切丁寧な人物なのだが、どの亡骸に対しても「死んだ…のですか?」「往来の邪魔ですわね」「当然の報いですわ」というので、場合によっては冷血な人物になることも。例…きゅうへいに対して「当然の報いですわ」おせいや宗近に対して「往来の邪魔ですわね」等 非道のルール 非道が加算されるのは、村人や町人等非武装の住民に攻撃を加えたときのみ。なので、侍に後ろから斬りかかっても非道扱いにはならないし、堂島や伝説の商人のような武装もちの一般人をばっさりやっても大丈夫。ただ渡世時には例外があり、おりょうの辻斬り排除渡世でたまに標的となる農民は、腰にネギを差しているが倒すと非道扱いになる。逆の例として、「食物の怨み」や「処刑侍が参る!」等の懲らしめ系渡世の場合は、相手が非武装でも非道扱いにはならない。 主人公を咎める人々 主要人物や伴侶を含んだNPC達は、主人公が一定の行動をすると咎める場合がある。例…非武装・納刀状態の相手に攻撃する、死体漁りをする、物を破壊する、落ちている物を拾うなど畑の大根を盗ったり木箱を壊したりしたならまだしも、路端のきのこや小枝を拾っただけでも非難されてしまう。 信頼度が高いと… 通常、目の前で抜刀していると住民達は逃げ出し武器を持った相手は応戦するが、信頼度が高くなった状態だと抜刀した姿を見ても信頼度は下がらず、特殊な台詞を言うようになる。 名刀鍬 梅宮宗近は事あるごとに主人公に刀より鍬を持て、と語りかける。実際に鍬を装備しても刀扱いなので、目の前で抜刀していると怒られる。俺の鍬も勿論、マグロやネギも同様である。 けち臭い主膳 主膳に謁見した後話しかけ、褒美に女を希望すると200文だけくれる。 夜這いの夜太郎 夜間の御幹町北東の屋敷庭に夜太郎という名の町民が徘徊している。話を聞いていると伴侶候補のかすみ目当てに夜這いを画策していることが分かる。かすみを伴侶にした状態で夜太郎に話しかけると、主人公と一緒にいる事実に衝撃を受けて逃げていく。 仕切りなおし 処刑侍が参る!等の渡世では依頼対象がエリア外に逃げると失敗になる。しかし追いかけてエリア境界まで行って対象がエリア外に消える前に、○ボタンでこちらが先にエリア移動を行うと失敗にならず、再度エリアに入りなおすことで対象もエリア内の所定の場所に戻っている。 刀VS灯籠 野菜切りのミニ渡世で投げられる灯籠は、通常の武器で攻撃すると硬度が1つ下がってしまう。しかし、硬度無限の武器であれば叩き落とせる。 自分の手は汚さず… 勢力ごとに所属する商人等の人物を殺害すると一気にその勢力の信頼度が最低まで落ち込むが、自分で殺害しなければ信頼度は一切下がらない。堂島を例にすると、体力ギリギリまで削って伴侶に倒してもらう、または気絶させて他の店の用心棒や名の無い侍を連れて来て、戦っている最中に気絶している堂島を斬ってもらう等。また、高種村ならカネ婆やヨネなど、会話の選択肢によって蹴りを繰り出してくるので気絶した堂島の前まで婆さんを押して、堂島を蹴り殺してもらうなども可能。 清成は死すとも… 清成が死んでいる状態でも、おりょう渡世「おりょうのおつかい!」は発生する。渡世内容自体に変更はないが、使者の心の声が追加される。 もう一人の鍛冶屋について 堂島兄弟のどちらかが死亡した状態で、生存している堂島との会話で「もう一人の鍛冶屋について」を選択すると、「誰かに殺されたんだ!」と慟哭する姿を見ることができる。 心の広い桜花党 桜花党へ入るイベントは源十郎との会話の途中で抜刀することで、繰り返し見ることができる。(例)抜刀して二人を峰打ちして祐馬を殺害→マップ入り直しで祐馬なしのイベント※源十郎を殺害すれば主人公頭領イベント キックの鬼・幸太 物語進行初期の主人公嫌いな幸太(位置が家の裏手)に特定の返答をすると話しかけるたびにキックをするようになる。連続で話しかける(○連打)ことで怒涛の連続キックを繰り出してくる。これを利用しておせいや宗近を蹴らせたり、物を破壊させることができる。直ぐに位置に戻ろうとするために望む方向へと行ってくれないのが難点…。 怪奇・金をねだるじいさん 自宅前の詐欺まがいのじいさんは金をねだるだけでなく、金のたまごと"ある"物の交換を持ちかけてくる。興味本位で渡したが最後、じいさんは金のたまごをたいらげ、口から腐ったおにぎりを吐き出す………そして、じいさんは爆笑して帰って行く。話を持ちかけられた後に自宅にたまごを隠すと「どこへやった!!?」と激怒する。 恐怖の侍殺し 侍殺しは未明(0〜5時)に現れる。闇夜の向こうからヨタヨタ走る姿は恐ろしいが、真に恐ろしいのは主人公目掛けて向かってきていること。主人公が屋内にいても追いかけてくるので、渡世や散策で屋敷や道場にいて、いざ戻ろうとした時に…。 物乞い 買い物のとき、選択肢が「買いたい・売りたい」の時にL2を押すと、主人公が土下座をする。「すまん足が滑った・頼む何か恵んでくれ」と出るので恵んでくれを選ぶとアイテムをくれる。ちなみに買い物後にはL1で抜刀もでき、「すまん手が滑った・金をかえせ」と出てくる。金をかえせを選んださい、無手だと戦闘にはならないが、刀を装備していると戦闘になる。 再現できない武器 本作の刀と槍のほとんどは部品があれば同一の武器を作成できる。部品がなく再現できないのは下記の固有グラフィックの武器のみである。【木刀 門下木刀、鍬 俺の鍬、馬通一、微熱、野鎚・古式 野鎚・新式、竹槍、長ネギ、ホウキ、小枝】※マグロとネギはうりこから部品を買えるようになった。 再現刀 本作からオリジナルで武器を作れるようになったので、過去作や次作の刀を再現できる例…・鮫肌刀 鮫鰭の刀身+鮫顎の鍔+鮫眼の柄+鮫尾の柄頭…『侍』の上段構え(2以降は鮫肌丸に)・百花繚乱 鮫鰭の刀身+鮫顎の鍔+鮫眼の柄+鮫尾の柄頭…『サムライウエスタン』の二刀流・鬼男魂 黒鉄の刀身+黒鉄の鍔+黒鉄の柄+黒鉄の柄頭…『サムライウエスタン』の居合構え・絶天 白銀竜の刀身+雷龍の鍔+天の柄+銀の柄頭…『侍道4』の女剣士(先生)の所持刀・絶海 黄金虎の刀身+虎風の鍔+地の柄+金の柄頭…『侍道4』の女剣士(先生)の所持刀 忍びの笹暮? 刀蔵を名前順でソートすると既存の各構えごと(上・中・下・脇・片手・忍者・槍)+一部の固有グラフィック武器の順に並ぶのだが、何故か上段構えの笹暮のみ忍者構えの間に混ざって並ぶ。 百々目鬼の謎の鍔 本作の武器は一部を除いて流通している部品で構成されているが、百々目鬼の鍔は部品にない形状のものが使われている。 武器投擲 武器画面にて武器を投げる選択を選ぶことで、武器を前方へ投げることが可能。これにより、微々たるダメージだが遠くの敵を攻撃することができる。蹴りと同様の扱いで、相手によっては2回当てることで逃げるか、怒って抜刀する。 武器投擲(ショートカット) 落ちている武器を拾った際、すぐに弱攻撃ボタンを押すことでそのまま投げることができる。死体漁りの際に、誤って武器を拾ってしまった時に便利。上級者はこの攻撃で相手を倒してしまうとか…。 用心棒のその後 店主が死亡して用心棒が生存している時に発生再度マップへ入り直すと落ち込む用心棒と会話でき、選択肢によっては用心棒を店主へ導く事ができる。それによって今まで通り買い物が可能となる。用心棒が店主になった場合、殺害してもキャッシュバックはできないので注意。 桜井家三本刀VS影打三本刀 信之助が生存している状態で各勢力最終渡世を受けた場合、両者とも朽葉ヶ原にいるので誘導して戦わせることが可能。 空気の読めない人 エンディングの一つである空気の読めない人ED。信長襲来後に何の予感も発生しなくなった時に幸太とのイベントが発生、そこから行くのが主流だが別のルートもある。おせいと共にのルートを進めて、最後2人で寄り添って関所から出る時に抜刀ボタンが表示されるので、ここで抜刀するとこのEDになる。抜刀しておせいを追い掛けるムービーが流れてからのEDで、正真正銘空気の読めない人を実感できる。 鬼の伝説 攻略本にも記載されていない隠しエンディング。攻略wikiのコメント内でその存在が明らかになった。達成条件など詳細はエンディングのページに書いてある。他のエンディングとは異なる内容で、オフィシャルに触れられていない事も相まって恐ろしさがある。 天邪鬼の討伐2種類 plus版で追加された天邪鬼イベント。巌窟刀二刀流で体力の多い厄介な敵だが、刀を折ることで体力に関係なく倒すことができる。刀を折らずに斬殺すると金の卵10個を入手できる上、討伐後斬蔵に話しかけると「どれだけこのゲームをやり込んだんだ!?」と驚愕される。 パロディ 人物 台詞 元ネタ 主人公 主繕暗殺渡世で「知床総一郎と申す」 侍〜SAMURAI〜 主人公 謎の忍との戦いに勝利後「お前ザジだろ!」 忍道戒 主人公 清成の百人斬り渡世を受ける時の選択肢に「だがしかし断る」 ジョジョの奇妙な冒険第4部/岸辺露伴 みさえ・老婆 死ぬ時のボイス「なんじゃこりゃぁぁ」 太陽にほえろ 天奈城の女 「お米がないならお餅を食べればいいのに」 忍道貞女の台詞/マリーアントワネットの言葉 老婆 死亡時セリフ「我が生涯に一片の悔いなきにしもあらず」 北斗の拳/ラオウ 道場のおっさん 戦闘時セリフ「俺の屍を越えていけぇぇぇぇぇ!!」 俺の屍を越えてゆけ その他 内容 元ネタ 黒生さん家の金太郎 藤森赤ん坊誘拐の渡世 侍〜SAMURAI〜 坪内さん家の八郎 同上 同上 井の頭さん家の茂吉 同上 同上 陰沼さん家のお京 同上 侍道2〜WAY OF SAMURAI 2〜 中村さん家の宗助 同上 同上 さよ 侍称号 同上 ドナ 伴侶 侍〜SAMURAI〜のドナドナの女ver 苑仙 伴侶 侍〜SAMURAI〜の東横苑仙 かすみ 伴侶(ゲスト出演) 侍道2〜WAY OF SAMURAI 2〜 お貞 伴侶 忍道戒 貞女 謎の忍 雪園ルートの登場人物 忍道戒 黒鷹のザジ 黒鷹 刀、血祀殺法、血祀空殺法、武士登り 忍道戒 飛鳥忍者の技 夜鴉 刀、刀の銘 忍道戒 鴉のゴウ 夢胡蝶 刀、技の名前が揚羽、薄羽、楯羽 忍道戒 喪巣忍者を率いる3姉妹 マムルの腰飾り 装飾品、総侍点一定数で入手 風来のシレンシリーズ マンジカブラ 刀、伝説の商人と金の卵10で交換 同上 カブラステギ 刀、伝説の商人と刀の会話後名の無い侍が所持 同上 王将 装飾品、説明に「何故だかお腹がすいてくる」 餃子の王将 アフロ 装飾品、説明に「土曜の夜が〜」 サタデーナイトフィーバー 正井 槍、説明に「とある異国の〜」 マサイ族 炎導 槍、説明文の頭文字を読むと… アクワイア代表の遠藤氏 兜飾り・月独眼竜眼帯 装飾品 伊達政宗の装備 兜飾り・愛 装飾品 直江兼続の装備 コメント欄 事前に投稿内容が出ていないかコメントを確認してから投稿してください。; 編集が無理な方は、コメントに情報よろしくお願いします。 -- new{2008-11-12 (水) 03 48 20}; 雑魚の散り際に「お前は…俺の…」と某粘着エリートパイロットの台詞を吐きます -- 名無し new{2008-11-16 (日) 08 08 17}; 基本弱攻撃の隙は全部防御でキャンセルできるべ -- new{2008-11-17 (月) 13 43 57}; 犬に土下座で小便かけられる -- new{2008-11-17 (月) 17 42 13}; 機密文章は春画、絵日記、お世辞のネタ帳 -- new{2008-11-18 (火) 22 37 29}; 宿場の兵具屋が辻斬りに殺害された後、隣の用心棒が会話の選択によって後日店を引き継ぐ。しかしまた後日「滝に打たれ修行する」と店をたたむ -- new{2008-11-18 (火) 23 41 53}; 「おせいと共に」で最後伴侶同伴させてたら潔く身を引いたって言われて次週も引き継がれなかった -- new{2008-11-19 (水) 01 06 33}; 朝、夜ともに5:59からはマップ移動しない限り時間が進まない。この時間を見計らって探索系の渡世をやると時間を節約できる -- new{2008-11-19 (水) 14 57 02}; 小ネタというほどでもないけど、数珠(体力+20、500文) 護符(体力+50、1000文) 勾玉(体力+100、1500文)資金に余裕があるなら勾玉を買うのが最もコストパフォーマンスが良い -- new{2008-11-19 (水) 15 08 03}; あくまで体感だが、堂島兄弟仲直りの後、適当に頼むでの数値がよくなっているような気がする -- new{2008-11-19 (水) 22 43 23}; かすみを連れた状態で御幹町の夜這いと話すと「ギョエ〜」って叫びながら走っていきます -- new{2008-11-20 (木) 21 18 29}; 道具屋、鍛冶屋等で話しかけて土下座アイコンが出てるときに土下座すると一回だけアイテムを恵んでもらえる -- new{2008-11-21 (金) 14 06 04}; 関係ないが源十郎の死体は馬小屋にあるが馬のいる方に死体を寄せると櫓へと行く一時のバグなのかなんやら… -- new{2008-11-21 (金) 14 56 28}; 実利城の最初のイベントでいつせと祐馬が扉を開けて出て行こうとするので、扉を閉めて妨害する。なんどもやってるといつせが扉を蹴破る -- new{2008-11-21 (金) 23 41 29}; 幸太におせいを蹴らせると両者の蹴り合いを見ることができる。(幸太が蹴ってくるのを利用する) -- new{2008-11-22 (土) 18 12 24}; 槍の炎導の説明文の頭文字をとると「あくわいあ」になる。 -- new{2008-11-22 (土) 18 41 44}; 道場でおっさんとじいさんが「それまで」と言った後から木刀をしまうまで無敵・無抵抗状態になるので、うまく隅に追い込めればずっと斬りつづけることができるので刀のレベル上げに使える(木刀をしまってしまうとできない) -- new{2008-11-23 (日) 09 23 44}; 天奈城渡世、100人切りの選択肢に『だがしかし断る』がある。元ネタはジョジョ4部の岸辺露伴っぽい。 -- new{2008-11-23 (日) 11 49 04}; 藤森の士官イベントの乱闘で「俺の屍を越えてゆけ!!!」って怒鳴るサムライがいます -- new{2008-11-23 (日) 17 04 23}; サムライソードの技名が某格闘ゲームのエセ日本人忍者に見えてしかたがない -- new{2008-11-25 (火) 12 43 04}; 「つれまわし」がダッシュの引き離し以外に抜刀や土下座でもできる事を確認。 -- new{2008-11-25 (火) 20 44 11}; 切り殺してもエリアを変えれば復活するので忍者刀集めとかで便利かも -- new{2008-11-28 (金) 03 20 52}; お貞を峰打ちすると、「おのれ・・・からす・・・」や、「あむりた・・・よい・・とこ・・・」等と言う。 -- new{2008-11-28 (金) 08 30 16}; スタート後,どの勢力にも属せずに刀集めのために殺しまくっても,仕官をしてしまえば何事もなかったことになるので便利。 -- new{2008-11-29 (土) 09 12 55}; ガードで連殺キャンセルできます -- new{2008-11-29 (土) 09 28 38}; 連殺のコマンド入力は、右なら〇、上なら△、左なら□、下なら×となっていると思う -- new{2008-11-30 (日) 18 52 39}; 飾りなんて必要なし、と思った時期が私にもありました。-宿場のでこれい太- -- new{2008-12-04 (木) 19 47 12}; 刀のLv上げは、道場が効率良い、特殊設定の浮かし有効にして抜刀峰打で蹴る。2〜3時間でLv50に -- new{2008-12-04 (木) 20 58 48}; 刀のLv上げ補足、蹴って浮かせたらL1+×のステップで近づくとベネ -- new{2008-12-04 (木) 22 17 06}; 寒いと言ったのにの源十郎の死体で何度か蹴るとその場から消える。 -- new{2008-12-04 (木) 22 52 22}; 上記Lv上げ実践結果 易しいで先生まで蹴り倒すのに所要時間約10分 経験値約3000でした 抜刀されると若干時間かかるかも -- new{2008-12-05 (金) 07 25 52}; ステップは『R1+×』でベネw -- new{2008-12-05 (金) 07 29 31}; 夢胡蝶の技、喪巣胡蝶は明らかに忍道戒の揚羽&薄羽のパロディですw -- 伝説の侍 new{2008-12-05 (金) 15 53 13}; 美咲伴侶で高麗人参買ったら、「なんでそんなの見せるの!?」みたいなリアクションが。他伴侶でもあるかも -- new{2008-12-09 (火) 00 41 10}; 源十郎の死体は二回調べられます。源十郎を殺害して自分が頭領になれるときのみです -- new{2008-12-13 (土) 18 03 46}; ↑源十郎を殺害→画面が暗転する前に調べておく→馬小屋に捨てられている源十郎を調べるで二階いけます -- new{2008-12-13 (土) 18 05 53}; 槍の炎導の説明文の頭文字をとると「あくわいあ」になる。 -- 2008-11-22 (土) 18 41 44 ←アクワイアの社長および侍道3のプロデューサーの苗字が共に「えんどう」。 -- new{2008-12-15 (月) 22 24 53}; 常次渡世「不適な盗賊」は神業の素敵ってのとかけてそうな気がする。 -- new{2008-12-15 (月) 22 27 51}; ↑×2プロデューサーじゃなくてディレクターでした。 -- new{2008-12-15 (月) 22 32 34}; 名も無い侍の胴に描かれた家紋(金箔の絵)を良く見るとハバネロが対に描かれている -- new{2008-12-16 (火) 21 17 59}; ハバネロww -- new{2008-12-18 (木) 02 46 34}; 装飾品アフロの説明文「土曜の夜が・・・」はサタデーナイトフィーバー。リーゼントは喧嘩番長とのコラボ? -- new{2008-12-18 (木) 17 51 25}; 渡世発行人を戦うとき、話しかけずに峰打ちして倒すのと、話し終わってから峰打ちして倒した場合、次に話しかけたときに話が変わる -- new{2008-12-19 (金) 15 01 39}; もみじと同居中、もみじが連れ込む男・郷四郎。侍道2の武藤郷四郎から? -- new{2008-12-29 (月) 13 33 03}; 桜花党の頭領になると常次からアガリ金がもらえます。なんどもせがむと見限られてもらえなくなります。 -- 若侍 new{2009-01-22 (木) 23 10 32}; 装飾品の白鳥の説明文はひぐらしのなく頃にが元ネタ? -- new{2009-01-24 (土) 19 00 59}; ↑それっぽいですね。 -- new{2009-01-24 (土) 19 20 06}; 桜花党の頭領のアガリ金【補足】一日500文が見限られない量。金を貰うとき[100文貰う][500文貰う][1000文貰う]がある。[1000文貰う]を選択しても貰えない事は無いが二階ほど続けると見限られる。600文など少しオーバーでも毎日繰り返せば見限られるッポイです。ちなみに500文オーバで貰うと嫌な返事が返ってくるが、[100文を貰う]を4回もしくはそれ以内、そして次に[500文を貰う]を選択すると嫌な返事が買ってこないので、それを毎日繰り返しても見限られないカモ。 -- new{2009-01-24 (土) 22 32 47}; 主人公の家の布団の上を走ると、すごい埃が・・・ -- new{2009-01-25 (日) 18 02 25}; 宗近 -- 名無しさん (2013-01-30 16 34 51) 桜花党の上がり金は最初2500文あります。引き出してそれ以降は1日500文ずつ、最大2500文まで貯まります。 -- 名無しさん (2013-05-13 17 12 03) 伴侶の隠し衣装はただ手に入れたいキャラを伴侶にした状態でクリア。好感度は…もしかしたら関係するかもです。毎回同居まで行っていたので…そうなると主人公死亡系のエンディングも怪しいです。伴侶も一緒に死んでしまうので -- 名無しさん (2013-05-13 17 45 51) 周回前提の金稼ぎ。1.ある程度お金を持った状態で5日目まで寝る。2.宿場に行き、二刀極ノ書と忍者二刀ノ書を買えるだけ買い、すぐ売る。3.そのお金では買えるだけ買い、、、の繰り返し。4.最後に商人殺してお金回収。 これで元金の25%以上増えます。 -- 名無し (2014-04-07 07 45 16) 一度店主から物を売買すればそのマップから出ない限り売買した分の合計金額は店主が持った状態になります。ある程度金庫にお金があるなら雛菊の能力つかって -- 名無しさん (2014-07-10 15 10 08) 売買する~金庫引き出しを繰り返し、最期に店主を殺ればお金が更に潤います。 -- 名無しさん (2014-07-10 15 14 51) ※99999MAXで売買した場合は当然6桁になるので最終的にその場で雛菊に預けることを忘れずに。 -- 名無しさん (2014-07-10 15 23 45) 侍道4から戻った人向けへ。1回の死体蹴りで何も出なければ、何も拾えません。また、EDの関係でスリや辻斬り、侍殺し以外のNPCの人数は有限です。侍道4の感覚で金策するなら、スリや落ちてる武器を売るのがおススメ。 -- 名無しさん (2020-11-21 22 03 33) 桜花党殲滅イベントでは源十郎を既に倒している場合、新頭領の野武士と戦うことになるが、戦闘後に馬小屋を見るとなぜか源十郎の死体が捨てられている。 -- 名無しの侍 (2022-03-24 19 38 09) 店主死亡後、その店の用心棒に話しかけると会話の選択肢次第で店を引き継ぐ。 -- 名無しの侍 (2022-04-21 22 14 17) 先生を伴侶した状態で道場のおっさんとじいさんに話しかけると普段と違う台詞が聞ける。先生が同伴か、自宅に留守番させているかで台詞が変わる。 -- 名無しの侍 (2022-04-21 22 28 13) ジジイとおせいをぶっ殺した後に加藤茶みたいな奴が畑耕してるけど、マジで誰あれ -- 名無しさん (2022-07-22 07 50 51) あのジジイは主要人物を倒しまくったりフラグ立てれないと現れるだけ。 -- 名無しさん (2023-10-18 21 01 05) +ジジイに抜刀しても高速で逃げられて倒すことはできません。 -- 名無しさん (2023-10-18 21 02 14) 名前 コメント ※送信ボタンを何回もクリックしないで下さい。多重投稿になってしまいます。また重複でないか確認してから投稿してください。
https://w.atwiki.jp/wangandoumei/pages/31.html
#freeze #nofollow #norelated naviで指定しているページは存在しません S [#mee1bd43] search [#ba94ddfd] server [#d69aa1d0] setlinebreak [#va79297e] showrss [#v7316017] size [#e5db48c0] source [#k23d3e24] stationary [#ifad4486] T [#u58dc027] tb [#s5056787] template [#j2adfc3d] topicpath [#vd55c067] touchgraph [#p93402bd] tracker [#rf5296e2] tracker_list [#t78d6d0a] U [#q0183edd] unfreeze [#v039be15] update_entities [#r62603ec] S search 種別 コマンド ブロック型プラグイン 重要度 ★★★★★ 書式 ?cmd=search{ [ word=検索文字列 ] [ type=OR ] [ base=抽出条件 ] } #search( [ 抽出条件1 [[, 抽出条件2 ] [, 抽出条件n ]]] ) 概要 検索文字列の入力フォームを表示し、 指定した文字列を含むページの検索を行います。 引数 コマンド パラメータには検索条件を指定します。 word − 検索する文字列を指定します。省略時は検索条件を入力するページを表示します。 type − OR 指定時、OR検索を行います。省略時はAND検索をおこないます。 ブロック型プラグイン パラメータには検索条件フォームで表示する検索対象ページの抽出条件を指定します。 抽出条件1,2,…n − 入力フォームの抽出条件の選択肢を表示順で指定します。 抽出条件選択時、選択した語句で始まるページ群に対してのみ、検索を実行します。 特定のページ群だけを検索したい場合、検索処理がより早く終了します。 抽出条件を選択しなかった場合は全ページが対象となります。 省略時は選択欄が表示されず、常に全ページが検索対象となります。 プラグイン内設定 PLUGIN_SEARCH_DISABLE_GET_ACCESS GETメソッドによる検索を禁止する(DoS攻撃、SPAMbot、ワーム対策) PLUGIN_SEARCH_MAX_LENGTH 検索する文字列として指定可能な最大文字数 (同) PLUGIN_SEARCH_MAX_BASE 抽出条件として指定可能な件数の最大値 server 種別 ブロック型プラグイン 重要度 ★☆☆☆☆ 書式 #server 概要 サーバーの情報(サーバー名、サーバーソフトウエア、サーバー管理者)を表示します。 setlinebreak 種別 ブロック型プラグイン 重要度 ★☆☆☆☆ 書式 #setlinebreak( [ on | off | default ] ) 概要 入力文章中の改行を改行とみなすかどうかの設定を行います。 PukiWikiが入力文章中の改行をどのように扱うかはpukiwiki.ini内の$line_breakの設定内容によって変わります(下記参照)。 入力文章 $line_break=0; $line_break=1; 文章1文章2 文章1文章2 文章1文章2 setlinebreakプラグインは該当ページの以降の行に関して、 $line_breakの設定に因らず改行をどのように扱うかを指定できるようになります。 引数 パラメータには以降の改行の扱いを指定します。 パラメータが省略された場合、改行とみなすかどうかについての設定を逆転させます。 on − 以降の文章で段落内の改行を改行とみなします($line_break=1と同様)。 off − 以降の文章で改行を無視します($line_break=0と同様)。 改行を行うためには行末にチルダを記述するか、 行中で[[brプラグイン ../A-D#g693034c]]を使用する必要があります。 default − 改行の扱いをそのサイトの$line_break設定に戻します。 showrss 種別 ブロック型プラグイン 重要度 ★☆☆☆☆ 書式 #showrss( RSSへのパス [,[ default | menubar | recent ] [,[ キャッシュ生存時間 ] [, 1 ]]] ) 概要 指定されたRSSを取得し、一覧表示します。 ページの解釈毎にRSSの取得を行う為、頻繁に参照されるページでshowrssを使用される場合はキャッシュ機能を使うことをお勧めします。相手サイトの更新頻度に応じてキャッシュの生存時間を適宜設定して下さい。 引数 RSSへのパスにはRSSへのファイルパスやURLを指定します。 テンプレート名には取得したRSSの表示方法を指定します。省略時はdefault となります。 default − 単純にページを列挙します。 menubar − ページ名の前に黒丸をつけます。MenuBarなど、横幅に制限にある場合に便利です。 recent − recentプラグインの出力のように、ページ名の前に黒丸をつけて更新日付が変わる毎に更新日付を出力します。 キャッシュ生存時間はキャッシュをクリアする期限(1時間単位)です。省略時、キャッシュ機能は無効となります。 第4引数はRSSを取得した日付を表示するかどうかを指定します。1を指定した場合は表示します。省略時は表示しません。 プラグイン内設定 PLUGIN_SHOWRSS_USAGE エラー時に表示される使用方法 備考 動作させるためにはPHP の xml extension が必要です。 size 種別 インライン型プラグイン 重要度 ★★★☆☆ 書式 ( ピクセル数値 ){ 文字列 }; 概要 文字の大きさを指定します。 引数 ピクセル数値には文字の大きさを指定します。 文字列は文字の大きさを変更する文字列を指定します。 プラグイン内設定 PLUGIN_SIZE_MAX 引数として指定可能な最大文字サイズ PLUGIN_SIZE_MIN 引数として指定可能な最小文字サイズ PLUGIN_SIZE_USAGE 引数未指定時に表示されるヘルプ source 種別 コマンド 重要度 ★☆☆☆☆ 書式 ?cmd=source page=ページ名 概要 指定したページの整形前のソースを表示します。 引数 ページ名にはソースを表示するページ名を指定します。ページ名はエンコードされている必要があります。 stationary 種別 コマンド ブロック型プラグイン インライン型プラグイン 重要度 ★☆☆☆☆ 書式 ?plugin=stationary #stationary stationary 概要 stationaryプラグインはプラグイン作成を試みる人のための雛形として作成されました。 stationaryプラグインは単純な文字列を表示する以外は何もしません。 プラグイン内設定 PLUGIN_STATIONARY_MAX プラグイン内で定数定義を行うサンプル T tb 種別 コマンド 重要度 ★☆☆☆☆ 書式 ?plugin=tb tb_id=TrackBackID __mode= view | rss 概要 TrackBackの一覧を表示します。 POSTされた場合は他サイトからのTrackBackに反応します。 引数 tb_idには表示対象ページのTrackBackIDを指定します。 __modeには一覧表示方法を指定します。 view − 人間が見やすい形式で表示します。 rss − RSS形式で表示します。 プラグイン内設定 PLUGIN_TB_LANGUAGE TrackBackのRSSで出力する言語 PLUGIN_TB_ERROR エラー時の返り値 PLUGIN_TB_NOERROR エラーなし時の返り値 備考 pukiwiki.ini.php で、TrackBackを使用する設定($trackback = 1を指定)が行われている必要があります。 template 種別 コマンド 重要度 ★★★★☆ 書式 ?plugin=template refer=テンプレートページ 概要 既存のページをテンプレートとしてページを新規作成します。 ページの新規作成時の雛形とするページの読込み機能との差異は、テンプレートプラグインが雛形とする範囲(行単位)に選択できるのに対して、ページの新規作成で読み込むテンプレートは全文をテキストエリアにコピーする点にあります。 引数 テンプレートページには雛形とするページを指定します。ページ名はエンコードされている必要があります。 プラグイン内設定 MAX_LEN 雛形の開始/終了位置を指定する欄で表示される最大文字数 topicpath 種別 インライン型プラグイン ブロック型プラグイン 重要度 ★☆☆☆☆ 書式 ; #topicpath 概要 パンくずリスト(topicpath)と呼ばれる、現在参照しているウェブページの階層を表現するユーザーインターフェースを提供するプラグインです。 例えば [[PukiWiki/ツアー]] というページに#topicpathと書くと、以下の様な表記に置き換わります。 [[Top FrontPage]] / [[PukiWiki PukiWiki]] / [[ツアー PukiWiki/ツアー]] 基本的には以下の2通りの使い方を想定しています。 「ほげ/ふが/げほ」など、2〜3階層以上の深いページでページの行き来をしやすくするために表示する スキンに組み込み、ページタイトル下のURLの代わりに全てのページで表示する プラグイン内設定 PLUGIN_TOPICPATH_TOP_DISPLAY defaultpageを一番最初に表示するかどうか。 PLUGIN_TOPICPATH_TOP_LABEL $defaultpageに対するラベル PLUGIN_TOPICPATH_TOP_SEPARATOR 階層を区切るセパレータ PLUGIN_TOPICPATH_THIS_PAGE_DISPLAY 現在表示中のページに対するリンクを表示するかどうか PLUGIN_TOPICPATH_THIS_PAGE_LINK 現在表示中のページに対してリンクするかどうか 備考 スキンに組み込む場合は、pukiwiki.skin.php の SKIN_DEFAULT_DISABLE_TOPICPATH に 0を指定して下さい。 touchgraph 種別 コマンド 重要度 ★☆☆☆☆ 書式 ?plugin=touchgraph 概要 TouchGraphWikiBrowser用のインデックスを作ります。 tracker 種別 (コマンド) ブロック型プラグイン 重要度 ★★★★☆ 書式 #tracker( [ 定義名 ] [, ベースページ名 ] ) 概要 [[bugtrack ../A-D#a83293e8]]プラグインのように、定型的な項目をもったページを作るための入力フォームを表示します。 入力項目が固定されている[[bugtrack ../A-D#a83293e8]]プラグインと機能は似ていますが、入力項目を簡単に変更できる点が違います。FAQ,BBS,書評,TODOリストなど使い道はアイディア次第です。 入力項目の定義は config/plugin/tracker/ 以下に所定の書式でテンプレートを作成することで設定できます。[[bugtrack ../A-D#a83293e8]]プラグイン互換の入力項目テンプレートが config/plugin/tracker/default に用意されているので参考にして下さい。 引数 定義名は #tracker(hoge) のようにtrackerのテンプレート名を指定します。省略時は config/plugin/tracker/default が指定されたとみなします。 テンプレート名に続けてフォーム名 / リスト名を指定することができます。ひとつのテンプレートに複数のフォーム形式 / リストフォーマットを用意したいときに便利です。例えば、#tracker(hoge/form_alternative) とすれば config/plugin/tracker/hoge/form_alternative の内容をフォーム表示に使用しますし、#tracker_list(hoge/list_alternative) とすれば config/plugin/tracker/hoge/list_alternative の内容をレイアウトに使用します。 ベースページ名はフォームから作成されるページの親階層となるページ名を指定します。省略時は設置したページとなります。 プラグイン内設定 TRACKER_LIST_EXCLUDE_PATTERN tracker_listで表示しないページ名を正規表現で指定する TRACKER_LIST_SHOW_ERROR_PAGE 項目の取り出しに失敗したページを一覧に表示するか テンプレート テンプレートは基本的に設置するtracker毎に1組(4ページ)作成します。 config/plugin/tracker/hoge hogeテンプレートの項目の内容を記述します。 config/plugin/tracker/hoge/form 入力フォームの項目とレイアウトを記述します。 config/plugin/tracker/default/page 入力した内容をページ化する際のフォーマットを記述します。 config/plugin/tracker/hoge/list tracker_listで表示するリストのレイアウトを記述します。テーブル(|〜|)の書式指定(c) / ヘッダ(h) / フッタ(f) 行は特別扱いします。 予約項目 form で使用できる予約項目 [_name] 記事を記録するページ名を入力するフィールドを表示。省略可。 [_submit] [追加]ボタンを表示。 page / list で使用できる予約項目 [_date] 投稿日時。 [_page] 実際に生成したページ名。ブラケットが付く。 [_refer] #trackerを置いたページ。 [_base] ページのプレフィクス。 tracker()/tracker_list() の第2引数が省略された場合は [_refer] と同じ内容。 [_name] formの [_name] の内容そのもの。記事を記録するページ名の一部として使用する。 [_real] 実際に生成したページ名から、[_refer] + / を除いた名前。デフォルトは [_name] と同じ内容。以下のいずれかの条件に該当するときは、[[tracker ./#rf5296e2]]プラグインが[_real]に連番を付与し、記事を記録するページ名を決定する。・formに [_name] フィールドがない。・[_name] が空か、ページ名として無効な文字を含む。・[_refer] / [_name] という名前のページがすでに存在する。--list で使用できる予約項目 [_update] ページの最終更新日時。 [_past] 最終更新日時からの経過。 tracker_list 種別 (コマンド) ブロック型プラグイン 重要度 ★★★★☆ 書式 #tracker_list( [ 定義名 ] [,[ ベースページ名 ] [,[[ ソート項目 ] [ ソート順 ]] [, 表示上限 ] ]]] ) 概要 [[tracker ./#rf5296e2]]プラグインで作成したページを一覧表示します。 引数 定義名は[[tracker ./#rf5296e2]]プラグインで指定したテンプレート名と同じものを指定します。省略時は config/plugin/tracker/default が指定されたとみなします。 ベースページ名は[[tracker ./#rf5296e2]]プラグインで指定したベースページ名と同じものを指定します。[[tracker ./#rf5296e2]]プラグインでベースページ名を指定していない場合は[[tracker ./#rf5296e2]]プラグインを設置したページを指定します。省略時は設置したページとなります。 第3項目には一覧表示のソートに使う項目およびソート順を指定します。ソート項目は config/plugin/tracker/テンプレート名 のfield項目内の項目から選択して下さい。省略時はページ名となります。ソート順は、ASC(*1)、DESC(*2)、SORT_ASC(*3)、SORT_DESC(*4) をコロン( )の後に指定してください。また、セミコロン(;)で区切ることにより、複数のソート項目、ソート順を指定可能です。例えば、#tracker_list(,,state SORT_ASC;priority SORT_ASC;_real SORT_DESC) と指定した場合は、項目ごとに (1) [state]を昇順 - (2) [priority]を昇順 - (3) [_real](実際のページ名)を降順、の優先順位でソートします。 表示上限は一覧表示するページ数の上限を指定します。省略時は全て表示されます。 U unfreeze 種別 コマンド 重要度 ★★★☆☆ 書式 ?plugin=unfreeze page=ページ名 概要 ページの凍結を解除します。 引数 ページ名には解除するページ名を指定します。ページ名はエンコードされている必要があります。 プラグイン内設定 PLUGIN_UNFREEZE_EDIT 凍結解除時にページの編集フォームを表示するか update_entities 種別 コマンド 重要度 ★☆☆☆☆ 書式 ?plugin=update_entities 概要 CACHE_DIR/entities.dat を生成します。 entities.datはHTMLの実体参照を判定するために用いられるテーブルを格納したファイルです。普通、利用者や管理者が意識する機会はありません。 プラグイン内設定 W3C_XHTML_DTD_LOCATION DTDの場所 備考 配布ファイルに生成済のentities.datが付属するため、通常使用する機会はありません。 naviで指定しているページは存在しません
https://w.atwiki.jp/hushigigensou/pages/207.html
このページの編集は、2011/05/27を持ちまして、締め切りいたしました。 移転先のページで、お願いします。 http //wikiwiki.jp/moshigen/?%A5%A2%A5%B9%A5%C8%A5%ED%BB%A5%A5%B9%A5%BF%A1%BC ハク・レイムイヤーのアストロ札スター 階層 識別 持込み リプレイ 出現条件 行き方 出現百鬼夜行 15階 未識別 不可 可 特になしもし幻Plusを導入すればいつでもいける 受付のにとりに話しかける 通常・特殊百鬼夜行 札を駆使して進んでいく札ダンジョン。 札が大量に落ちているが装備が貧弱であり、終盤は専ら札に頼ることになる。 前半でいかに早く札を識別し、強化するかがクリアの鍵となる。 5,6階に出現するにとりで強力な札が作れるうえ、札でレベリングすれば後半が 物理一辺倒でもなんとかなってしまえるため、難易度は低め。 余談だが絵本が比較的よく落ちているため、狙ってみてもいいかも。 ダンジョンの名称の由来はバズ・ライトイヤーのアストロブラスターで間違いないだろう。 注目しておくべき札 低速の札 最優先。低層で出る確率はやや低いが、一度拾ってしまえばにとり合成が格段に楽になるため、札がほぼ 無尽蔵に強化できる。さらにでかい系を狩ってレベルを上げられるので、そうなったらもうクリアしたも同然。 後半でも敵を無力化するのに使え、言うこと無し。 幸福の札 敵のレベルをあげ、でかい系にして倒せばあっという間にレベルが上がる。 リスクは高いので事前に札は用意しておくべし。 経験値を5000程度稼げればもう用はない。 遠離の札・結界の札 低速ほどではないが狩りやにとり合成に大活躍。 ピンチ脱却や操作ミスリカバリーにも使えるため、拾ったら絶対取っておくべし。 場所替えの札 百鬼夜行は低確率だが出現する。 開幕でモンスターに囲まれることもあるのでピンチの時に頼れる札。 回数の多い一枚を持ち歩こう。 不幸の札・火水木金土日月の札・無能の札 後半の敵はレベルと装備が整っていないとまともに相手できなくなるため、これらの札は必須。 どうせいくらでも拾えるため、がんがん使ってしまってよい。 加速の札・怨返しの札 回数が比較的多いため、にとりフロアまでは回数が多いものを持ち歩こう。 それ以降は無用の長物。 注意すべきこと 回数が1、2の札 回数が1のものは炎上、2のものは召雷が多いが、希に遺失物や無敵、そして親玉変化が混じっていることがある。 何の準備も無しに超東風谷人を引き当ててしまったりしたら・・・ 回数が少ない札は階段部屋で識別するように。 焼却の罠 これが特に痛い。札に頼り切るダンジョンで札を一遍に失ってしまう恐れがあるからだ。 対処法がこれといってないのも痛い。常に札の回数を多めにしておくくらいか。 小傘さま・衣玖さま・パチュリーさま共演 共演して欲しくない三匹の共演が13階以降で実現。 小傘によってパチュリーさまや衣玖さまが動転した場合、絶対にまともに相手をしてはいけない。 無能を投げるくらいなら不幸でレベルを下げてしまおう。一気に弱体化できる。 コメント 親玉変化、遺失物も普通にでます 回数が少ない札を識別するときは注意 (2011-05-22 12 47 08) 2.02、大部屋緋想天ハウスが出ました 12Fで出ました どうしろと (2011-05-22 14 51 46) 親玉はよく出るのでクリアに自信がある人はここで頑張ると手に入りやすい? (2011-05-23 15 57 26) 3Fにて地霊殿御一行確認 Ver2.02です (2011-05-23 19 19 46) 2.02でメントスを拾いました (2011-05-24 14 59 48) 12Fあたりで焼却の罠踏むと絶望するな・・・何もできない (2011-05-24 20 17 05) 上の方がおっしゃるような開幕大部屋百鬼夜行のせいでクリア出来ん。今日は13Fで引き寄せられて1キル乙 (2011-05-25 02 10 45) 2.02で15Fにでかいナズーリンさま確認 札が大量にあると思うので問題ないだろうが一応注意 (2011-05-27 01 12 04) コメントの受付は、移転先でお願いします。 http //wikiwiki.jp/moshigen/?%A5%A2%A5%B9%A5%C8%A5%ED%BB%A5%A5%B9%A5%BF%A1%BC
https://w.atwiki.jp/snagplaces/pages/51.html
最終更新日時:2009年12月24日 (木) 10時25分09秒[編集] はじめに mjpg-streamerは、UVCカメラに対応したストリーミング配信ができます。 静止画のほか、Motion-Jpeg、Java、JavaScript、VideoLANの配信に対応しているので、ストリーミングの基本を見るには最適なパッケージだと思います。 注意事項 libjpeg-develがインストール済み(libjpegだけではダメ) 音声は出ません。音声も欲しい場合はffmpeg等による配信を検討してください。 はじめに注意事項 mjpg-streamerのダウンロードとコンパイル mjpg-streamerの使い方オプション アクセス方法 ストリーミングの表示形態 エラー対策エラー例1:プラグインが見つからない エラー例2:V4L2が動かない 番外:JavaApplet版ビューアCambozolaをアップデートしてみるCambozolaのダウンロードとインストール 番外2:パンチルト対応UVCカメラを接続して一画面で操作できるようにする mjpg-streamerのダウンロードとコンパイル mjpg-streamerのダウンロード(svnなので常に最新版です) # svn co https //mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer コンパイル # cd mjpg-streamer/mjpg-streamer/ # make ちなみに、今回はmake installはしていません。 installしても別に問題はありませんが、プラグインのパスがうまく通っていないので結局フルパスで設定することになります。 [▲上へ] mjpg-streamerの使い方 mjpg-streamerを使用するには以下のコマンドを入力します。表示の確認にはブラウザを使いますが、別途Apacheを用意する必要はありません。 # ./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -y" -o "./output_http.so -w ./www -p 8080 -c hoge hoge" (# ./mjpg_streamer -i "入力側 -d 使用するデバイス" -o "出力側 -w Web表示用のファイル置場 -p ポート -c ユーザ名 パスワード") オプション README等を参照して適当にいじってわかったオプションは以下の通り。 mjpg_streamer -b:バックグラウンドとして起動(終了するにはpsでID確認してkill) -i:入力側の指定(""で囲む) input_uvc.so ※インストールした場合は/usr/local/lib/input_uvc.so -d:UVCデバイスの指定 -y:不明、指定しないとエラーが出る -r:画面解像度(縦x横)UVCデバイスによって設定可能な解像度があるので注意(luvcview等で有効解像度を確認すること) -q:画像クオリティ(1~100) -o:出力側の指定(""で囲む) output_http.so ※インストールした場合は/usr/local/lib/input_uvc.so -w:Webで表示する時のテンプレート ※インストールした場合は/usr/local/www -p:使用ポート -c:認証ユーザ名とパスワード(ユーザ名 パスワード) アクセス方法 通常の使用ポートに8080を使用するので、Linuxファイアウォールでポート8080を許可するようにしましょう(HTTPの解放は80番だけ)。 ブラウザ上では以下のアドレスでアクセスするとデモページが表示されます。 http //ドメイン名 8080 ちなみに、ポートが明示できるためhttpのポート(80番)が指定できますが、Apacheが起動しているとポートの競合を起こして使用できないので、80番ポートを使用してmjpg-streamerを起動するときはhttpdのサービスを切っておきましょう。 ストリーミングの表示形態 5種類の方法が用意されています。 一枚画像のみ サーバプッシュ方式で画像の連続転送 Javaアプレット Javascriptを使用して連続的に画像を読み込む メディアプレイヤー等を使用しての配信 サーバプッシュ方式のはNetscape時代から使用されている技術なようで、IEでは表示できませんがiPod TouchやiPhoneのSafariでは表示できます。むしろIEだけ表示できません。 ちなみに、配信側のサーバはもちろん閲覧側も結構CPUを食います。EeeBOXのようにAtom系CPUでは配信を見ながら他の作業というのがちょっと厳しいかもしれません。 [▲上へ] エラー対策 mjpg-streamerを構築する際、いくつかのエラーがありましたので、その対策法を載せておきます。 エラー例1:プラグインが見つからない MJPG Streamer Version. 2.0 ERROR could not find input plugin Perhaps you want to adjust the search path with # export LD_LIBRARY_PATH=/path/to/plugin/folder dlopen input_uvc.so cannot open shared object file No such file or directory 対応:Input側のプラグインファイルなどをちゃんと明示(フルパス等)しましょう。 エラー例2:V4L2が動かない MJPG Streamer Version. 2.0 i Using V4L2 device. /dev/video0 i Desired Resolution 640 x 480 i Frames Per Second. 5 i Format............ MJPEG Unable to set format Invalid argument Init v4L2 failed !! exit fatal i init_VideoIn failed 対応:Input側のデバイス指定で「-y」を付加しましょう。/dev/video0だけではダメなようです。もしくは別パッケージがデバイスを使用していたときもこのエラーが出ます。 その他のエラー対応例は「MJPG-Streamer › Wiki › ubuntuusers.de」に詳しく載ってます。 [▲上へ] 番外:JavaApplet版ビューアCambozolaをアップデートしてみる mjpeg-streamerが持つCambozolaはバージョンが0.68で、これを配布しているサイトを見に行くと0.70になってました。 配布サイト Cambozola Streaming Image Viewer どれほど機能が向上しているのかわかりませんが、試しにアップデートしてみます。 Cambozolaのダウンロードとインストール # cd www/ # wget http //www.charliemouse.com 8080/code/cambozola/cambozola-latest.tar.gz # tar -zxcf cambozola-latest.tar.gz # cp cambozola-0.70/dist/cambozola.jar cambozola.jar こんだけ。見た目も使用感も特に変わりませんでした。 音声が拾えないのがネックですが、設定の幅が広く使い勝手はなかなかよいです。 そういえばCambozolaはLafonera2.0のWebカメラプラグインでも採用されましたしね。 [▲上へ] 番外2:パンチルト対応UVCカメラを接続して一画面で操作できるようにする mjpeg-streamerはパンチルト対応UVCカメラに対応しており、メニューの「Control」をクリックすると別画面で様々な操作画面を表示することができます。 ただ、わざわざ別画面を表示してパンチルトを調整するのもアレだしなにより見にくいということで、配信画面と操作画面を一画面でできる専用のページを作成しました。 # cd /usr/local/www/ # stream.html stream_and_control.html # vi stream_and_control.html !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http //www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" html xmlns="http //www.w3.org/1999/xhtml" xml lang="ja" head title MJPG-streamer /title meta http-equiv="content-type" content="text/html; charset=Shift_JIS" / link rel="stylesheet" href="style.css" type="text/css" / !--[if IE 6] link rel="stylesheet" href="fix.css" type="text/css" / ![endif]-- script language="javascript" type="text/javascript" src="/functions.js" /script script language="javascript" function send_command(cmd) { document.getElementById( hints ).firstChild.nodeValue = "Send command " + cmd; AJAX_get( /?action=command command= + cmd) } function AJAX_response(text) { document.getElementById( hints ).firstChild.nodeValue = "Got response " + text; } function KeyDown(ev) { ev = ev || window.event; pressed = ev.which || ev.keyCode; switch (pressed) { case 37 send_command( pan_plus ); break; case 39 send_command( pan_minus ); break; case 38 send_command( tilt_minus ); break; case 40 send_command( tilt_plus ); break; case 32 send_command( reset_pan_tilt ); break; default break; } } document.onkeydown = KeyDown; /script /head body div id="sidebar" h1 MJPG-Streamer /h1 h2 a ressource friendly streaming application /h2 div id="menu" a href="index.html" Home /a a href="static.html" Static /a a href="stream.html" Stream /a a href="java.html" Java /a a href="javascript.html" Javascript /a a href="videolan.html" VideoLAN /a a target="_blank" onClick="window.open(this.href, _blank , width=400,height=400 ); return false;" href="control.htm" Control /a a class="active" href="stream_and_control.html" Stream Control /a /div h3 Version info /h3 p v0.1-Custom /p /div div id="content" h1 Stream Control /h1 !--// Stream Area BEGIN //-- img src="/?action=stream" width="512px" height="384px" / !--// Stream Area END //-- !--// Control Area BEGIN //-- form name="command_panel" action="" onsubmit="return false;" div id="hints" style="float right;" communication hints /div input type="button" value="全ての設定をリセット" onclick="send_command( reset )" hr / table border="0" style="float right;" tr td nbsp; /td td input type="button" value="上" title="Tilt +" onclick="send_command( tilt_minus )" / /td td nbsp; /td /tr tr td input type="button" value="左" title="Pan +" onclick="send_command( pan_plus )" / /td td input type="button" value="○" title="Reset" onclick="send_command( reset_pan_tilt )" /td td input type="button" value="右" title="Pan -" onclick="send_command( pan_minus )" / /td /tr tr td nbsp; /td td input type="button" value="下"title="Tilt -" onclick="send_command( tilt_plus )" / /td td nbsp; /td /tr /table 彩度: input type="button" value="+" onclick="send_command( saturation_plus )" input type="button" value="-" onclick="send_command( saturation_minus )" br / コントラスト: input type="button" value="+" onclick="send_command( contrast_plus )" input type="button" value="-" onclick="send_command( contrast_minus )" br / 明るさ: input type="button" value="+" onclick="send_command( brightness_plus )" input type="button" value="-" onclick="send_command( brightness_minus )" br / 感度: input type="button" value="+" onclick="send_command( gain_plus )" input type="button" value="-" onclick="send_command( gain_minus )" br / フォーカス: input type="button" value="+" onclick="send_command( focus_plus )" input type="button" value="-" onclick="send_command( focus_minus )" hr style="clear both;" / /form !--// Control Area END //-- p copy; The a href="http //mjpg-streamer.sf.net" MJPG-streamer team /a | Design by a href="http //andreasviklund.com" Andreas Viklund /a /p /div /body /html 完成図はこんな感じになります。 [▲上へ]
https://w.atwiki.jp/team-b-plus/pages/17.html
管理人 サイト名 URL Bacchus nike+pog http //bacchus0323.blog.shinobi.jp cng 走らずにはいられない http //cng.cocolog-nifty.com/blog/ Gawnak 日々是精進 http //gawnak.blog69.fc2.com/ h+h ダイエットとストレス解消のためのjoglog http //joglog.cocolog-nifty.com/blog/ hamakocrocop 初めてのブログ http //blogs.yahoo.co.jp/hamakocrocop hiroki HirokiのJOGノート http //jog-note.jugem.jp/ mondlicht megaQ-smile http //megaqsmile.cocolog-nifty.com/ nui ヌログ http //nui5243.blog99.fc2.com/ SAIJUN Nike+ipodで最速を目指そう!! http //saijun.cocolog-nifty.com/blog/ Saisuta_Run 2つの趣味ブログ(URAWA+) http //urawareds-run42195.cocolog-nifty.com/blog/ SCBush 俺も俺も http //oremo.blog18.fc2.com/ skbcrew めんどくさがりが走る日記 http //skbcrew.cocolog-nifty.com/blog/ whoa だらだらジョギングの日々(仮) http //ameblo.jp/whoa/ -
https://w.atwiki.jp/mieyanman/pages/22.html
zip2 zip3 [sqlplus_csv] clsDesc.vb Public Class clsDesc Public Property c0Name As String = "" Public Property c1Null As String = "" Public Property c2Type As String = "" End Class clsSelectionRowsMove.vb Public Class clsSelectionRowsMove Dim m_DataGridView As DataGridView = Nothing Dim m_RowsCount As Integer = 0 Dim m_SelectedRowsCount As Integer = 0 Dim m_SelectedRowMin As Integer = 0 Dim m_SelectedRowMax As Integer = 0 Dim m_MoveUpEnabled As Boolean = False Dim m_MoveDownEnabled As Boolean = False Public ReadOnly Property RowsCount() As Integer Get Return m_RowsCount End Get End Property Public ReadOnly Property SelectedRowsCount() As Integer Get Return m_SelectedRowsCount End Get End Property Public ReadOnly Property SelectedRowMin() As Integer Get Return m_SelectedRowMin End Get End Property Public ReadOnly Property SelectedRowMax() As Integer Get Return m_SelectedRowMax End Get End Property Public ReadOnly Property MoveUpEnabled() As Boolean Get Return m_MoveUpEnabled End Get End Property Public ReadOnly Property MoveDownEnabled() As Boolean Get Return m_MoveDownEnabled End Get End Property Public Enum MoveType Top Up Down Bottom End Enum Public Sub New(wp_DataGridView As DataGridView) If wp_DataGridView Is Nothing Then Return End If m_DataGridView = wp_DataGridView m_RowsCount = m_DataGridView.Rows.Count If m_RowsCount 0 Then m_SelectedRowsCount = m_DataGridView.SelectedRows.Count If m_SelectedRowsCount 0 Then Dim w_RowMin As Integer = m_RowsCount Dim w_RowMax As Integer = 0 For i As Integer = m_SelectedRowsCount - 1 To 0 Step -1 If w_RowMin m_DataGridView.SelectedRows(i).Index Then w_RowMin = m_DataGridView.SelectedRows(i).Index End If If w_RowMax m_DataGridView.SelectedRows(i).Index Then w_RowMax = m_DataGridView.SelectedRows(i).Index End If Next m_SelectedRowMin = w_RowMin m_SelectedRowMax = w_RowMax If m_RowsCount 1 Then If m_SelectedRowMin 0 Then m_MoveUpEnabled = True End If If m_SelectedRowMax m_RowsCount - 1 Then m_MoveDownEnabled = True End If End If End If End If End Sub Public Sub SelectionRowsMove(wp_Move As MoveType) If m_DataGridView.SelectedRows.Count = 0 Then Return End If Dim w_SelectionRowList As New List(Of DataGridViewRow) For Each r As DataGridViewRow In m_DataGridView.SelectedRows w_SelectionRowList.Add(r) m_DataGridView.Rows.Remove(r) Next Dim w_Row1 As Integer = 0 Select Case wp_Move Case MoveType.Top w_Row1 = 0 Case MoveType.Up w_Row1 = m_SelectedRowMin - 1 Case MoveType.Down w_Row1 = m_SelectedRowMin + 1 Case MoveType.Bottom w_Row1 = m_DataGridView.Rows.Count Case Else End Select Dim w_Row2 As Integer = w_Row1 + w_SelectionRowList.Count - 1 m_DataGridView.Rows.Insert(w_Row1, w_SelectionRowList.Count) For i As Integer = 0 To w_SelectionRowList.Count - 1 For j As Integer = 0 To m_DataGridView.Columns.Count - 1 m_DataGridView.Rows(w_Row2 - i).Cells(j).Value = w_SelectionRowList(i).Cells(j).Value Next Next m_DataGridView.CurrentCell = m_DataGridView.Rows(w_Row1).Cells(0) For i As Integer = w_Row1 To w_Row2 m_DataGridView.Rows(i).Selected = True Next End Sub End Class frmCsvFile.Designer.vb Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated() _ Partial Class frmCsvFile Inherits System.Windows.Forms.Form フォームがコンポーネントの一覧をクリーンアップするために dispose をオーバーライドします。 System.Diagnostics.DebuggerNonUserCode() _ Protected Overrides Sub Dispose(ByVal disposing As Boolean) Try If disposing AndAlso components IsNot Nothing Then components.Dispose() End If Finally MyBase.Dispose(disposing) End Try End Sub Windows フォーム デザイナーで必要です。 Private components As System.ComponentModel.IContainer メモ 以下のプロシージャは Windows フォーム デザイナーで必要です。 Windows フォーム デザイナーを使用して変更できます。 コード エディターを使って変更しないでください。 System.Diagnostics.DebuggerStepThrough() _ Private Sub InitializeComponent() Me.components = New System.ComponentModel.Container() Me.Label1 = New System.Windows.Forms.Label() Me.Label2 = New System.Windows.Forms.Label() Me.TxtConnect = New System.Windows.Forms.TextBox() Me.TxtTableName = New System.Windows.Forms.TextBox() Me.Button1 = New System.Windows.Forms.Button() Me.Label3 = New System.Windows.Forms.Label() Me.TxtWorkFolder = New System.Windows.Forms.TextBox() Me.DataGridView1 = New System.Windows.Forms.DataGridView() Me.Column1 = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.Column2 = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.Column3 = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.TmiOpen = New System.Windows.Forms.ToolStripMenuItem() Me.TmiAdd = New System.Windows.Forms.ToolStripMenuItem() Me.Label4 = New System.Windows.Forms.Label() Me.Label5 = New System.Windows.Forms.Label() Me.Label6 = New System.Windows.Forms.Label() Me.TxtCsvFile = New System.Windows.Forms.TextBox() Me.TxtSqlFile = New System.Windows.Forms.TextBox() Me.TxtBatFile = New System.Windows.Forms.TextBox() Me.Button2 = New System.Windows.Forms.Button() Me.Button3 = New System.Windows.Forms.Button() Me.ChkDelWorkFile = New System.Windows.Forms.CheckBox() Me.DataGridView2 = New System.Windows.Forms.DataGridView() Me.DataGridViewTextBoxColumn1 = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.DataGridViewTextBoxColumn3 = New System.Windows.Forms.DataGridViewTextBoxColumn() Me.ContextMenuStrip2 = New System.Windows.Forms.ContextMenuStrip(Me.components) Me.TmiTop = New System.Windows.Forms.ToolStripMenuItem() Me.TmiUp = New System.Windows.Forms.ToolStripMenuItem() Me.TmiDown = New System.Windows.Forms.ToolStripMenuItem() Me.TmiBottom = New System.Windows.Forms.ToolStripMenuItem() Me.SplitContainer1 = New System.Windows.Forms.SplitContainer() CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).BeginInit() Me.ContextMenuStrip1.SuspendLayout() CType(Me.DataGridView2, System.ComponentModel.ISupportInitialize).BeginInit() Me.ContextMenuStrip2.SuspendLayout() CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).BeginInit() Me.SplitContainer1.Panel1.SuspendLayout() Me.SplitContainer1.Panel2.SuspendLayout() Me.SplitContainer1.SuspendLayout() Me.SuspendLayout() Label1 Me.Label1.AutoSize = True Me.Label1.Location = New System.Drawing.Point(12, 9) Me.Label1.Name = "Label1" Me.Label1.Size = New System.Drawing.Size(47, 12) Me.Label1.TabIndex = 0 Me.Label1.Text = "Connect" Label2 Me.Label2.AutoSize = True Me.Label2.Location = New System.Drawing.Point(12, 35) Me.Label2.Name = "Label2" Me.Label2.Size = New System.Drawing.Size(62, 12) Me.Label2.TabIndex = 1 Me.Label2.Text = "TableName" TxtConnect Me.TxtConnect.Location = New System.Drawing.Point(81, 6) Me.TxtConnect.Name = "TxtConnect" Me.TxtConnect.Size = New System.Drawing.Size(100, 19) Me.TxtConnect.TabIndex = 2 TxtTableName Me.TxtTableName.Location = New System.Drawing.Point(81, 31) Me.TxtTableName.Name = "TxtTableName" Me.TxtTableName.Size = New System.Drawing.Size(100, 19) Me.TxtTableName.TabIndex = 3 Button1 Me.Button1.Location = New System.Drawing.Point(435, 2) Me.Button1.Name = "Button1" Me.Button1.Size = New System.Drawing.Size(75, 23) Me.Button1.TabIndex = 4 Me.Button1.Text = "csv作成" Me.Button1.UseVisualStyleBackColor = True Label3 Me.Label3.AutoSize = True Me.Label3.Location = New System.Drawing.Point(12, 59) Me.Label3.Name = "Label3" Me.Label3.Size = New System.Drawing.Size(62, 12) Me.Label3.TabIndex = 5 Me.Label3.Text = "WorkFolder" TxtWorkFolder Me.TxtWorkFolder.Location = New System.Drawing.Point(81, 56) Me.TxtWorkFolder.Name = "TxtWorkFolder" Me.TxtWorkFolder.Size = New System.Drawing.Size(100, 19) Me.TxtWorkFolder.TabIndex = 6 Me.TxtWorkFolder.Text = "C \Temp\sql" DataGridView1 Me.DataGridView1.AllowUserToAddRows = False Me.DataGridView1.AllowUserToDeleteRows = False Me.DataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize Me.DataGridView1.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.Column1, Me.Column2, Me.Column3}) Me.DataGridView1.ContextMenuStrip = Me.ContextMenuStrip1 Me.DataGridView1.Dock = System.Windows.Forms.DockStyle.Fill Me.DataGridView1.Location = New System.Drawing.Point(0, 0) Me.DataGridView1.Name = "DataGridView1" Me.DataGridView1.ReadOnly = True Me.DataGridView1.RowTemplate.Height = 21 Me.DataGridView1.Size = New System.Drawing.Size(434, 383) Me.DataGridView1.TabIndex = 7 Column1 Me.Column1.HeaderText = "名前" Me.Column1.Name = "Column1" Me.Column1.ReadOnly = True Column2 Me.Column2.HeaderText = "NULL?" Me.Column2.Name = "Column2" Me.Column2.ReadOnly = True Column3 Me.Column3.HeaderText = "型" Me.Column3.Name = "Column3" Me.Column3.ReadOnly = True ContextMenuStrip1 Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TmiOpen, Me.TmiAdd}) Me.ContextMenuStrip1.Name = "ContextMenuStrip1" Me.ContextMenuStrip1.Size = New System.Drawing.Size(154, 48) TmiOpen Me.TmiOpen.Name = "TmiOpen" Me.TmiOpen.Size = New System.Drawing.Size(153, 22) Me.TmiOpen.Text = "tabファイルを開く" TmiAdd Me.TmiAdd.Name = "TmiAdd" Me.TmiAdd.Size = New System.Drawing.Size(153, 22) Me.TmiAdd.Text = "列追加" Label4 Me.Label4.AutoSize = True Me.Label4.Location = New System.Drawing.Point(234, 9) Me.Label4.Name = "Label4" Me.Label4.Size = New System.Drawing.Size(42, 12) Me.Label4.TabIndex = 8 Me.Label4.Text = "csvFile" Label5 Me.Label5.AutoSize = True Me.Label5.Location = New System.Drawing.Point(234, 35) Me.Label5.Name = "Label5" Me.Label5.Size = New System.Drawing.Size(39, 12) Me.Label5.TabIndex = 9 Me.Label5.Text = "sqlFile" Label6 Me.Label6.AutoSize = True Me.Label6.Location = New System.Drawing.Point(234, 59) Me.Label6.Name = "Label6" Me.Label6.Size = New System.Drawing.Size(40, 12) Me.Label6.TabIndex = 10 Me.Label6.Text = "batFile" TxtCsvFile Me.TxtCsvFile.Location = New System.Drawing.Point(280, 6) Me.TxtCsvFile.Name = "TxtCsvFile" Me.TxtCsvFile.Size = New System.Drawing.Size(100, 19) Me.TxtCsvFile.TabIndex = 11 TxtSqlFile Me.TxtSqlFile.Location = New System.Drawing.Point(280, 31) Me.TxtSqlFile.Name = "TxtSqlFile" Me.TxtSqlFile.Size = New System.Drawing.Size(100, 19) Me.TxtSqlFile.TabIndex = 12 Me.TxtSqlFile.Text = "csv.sql" TxtBatFile Me.TxtBatFile.Location = New System.Drawing.Point(280, 56) Me.TxtBatFile.Name = "TxtBatFile" Me.TxtBatFile.Size = New System.Drawing.Size(100, 19) Me.TxtBatFile.TabIndex = 13 Me.TxtBatFile.Text = "csv.bat" Button2 Me.Button2.Location = New System.Drawing.Point(435, 27) Me.Button2.Name = "Button2" Me.Button2.Size = New System.Drawing.Size(75, 23) Me.Button2.TabIndex = 14 Me.Button2.Text = "csv開く" Me.Button2.UseVisualStyleBackColor = True Button3 Me.Button3.Location = New System.Drawing.Point(435, 52) Me.Button3.Name = "Button3" Me.Button3.Size = New System.Drawing.Size(75, 23) Me.Button3.TabIndex = 15 Me.Button3.Text = "フォルダ開く" Me.Button3.UseVisualStyleBackColor = True ChkDelWorkFile Me.ChkDelWorkFile.AutoSize = True Me.ChkDelWorkFile.Checked = True Me.ChkDelWorkFile.CheckState = System.Windows.Forms.CheckState.Checked Me.ChkDelWorkFile.Location = New System.Drawing.Point(551, 5) Me.ChkDelWorkFile.Name = "ChkDelWorkFile" Me.ChkDelWorkFile.Size = New System.Drawing.Size(85, 16) Me.ChkDelWorkFile.TabIndex = 16 Me.ChkDelWorkFile.Text = "DelWorkFile" Me.ChkDelWorkFile.UseVisualStyleBackColor = True DataGridView2 Me.DataGridView2.AllowUserToAddRows = False Me.DataGridView2.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize Me.DataGridView2.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.DataGridViewTextBoxColumn1, Me.DataGridViewTextBoxColumn3}) Me.DataGridView2.ContextMenuStrip = Me.ContextMenuStrip2 Me.DataGridView2.Dock = System.Windows.Forms.DockStyle.Fill Me.DataGridView2.Location = New System.Drawing.Point(0, 0) Me.DataGridView2.Name = "DataGridView2" Me.DataGridView2.ReadOnly = True Me.DataGridView2.RowTemplate.Height = 21 Me.DataGridView2.Size = New System.Drawing.Size(302, 383) Me.DataGridView2.TabIndex = 17 DataGridViewTextBoxColumn1 Me.DataGridViewTextBoxColumn1.HeaderText = "名前" Me.DataGridViewTextBoxColumn1.Name = "DataGridViewTextBoxColumn1" Me.DataGridViewTextBoxColumn1.ReadOnly = True DataGridViewTextBoxColumn3 Me.DataGridViewTextBoxColumn3.HeaderText = "型" Me.DataGridViewTextBoxColumn3.Name = "DataGridViewTextBoxColumn3" Me.DataGridViewTextBoxColumn3.ReadOnly = True ContextMenuStrip2 Me.ContextMenuStrip2.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.TmiTop, Me.TmiUp, Me.TmiDown, Me.TmiBottom}) Me.ContextMenuStrip2.Name = "ContextMenuStrip2" Me.ContextMenuStrip2.Size = New System.Drawing.Size(99, 92) TmiTop Me.TmiTop.Name = "TmiTop" Me.TmiTop.Size = New System.Drawing.Size(98, 22) Me.TmiTop.Text = "最上" TmiUp Me.TmiUp.Name = "TmiUp" Me.TmiUp.Size = New System.Drawing.Size(98, 22) Me.TmiUp.Text = "上へ" TmiDown Me.TmiDown.Name = "TmiDown" Me.TmiDown.Size = New System.Drawing.Size(98, 22) Me.TmiDown.Text = "下へ" TmiBottom Me.TmiBottom.Name = "TmiBottom" Me.TmiBottom.Size = New System.Drawing.Size(98, 22) Me.TmiBottom.Text = "最下" SplitContainer1 Me.SplitContainer1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _ Or System.Windows.Forms.AnchorStyles.Left) _ Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) Me.SplitContainer1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle Me.SplitContainer1.Location = New System.Drawing.Point(14, 81) Me.SplitContainer1.Name = "SplitContainer1" SplitContainer1.Panel1 Me.SplitContainer1.Panel1.Controls.Add(Me.DataGridView1) SplitContainer1.Panel2 Me.SplitContainer1.Panel2.Controls.Add(Me.DataGridView2) Me.SplitContainer1.Size = New System.Drawing.Size(744, 385) Me.SplitContainer1.SplitterDistance = 436 Me.SplitContainer1.TabIndex = 18 frmCsvFile Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 12.0!) Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font Me.ClientSize = New System.Drawing.Size(770, 478) Me.Controls.Add(Me.SplitContainer1) Me.Controls.Add(Me.ChkDelWorkFile) Me.Controls.Add(Me.Button3) Me.Controls.Add(Me.Button2) Me.Controls.Add(Me.TxtBatFile) Me.Controls.Add(Me.TxtSqlFile) Me.Controls.Add(Me.TxtCsvFile) Me.Controls.Add(Me.Label6) Me.Controls.Add(Me.Label5) Me.Controls.Add(Me.Label4) Me.Controls.Add(Me.TxtWorkFolder) Me.Controls.Add(Me.Label3) Me.Controls.Add(Me.Button1) Me.Controls.Add(Me.TxtTableName) Me.Controls.Add(Me.TxtConnect) Me.Controls.Add(Me.Label2) Me.Controls.Add(Me.Label1) Me.Name = "frmCsvFile" Me.Text = "tabファイルを基にcsvファイルを作成" CType(Me.DataGridView1, System.ComponentModel.ISupportInitialize).EndInit() Me.ContextMenuStrip1.ResumeLayout(False) CType(Me.DataGridView2, System.ComponentModel.ISupportInitialize).EndInit() Me.ContextMenuStrip2.ResumeLayout(False) Me.SplitContainer1.Panel1.ResumeLayout(False) Me.SplitContainer1.Panel2.ResumeLayout(False) CType(Me.SplitContainer1, System.ComponentModel.ISupportInitialize).EndInit() Me.SplitContainer1.ResumeLayout(False) Me.ResumeLayout(False) Me.PerformLayout() End Sub Friend WithEvents Label1 As System.Windows.Forms.Label Friend WithEvents Label2 As System.Windows.Forms.Label Friend WithEvents TxtConnect As System.Windows.Forms.TextBox Friend WithEvents TxtTableName As System.Windows.Forms.TextBox Friend WithEvents Button1 As System.Windows.Forms.Button Friend WithEvents Label3 As System.Windows.Forms.Label Friend WithEvents TxtWorkFolder As System.Windows.Forms.TextBox Friend WithEvents DataGridView1 As System.Windows.Forms.DataGridView Friend WithEvents Column1 As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents Column2 As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents Column3 As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents Label4 As System.Windows.Forms.Label Friend WithEvents Label5 As System.Windows.Forms.Label Friend WithEvents Label6 As System.Windows.Forms.Label Friend WithEvents TxtCsvFile As System.Windows.Forms.TextBox Friend WithEvents TxtSqlFile As System.Windows.Forms.TextBox Friend WithEvents TxtBatFile As System.Windows.Forms.TextBox Friend WithEvents Button2 As System.Windows.Forms.Button Friend WithEvents Button3 As System.Windows.Forms.Button Friend WithEvents ChkDelWorkFile As System.Windows.Forms.CheckBox Friend WithEvents DataGridView2 As System.Windows.Forms.DataGridView Friend WithEvents DataGridViewTextBoxColumn1 As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents DataGridViewTextBoxColumn3 As System.Windows.Forms.DataGridViewTextBoxColumn Friend WithEvents ContextMenuStrip1 As System.Windows.Forms.ContextMenuStrip Friend WithEvents TmiOpen As System.Windows.Forms.ToolStripMenuItem Friend WithEvents TmiAdd As System.Windows.Forms.ToolStripMenuItem Friend WithEvents ContextMenuStrip2 As System.Windows.Forms.ContextMenuStrip Friend WithEvents TmiTop As System.Windows.Forms.ToolStripMenuItem Friend WithEvents TmiUp As System.Windows.Forms.ToolStripMenuItem Friend WithEvents TmiDown As System.Windows.Forms.ToolStripMenuItem Friend WithEvents TmiBottom As System.Windows.Forms.ToolStripMenuItem Friend WithEvents SplitContainer1 As System.Windows.Forms.SplitContainer End Class frmCsvFile.vb Imports System.Text.RegularExpressions Public Class frmCsvFile Private Enum me_Col1 c0Name c1Null c2Type End Enum Private Enum me_Col2 c0Name c1Type End Enum Private m_SelectionRowsMove As New clsSelectionRowsMove(Me.DataGridView2) Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.TxtConnect.Text = pf_GetIni("", "CSV", "Connect", "ユーザ名/パスワード@ネットサービス名") Me.TxtTableName.Text = pf_GetIni("", "CSV", "TableName", "DUAL") Me.TxtWorkFolder.Text = pf_GetIni("", "CSV", "WorkFolder", "C \Temp\sql") Me.TxtCsvFile.Text = pf_GetIni("", "CSV", "csvFile", "csv.csv") Me.TxtSqlFile.Text = pf_GetIni("", "CSV", "sqlFile", "csv.sql") Me.TxtBatFile.Text = pf_GetIni("", "CSV", "batFile", "csv.bat") Me.TmiTop.Enabled = False Me.TmiUp.Enabled = False Me.TmiDown.Enabled = False Me.TmiBottom.Enabled = False End Sub Private Sub Form1_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed Call ps_PutIni("", "CSV", "Connect", Me.TxtConnect.Text) Call ps_PutIni("", "CSV", "TableName", Me.TxtTableName.Text) Call ps_PutIni("", "CSV", "WorkFolder", Me.TxtWorkFolder.Text) Call ps_PutIni("", "CSV", "csvFile", Me.TxtCsvFile.Text) Call ps_PutIni("", "CSV", "sqlFile", Me.TxtSqlFile.Text) Call ps_PutIni("", "CSV", "batFile", Me.TxtBatFile.Text) If Me.ChkDelWorkFile.Checked Then Dim w_SqlFile As String = String.Format("{0}\{1}", Me.TxtWorkFolder.Text, Me.TxtSqlFile.Text) Dim w_BatFile As String = String.Format("{0}\{1}", Me.TxtWorkFolder.Text, Me.TxtBatFile.Text) Call ms_DelFile(w_BatFile) Call ms_DelFile(w_SqlFile) End If End Sub Private Sub DataGridView1_CellPainting(sender As Object, e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles DataGridView1.CellPainting If e.ColumnIndex 0 AndAlso e.RowIndex = 0 Then Call e.Paint(e.ClipBounds, DataGridViewPaintParts.All) Dim rect As Rectangle = e.CellBounds Call rect.Inflate(-2, -2) Call TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), e.CellStyle.Font, rect, e.CellStyle.ForeColor, TextFormatFlags.Right Or TextFormatFlags.VerticalCenter) e.Handled = True End If End Sub Private Sub DataGridView2_CellPainting(sender As Object, e As System.Windows.Forms.DataGridViewCellPaintingEventArgs) Handles DataGridView2.CellPainting If e.ColumnIndex 0 AndAlso e.RowIndex = 0 Then Call e.Paint(e.ClipBounds, DataGridViewPaintParts.All) Dim rect As Rectangle = e.CellBounds Call rect.Inflate(-2, -2) Call TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), e.CellStyle.Font, rect, e.CellStyle.ForeColor, TextFormatFlags.Right Or TextFormatFlags.VerticalCenter) e.Handled = True End If End Sub Private Sub DataGridView2_SelectionChanged(sender As Object, e As System.EventArgs) Handles DataGridView2.SelectionChanged m_SelectionRowsMove = New clsSelectionRowsMove(Me.DataGridView2) If Me.TmiUp.Enabled m_SelectionRowsMove.MoveUpEnabled Then Me.TmiUp.Enabled = m_SelectionRowsMove.MoveUpEnabled Me.TmiTop.Enabled = m_SelectionRowsMove.MoveUpEnabled End If If Me.TmiDown.Enabled m_SelectionRowsMove.MoveDownEnabled Then Me.TmiDown.Enabled = m_SelectionRowsMove.MoveDownEnabled Me.TmiBottom.Enabled = m_SelectionRowsMove.MoveDownEnabled End If End Sub Private Sub TsbTop_Click(sender As System.Object, e As System.EventArgs) Handles TmiTop.Click Call m_SelectionRowsMove.SelectionRowsMove(clsSelectionRowsMove.MoveType.Top) End Sub Private Sub TsbUp_Click(sender As System.Object, e As System.EventArgs) Handles TmiUp.Click Call m_SelectionRowsMove.SelectionRowsMove(clsSelectionRowsMove.MoveType.Up) End Sub Private Sub TsbDown_Click(sender As System.Object, e As System.EventArgs) Handles TmiDown.Click Call m_SelectionRowsMove.SelectionRowsMove(clsSelectionRowsMove.MoveType.Down) End Sub Private Sub TsbBottom_Click(sender As System.Object, e As System.EventArgs) Handles TmiBottom.Click Call m_SelectionRowsMove.SelectionRowsMove(clsSelectionRowsMove.MoveType.Bottom) End Sub Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click If Me.DataGridView1.Rows.Count = 0 Then MsgBox("tabファイルを開いてください。", MsgBoxStyle.SystemModal) Return End If If Me.DataGridView2.Rows.Count = 0 Then MsgBox("列追加してください。", MsgBoxStyle.SystemModal) Return End If Me.TxtCsvFile.Text = String.Format("{0}.csv", Me.TxtTableName.Text) Dim w_CsvFile As String = String.Format("{0}\{1}.csv", Me.TxtWorkFolder.Text, Me.TxtTableName.Text) Dim w_TableName As String = Me.TxtTableName.Text.ToUpper Dim w_CsvSql As String = mf_GetCsvSql(w_CsvFile, w_TableName, Me.TxtConnect.Text) Dim w_SqlFile As String = String.Format("{0}\{1}", Me.TxtWorkFolder.Text, Me.TxtSqlFile.Text) Call ms_StreamWriter(w_SqlFile, w_CsvSql) Dim w_BatCommand As String = String.Format("SQLPLUS {0} @{1}", Me.TxtConnect.Text, w_SqlFile) Dim w_BatFile As String = String.Format("{0}\{1}", Me.TxtWorkFolder.Text, Me.TxtBatFile.Text) Call ms_StreamWriter(w_BatFile, w_BatCommand) Call ms_StartProcessWaitForExit(w_BatFile) Select Case MsgBox("csvファイルを開きますか。", MsgBoxStyle.YesNo Or MsgBoxStyle.DefaultButton2 Or MsgBoxStyle.SystemModal, "確認") Case MsgBoxResult.Yes Call ms_StartProcess(w_CsvFile) Case Else End Select End Sub Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click Me.TxtCsvFile.Text = String.Format("{0}.csv", Me.TxtTableName.Text) Dim w_CsvFile As String = String.Format("{0}\{1}.csv", Me.TxtWorkFolder.Text, Me.TxtTableName.Text) Call ms_StartProcess(w_CsvFile) End Sub Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click Dim w_WorkFolder As String = Me.TxtWorkFolder.Text Call ms_StartProcess(w_WorkFolder) End Sub Private Sub TmiOpen_Click(sender As System.Object, e As System.EventArgs) Handles TmiOpen.Click Dim w_tabFile As String = mf_FileOpenDialog() If w_tabFile = "" Then Return End If Me.TxtTableName.Text = System.IO.Path.GetFileNameWithoutExtension(w_tabFile) Me.TxtCsvFile.Text = String.Format("{0}.csv", Me.TxtTableName.Text) Dim w_FileText As String = mf_GetFileText(w_tabFile) Dim w_DescList As List(Of clsDesc) = mf_FileTextToDescList(w_FileText) Me.DataGridView1.Rows.Clear() If w_DescList.Count 0 Then Me.DataGridView1.Rows.Add(w_DescList.Count) For i As Integer = 0 To w_DescList.Count - 1 Me.DataGridView1.Rows(i).Cells(me_Col1.c0Name).Value = w_DescList(i).c0Name Me.DataGridView1.Rows(i).Cells(me_Col1.c1Null).Value = w_DescList(i).c1Null Me.DataGridView1.Rows(i).Cells(me_Col1.c2Type).Value = w_DescList(i).c2Type Next Me.DataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells) End If End Sub Private Sub TmiAdd_Click(sender As System.Object, e As System.EventArgs) Handles TmiAdd.Click Dim w_ColumnList As List(Of clsDesc) = mf_GetSelectionColumns() Call ms_AddQuery(w_ColumnList) End Sub Private Function mf_GetCsvSql(wp_TxtFile As String, wp_TableName As String, wp_Connect As String) As String Dim sb As New sb() sb.Add("connect {0}", wp_Connect) sb.Add("set echo off") sb.Add("set heading off") sb.Add("set pagesize 0") sb.Add("set feedback off") sb.Add("set linesize 32767") sb.Add("set trimspool on") sb.Add("spool {0}", wp_TxtFile) sb.Add("SELECT ""列番"" ") For i As Integer = 0 To Me.DataGridView2.Rows.Count - 1 sb.Add(" || ,""{0}"" ", i + 1) Next sb.Add(" AS 列番") sb.Add("FROM DUAL;") sb.Add("SELECT ""列型"" ") For i As Integer = 0 To Me.DataGridView2.Rows.Count - 1 sb.Add(" || ,""{0}"" ", mf_ObjectToString(Me.DataGridView2.Rows(i).Cells(me_Col2.c1Type).Value)) Next sb.Add(" AS 列型") sb.Add("FROM DUAL;") sb.Add("SELECT ""列名"" ") For i As Integer = 0 To Me.DataGridView2.Rows.Count - 1 sb.Add(" || ,""{0}"" ", mf_ObjectToString(Me.DataGridView2.Rows(i).Cells(me_Col2.c0Name).Value)) Next sb.Add(" AS 列名") sb.Add("FROM DUAL;") sb.Add("SELECT ""明細"" ") For i As Integer = 0 To Me.DataGridView2.Rows.Count - 1 Dim w_c0Name As String = mf_ObjectToString(Me.DataGridView2.Rows(i).Cells(me_Col2.c0Name).Value) Dim w_c1Type As String = mf_ObjectToString(Me.DataGridView2.Rows(i).Cells(me_Col2.c1Type).Value) Select Case True Case w_c1Type Like "NUMBER*" w_c0Name = String.Format(" || ,"" || TO_CHAR({0}) || "" ", w_c0Name) Case w_c1Type Like "DATE*" w_c0Name = String.Format(" || ,"" || TO_CHAR({0}, YYYY/MM/DD HH24 MI SS ) || "" ", w_c0Name) Case Else w_c0Name = String.Format(" || ,"" || {0} || "" ", w_c0Name) End Select sb.Add("{0}", w_c0Name) Next sb.Add(" AS 明細") sb.Add("FROM {0};", wp_TableName) sb.Add("spool off") sb.Add("set linesize 80") sb.Add("clear") sb.Add("exit") Return sb.ToString End Function Private Sub ms_StreamWriter(wp_File As String, wp_Text As String) Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("shift_jis") Dim sw As New System.IO.StreamWriter(wp_File, False, enc) sw.Write(wp_Text) sw.Close() End Sub Private Sub ms_StartProcessWaitForExit(wp_BatFile As String) Dim p As System.Diagnostics.Process = System.Diagnostics.Process.Start(wp_BatFile) p.WaitForExit() p.Close() p.Dispose() End Sub Private Sub ms_StartProcess(wp_File As String) Dim p As System.Diagnostics.Process = System.Diagnostics.Process.Start(wp_File) End Sub Private Function mf_GetFileText(wp_TxtFile As String) As String Dim ret As String = "" Dim enc As System.Text.Encoding = System.Text.Encoding.GetEncoding("shift_jis") Dim sr As New System.IO.StreamReader(wp_TxtFile, enc) ret = sr.ReadToEnd() sr.Close() Return ret End Function Private Function mf_FileTextToDescList(wp_FileText As String) As List(Of clsDesc) Dim ret As New List(Of clsDesc) Dim a1 As String() = Split(wp_FileText, vbCrLf, -1, CompareMethod.Text) For i As Integer = 0 To a1.Count - 1 Dim a2 As String() = Split(a1(i), vbTab, -1, CompareMethod.Text) Select Case a2.Count Case 3 Dim w_Desc As New clsDesc() w_Desc.c0Name = a2(0) w_Desc.c1Null = a2(1) w_Desc.c2Type = a2(2) ret.Add(w_Desc) Case Else End Select Next Return ret End Function Private Function mf_ObjectToString(wp_Object As Object) As String Dim ret As String = "" If Not wp_Object Is Nothing Then ret = wp_Object.ToString End If Return ret End Function Private Sub ms_DelFile(wp_File As String) System.IO.File.Delete(wp_File) End Sub Private Function mf_FileOpenDialog() As String Dim ret As String = "" Dim d As New OpenFileDialog() d.FileName = "" d.InitialDirectory = Me.TxtWorkFolder.Text d.Filter = "tabファイル(*.tab)|*.tab|すべてのファイル(*.*)|*.*" d.FilterIndex = 1 d.Title = "開くファイルを選択してください" d.RestoreDirectory = True If d.ShowDialog() = DialogResult.OK Then ret = d.FileName End If Return ret End Function Private Function mf_GetSelectionColumns() As List(Of clsDesc) Dim ret As New List(Of clsDesc) For Each r As DataGridViewRow In Me.DataGridView1.SelectedRows Dim w As New clsDesc() w.c0Name = mf_ObjectToString(r.Cells(me_Col1.c0Name).Value) w.c1Null = mf_ObjectToString(r.Cells(me_Col1.c1Null).Value) w.c2Type = mf_ObjectToString(r.Cells(me_Col1.c2Type).Value) ret.Add(w) r.Selected = False Next Return ret End Function Private Sub ms_AddQuery(wp_ColumnList As List(Of clsDesc)) If wp_ColumnList.Count = 0 Then Return End If For Each r As DataGridViewRow In Me.DataGridView2.Rows If r.Selected Then r.Selected = False End If Next Me.DataGridView2.Rows.Add(wp_ColumnList.Count) For i As Integer = 0 To wp_ColumnList.Count - 1 Dim w_Row As Integer = Me.DataGridView2.Rows.Count - i - 1 Me.DataGridView2.Rows(w_Row).Cells(me_Col2.c0Name).Value = wp_ColumnList(i).c0Name Me.DataGridView2.Rows(w_Row).Cells(me_Col2.c1Type).Value = wp_ColumnList(i).c2Type Me.DataGridView2.Rows(w_Row).Selected = True Next Me.DataGridView2.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells) Me.DataGridView2.Focus() End Sub End Class mdlInit.vb Imports System.Runtime.InteropServices Module mdlInit DllImport("KERNEL32.DLL", CharSet =CharSet.Auto) _ Public Function GetPrivateProfileString( _ ByVal lpAppName As String, _ ByVal lpKeyName As String, _ ByVal lpDefault As String, _ ByVal lpReturnedString As System.Text.StringBuilder, _ ByVal nSize As Integer, _ ByVal lpFileName As String) As Integer End Function DllImport("KERNEL32.DLL") _ Public Function WritePrivateProfileString( _ ByVal lpAppName As String, _ ByVal lpKeyName As String, _ ByVal lpString As String, _ ByVal lpFileName As String) As Integer End Function Public Function pf_GetIni(ByVal wp_path As String, ByVal wp_section As String, ByVal wp_key As String, ByVal wp_Default As String) As String Dim ret As String = wp_Default Dim sb As New System.Text.StringBuilder sb.Capacity = 256 Dim i As Integer = GetPrivateProfileString(wp_section, wp_key, wp_Default, sb, sb.Capacity, mf_path(wp_path)) ret = sb.ToString Return ret End Function Public Sub ps_PutIni(ByVal wp_path As String, ByVal wp_section As String, ByVal wp_key As String, ByVal wp_value As String) Dim i As Integer = WritePrivateProfileString(wp_section, wp_key, wp_value, mf_path(wp_path)) End Sub Private Function mf_path(ByVal wp_path As String) As String Dim ret As String = wp_path If ret = "" Then Dim w_path As String = Application.StartupPath If w_path.EndsWith("\") = False Then w_path = w_path "\" End If ret = String.Format("{0}{1}.ini", w_path, My.Application.Info.AssemblyName) End If Return ret End Function End Module sb.vb Public Class sb Private m_sb As System.Text.StringBuilder Public Sub New() m_sb = New System.Text.StringBuilder() End Sub Public Overrides Function ToString() As String Return m_sb.ToString() End Function Public Function Add(ByVal wp_String As String, ByVal ParamArray wp_Args() As Object) m_sb.AppendFormat(wp_String, wp_Args) m_sb.Append(ControlChars.CrLf) Return m_sb End Function Public Function ToStringRemoveLastCrLf() As String Dim ret As String = m_sb.ToString If ret.Length = vbCrLf.Length Then Dim i As Integer = ret.Length - vbCrLf.Length Dim w As String = ret.Substring(i) If w = vbCrLf Then ret = ret.Substring(0, i) End If End If Return ret End Function Public Sub cb() Clipboard.SetText(m_sb.ToString()) End Sub End Class
https://w.atwiki.jp/vstplugins/pages/123.html
VINTAGE WARMER PLUS HookUp (日本輸入元) PSP Audioware (開発元) イントロダクション PSP Audioware社が開発したVintage Warmer Plusは、アナログスタイルのマルチ、またはシングルバンドコンプレッションを忠実にデジタル領域でシミュレートしたプラグラインエフェクトです。コンプレッサー/リミッター、EQを複合化し、ミキシングやマスタリングのツールとしてたいへん重宝します。暖かみのあるアナログサウンド、直感的でビンテージ感溢れるインターフェイス、豊富なプリセット、細かいマニュアル調整と使い易さも群を抜いています。 Vintage Warmer Plusに装備されたシングル/マルチバンドのコンプレッサーとリミッターは、あらゆるソースに対して高い音圧を稼ぐことができます。またオーバードライブさせることで得られる、アナログテープレコーダーそのもののサチュレーション効果も秀逸です。しかも様々なホスト環境でお使いいただけるよう、 WIN/MACのハイブリッド、複数のプラグインフォーマットに対応しています。 主な機能 最高品位のDSPアルゴリズム搭載 シングルバンド、またはマルチバンド信号処理 シングルバンドモードでのハイ/ローシェルフフィルター装備 マルチバンドモードでのハイ/ローのバンドレベル調整 キャリブレーション可能なVUメーター、PPMメーター、オーバードライブ表示 96 kHz/192 kHzのサンプリングレートにも対応 豊富なプリセットを装備、すぐにご使用いただけます 名前 コメント
https://w.atwiki.jp/gtathetrilogy/pages/38.html
GTAVCのストーリーミッション メインストーリーケン・ローゼンバーグ コルテス大佐 リカルド・ディアス ケント・ポール トミー・ベルセッティ 最終ミッションとその前 サブストーリーエイブリー・キャリントン コルテス大佐 ウンベルト・ロビーナ アウンティ・プレ ラブフィスト ミッチ・ベイカー フィル・キャシディ 関連リンク・動画 GTAVCのストーリーミッション オープニングが終わると「In The Beginning...」が始まり、案内された隠れ家に入るとすぐセーブできる。ムービーだけの「An Old Friend」を見終えると本格的にストーリーミッションが始まる。 少し手間はかかるうえ趣味の範囲を出ないが、お金を貯めて他の隠れ家を買うという選択肢もある。 バイスシティ本島が解禁される「Phnom Penh 86」クリアは、オープニングから早くて1時間、多少もたついても1時間半ぐらいで達成できる。 ⅢやSAと違って、最終ミッション1つ前の「Cap the Collector」は物件ミッションが必要で、物件の比重が大きい。 メインストーリー フォレッリファミリーの構成員たるトミー・ベルセッティ。 服役を終えたばかりの彼に任された最初の仕事は、襲撃のせいで大失敗に終わる。 送迎係だったケン・ローゼンバーグは、なにか分かるかもしれないと自分宛の招待状をトミーに譲る。 勧められるがまま出席したパーティでコルテス大佐と知り合いになる。 ケン・ローゼンバーグ The Party Back Alley Brawl Jury Fury Riot コルテス大佐 Treacherous Swine Mall Shootout Guardian Angels Sir, Yes Sir! リカルド・ディアス The Chase Phnom Penh 86 The Fastest Boat Supply & Demand Rub Out ケント・ポール Death Row トミー・ベルセッティ Shakedown Bar Brawl Cop Land 最終ミッションとその前 Cap the Collector Keep Your Friends Close... サブストーリー エイブリー・キャリントン Four Iron Demolition Man Two Bit Hit コルテス大佐 All Hands On Deck! ウンベルト・ロビーナ Stunt Boat Challenge Cannon Fodder Naval Engagement Trojan Voodoo アウンティ・プレ Juju Scramble Bombs Away! Dirty Lickin s ラブフィスト Love Juice Psycho Killer Publicity Tour ミッチ・ベイカー Alloy Wheels of Steel Messing with the Man Hog Tied フィル・キャシディ Gun Runner BoomShine Saigon [部分編集] 関連リンク・動画 Area GTA GTA Wiki + 決定版 + オリジナル + 他のバージョン