約 2,502,787 件
https://w.atwiki.jp/wnt0/pages/24.html
#include iostream #include string using namespace std; class Prototype { public virtual Prototype* CreateClone() = 0; virtual void SetStatus(int status) {} virtual int GetStatus() {} }; class Implement public Prototype { public Implement() { m_status = 0; } Implement(const Implement imp) { m_status = imp.m_status; } virtual Prototype* CreateClone() { return new Implement(*this); } virtual void SetStatus(int status) { m_status = status; } virtual int GetStatus() { return m_status; } private int m_status; }; int main() { Prototype *obj = new Implement; obj- SetStatus(123); Prototype *clone = obj- CreateClone(); cout clone- GetStatus() endl; // delete はどうするか。。 // obj はここで new してるし。 return 0; } 参考サイト デザインパターンを“喩え話”で分かり易く理解する http //www.netlaputa.ne.jp/~hijk/study/oo/designpattern.html TECHSCORE http //www.techscore.com/tech/DesignPattern/index.html/ Programing Place http //www.geocities.jp/ky_webid/index_old.html デザインパターンの骸骨たち http //www002.upp.so-net.ne.jp/ys_oota/mdp/ デザインパターンの使い方 Prototype http //japan.internet.com/developer/20090515/26.html
https://w.atwiki.jp/carstereo/pages/90.html
Tell me that you want me baby Tell me that it s true Say the magic words and destroy the world for you An army for the broken hearted Marching through the streets Citizens surrender and they re falling at your feet I wanna hold you My skies are turning black (Feels like a heart attack) And I d do anything you ask I wanna hold you bad I d Melt the polar ice caps baby Watch them flood the earth I d do anything to show you what your love is worth So, won t you show me your devotion? Heal my aching heart Keep polluting like the ocean, tearing me apart I wanna hold you My skies are turning black (Feels like a heart attack) And I d Do anything you ask I wanna hold you bad Attention please, we interrupt this program, with some disturbing news, A world wide evacuation, we re going to lose, Make mobilize a nation, I guess it shows us just the love you do (music break) I wanna hold you My skies are turning black Feels like a heart attack And I d do anything you ask I wanna hold you bad, bad, bad I d do anything you ask I wanna hold you bad
https://w.atwiki.jp/ypen/pages/68.html
G8 summit pledges 80% cut in carbon emissions Leaders of the Group of Eight industrialized nations have pledged to reduce greenhouse gas emissions by at least 80 percent by the year 2050. A declaration to this end was issued at the G8 summit in L Aquila, Italy on Wednesday. Participants reaffirmed a pledge made at last year s G8 Summit in Japan of at least halving overall greenhouse gas emissions by 2050. However, the statement endorses a more ambitious goal of an 80 percent reduction or above for industrialized countries. The statement also calls on emerging economies, including China and India, to take action to cut a specified amount of greenhouse gas emissions by a pre-determined year. These countries at present are not obliged to reduce carbon dioxide emissions. On the state of the global economy, the statement says that signs of stability have emerged, and that the worst is over. But it acknowledges that the situation remains bleak, and large risk factors persist. The statement pledges to boost employment to address the rising unemployment rate. The measures include providing technical training programs and issuing financial benefits to those undergoing training so they can support themselves until they find work. NHK reports on Xinjiang riots interrupted in China Chinese authorities have interrupted NHK s international TV reports of the ethnic unrest in Xinjiang several times recently. NHK World Premium, which airs in China under government control, reported the rioting in detail on Tuesday night. The program was blacked out for 42 seconds in the middle of an interview with a former student leader of the 1989 Tiananmen Square protests. Wuer Kaixi is a Uygur who now lives in Taiwan. Wednesday s mid-day news program was also blacked out for 25 seconds while showing World Uyghur Congress leader Rebiya Kadeer. China accuses her of inciting the ethnic unrest in Xinjiang. She was among the Uygurs living in the United States who took to the streets of Washington to protest the Chinese government. Security tightened in Xinjiang capital Chinese authorities have tightened security in Urumqi, the capital of China s Xinjiang Uygur Autonomous Region, to prevent further ethnic violence. Fresh units of armed police arrived in Urumqi on Wednesday, and are deployed mainly in Uygur communities. China s police chief, Public Security Minister Meng Jianzhu, also arrived in the city on Wednesday. He told a unit of about 200 security officers that a few separatists have incited the violence and that the police will defeat them. Armed police marched through Urumqi on Wednesday as nervous residents looked on. Most stores in the central part of Urumqi remained closed. An ethnic Han woman said the large police presence made her feel safe, but that she is afraid of Uygurs. An ethnic Han man said Uygurs and Hans in the region remain strongly united. He said he wants Chinese President Hu Jintao to come to Xinjiang and personally take charge of restoring order. President Hu cut short his trip to Italy on Wednesday to fly home, canceling plans to attend the Group of Eight summit. Uygurs in Japan protest against China Uygurs living in Japan have staged a protest against the Chinese government s handling of rioting in Xinjiang Uygur Autonomous Region. A group of 10 people demonstrated in front of the Chinese Embassy in central Tokyo on Wednesday. They chanted for China s government to give freedom to Uygurs. A representative of the group said the Chinese government is concealing the fact that police cracked down on a peaceful demonstration and that hundreds of Uygurs have died. The representative read a statement demanding that the Chinese government stop its oppression of the Muslim minority group. The statement also called for unrestricted reporting on the situation by foreign media. One of the protesters said the unrest is the result of economic disparity and ethnic discrimination. He said Uygurs should be treated as equal citizens in Chinese society. Corporate failures in Japan rising Corporate failures in Japan between January and June rose more than 5 percent compared with the previous 6-month period. Private research firm Teikoku Databank says 7,023 companies went under, each with debts of at least 10 million yen, or about 106,000 dollars. This was up 5.5 percent from the preceding 6 months, when the full effect of the financial crisis had yet to be felt. Sluggish sales drove more real estate agents into bankruptcy, and small- and mid-sized subcontractors were also hit hard by sharp production cuts at major auto and electronic makers. The combined debt of the failed companies was nearly 4.6 trillion yen, or around 48.8 billion dollars. This was around half the figure for the previous 6 months.
https://w.atwiki.jp/soundcreate/pages/25.html
【 T o s h i 】 こんにちは。SoundCreateのToshiと申します。よろしければ読んでやってください。 解説 公立はこだて未来大学2年生。長所は短所がないところ。短所は嘘をつくところ。 DAWを使い始めて1年と半年くらい。作曲を始めたのも同じ頃から。SoundCreateにはSound Create EXTRA-Halloween style-から参加。 Sound Create以外にも軽音楽部に所属。Carolineというバンドで活動中。パートはギター。 ギターに関しては自他共に認める変態だが、腕はイマイチ。 その他 某ハンバーガーショップ店員。 【 ディスコグラフィー 】 Toshi名義 Bounds for Newfront Sound Create EXTRA-Halloween style-収録。人生初の打ち込みによる楽曲。 打ち込み音楽の基本のきの字も知らない自分が、聴いてきた曲やギターの経験をどうにか して作った曲。結果どうにもならなかった(笑)ノリとしてはダンスミュージックに近い… かな?なんて勝手に思う。音楽のジャンルとかあまり良く分からないが。それでも思い出 深い曲となった。 Last Night Sound Create-pre Vol.4 -収録。数々のボツ曲を経て完成に至った曲。かなりの難産だっ た。締め切りを2、3度ぶち破った結果がこれ。なるべく曲の展開がわかりやすいように、 ということを意識。最初の段階ではこんな雰囲気の曲になる予定ではなかったのは内緒。 初めてピアノを導入したり、新しい音源を使用したりと、色々試したりなんかした。 色彩-shikisai- Sound Create Vol.4収録。最初の段階で、もうちょっと色んな事をやってみようと考えて 始めた曲。テーマは華やかさを和とロックで表現すること。ちょっとでもそんな雰囲気を 感じとって頂ければ幸いです。こんなところで高校ぐらいまでやっていた和太鼓の経験を 生かすことができた。間奏の和太鼓のフレーズは、左右のパンの掛け合いがミソ(だと思っ てる)こんな曲があってもいいかなって思う。 Dancin' With My Android Sound Create EXTRA2収録。アイディア自体は結構前からあったのだが、今ひとつ納得出 来ずにいたのを引っ張り出してみた。ダンスミュージックをライヴでやってみた的なノリ で作った曲。実際こんな曲で踊れと言われても困るんだろうけど。ダンスミュージックの 中に重たいフレーズを入れると面白いかもと思いチャレンジ。さて評価はいかに(笑) その他 High Speed Jet Flight ~キミに黄金の夕焼けが見えるか~ Sound Create-pre"Vol.4"-、Sound Create Vol.4収録。koma君とのVS曲として完成したこ の曲は、koma君宅に1週間缶詰になって作られたもの。VS曲をどうつくればいいのか、ど んな曲にするのかなど、色々なことが分からない状態で始まった作曲作業は、序盤で早く も頓挫しそうな勢いだった(笑) が、結果的に面白い曲になったと思う。曲の作り方や考 え方が違う人と共同で制作するというのは非常に良い経験になったし、刺激にもなった。 いやー、楽しかったなぁ。 【 制 作 環 境 】 作曲ソフト digidesign PRO TOOLS LE8 お世話になっているDAWソフト。レコーディングやミックスなどに大きな力を発揮する(と いう評価) もともとバンドの曲作りを目的として購入したので、打ち込みは他のソフトの方がやりや すいかも知れないが、個人的には非常に好み。 ギターの音は主にこのソフトの音源を使用。 TuxGuitar ギターのTAB譜を作るのに非常に便利なフリーソフト。 使用機材(レコーディング機材) digidesign MBOX2 PRO TOOL LE8とセットのオーディオインターフェース。 2IN/2OUTで、MIDI入出力も装備。 AKAI LPK25 MIDIキーボード。ノートPCの組み合わせを想定して作られたモデルだそうで。 25鍵なんで、物足りない時もあるが置く場所もないんで我慢。 audio-technica ATH-M30 愛用のヘッドホン。いつもこれでモニタリング。 使用機材(楽器) epiphone SG G-400 一番最初に買ったエレキギター。レスポールを買うつもりで行った楽器店で発見し、一目 惚れをして購入。立って弾くとヘッド落ちするというSGの難点はあるものの、SGらしい 中音域は病みつきに。木材はマホガニーなので軽く、扱いやすい。 ユリの花のペイントを施す勇気はな(ry Fender Japan STRATOCASTER ST71-TX/3TS 高校の時に購入したフェンダーのストラト。もともとはピックアップにUSA製テキサスス ペシャルが載っていたが、現在はブリッジのみSeymour DuncanのHotrailsに交換。 ボディの木材はアッシュ。重たい木なのでいい意味で“詰まった”音がし、音の分離も良く 音圧もある。 GIO Ibanez GSR370A TBS 友人から借りているベース。借りているというか、ほぼ俺のものになってい(ry 主にバンドのデモを録る時に活躍しているが、たまにSoundCreateの活動でも使用。 その他エフェクター多数。 【 リ ン ク 】 Twitter Toshi11458 mixi Toshi11458 フォロー、マイミク申請お待ち申し上げております。
https://w.atwiki.jp/gtavi_gta6/pages/995.html
Los Santos Freeway(US Route 13)(Interstate 1) imageプラグインエラー ご指定のURLまたはファイルはサポートしていません。png, jpg, gif などの画像URLまたはファイルを指定してください。 Los Santos Freeway(US Route 13)(Interstate 1)概要 解説 路線 道路 概要 日本語:ロスサントス高速道路 業種:高速道路 所在地:ロスサントス群 解説 サンアンドレアス州の国道13号線(US Route 13)、州連絡高速道路1号線(Interstate 1)の一部の名称 起点はイーストバインウッドにある、デルペロ高速道路と接続するJCT。 終点は、パロミノ高速道路との合流地点(ボーリングブローグ刑務所の付近)。また、そこでセノーラ高速道路に接続する。 全線が二車線の高速道路。主にタタディアム山地の麓を通る。 都市に近いためもあってか交通量が多い。交通量に対して車線の数が少ないため、やや渋滞気味になることもしばしばあり、さらに交通事故も非常に多い。低速のバスやトレーラーなどで走ると、後ろからクラクションを鳴らされまくることもある。 最高速度60マイル。 因みに、本路線からパロミノ高速道路に接続する道路は存在するが、何故かパロミノ高速道路から本路線に接続可能な道路は存在しない。 路線 南方面を上り。北方面を下りとする。 道路番号 道路名 地名 備考(道路沿いの主な建築物など) US.intersate 2(州間高速道路2号線) デルペロ高速道路 バインウッド イーストバインウッド 州間高速道路1号線および国道13号線 ロスサントス高速道路 上り線出入口C1 Downtown,Vinewood方面。出口B1 デルペロ高速道路方面。出口A1 デルペロ高速道路方面。下り線入口、下り線出口C1セノーラ高速道路。ロスサントス高速道路終点ストロベリーアベニュー合流。 バインウッドヒルズ向かいにタタディアム山地 タタディアム山地いランドアクト貯水池および事業所。 グレートチャパレル 未舗装道路から上り線へのみ合流あり。 グランドセノーラ砂漠 ボーリングブローク刑務所。 パロミノ高速道路、セノーラ高速道路 サンチアンスキー山脈 ロンオルタネットウインドファーム ボーリンググブローグJCT 道路 (画像提供よろしくお願いします)
https://w.atwiki.jp/touhoukashi/pages/2296.html
【登録タグ G NANA HOLIC III Nana Takahashi SOUND HOLIC 地霊 -CHIREI- 封じられた妖怪 ~ Lost Place 暗闇の風穴 曲】 【注意】 現在、このページはJavaScriptの利用が一時制限されています。この表示状態ではトラック情報が正しく表示されません。 この問題は、以下のいずれかが原因となっています。 ページがAMP表示となっている ウィキ内検索からページを表示している これを解決するには、こちらをクリックし、ページを通常表示にしてください。 /** General styling **/ @font-face { font-family Noto Sans JP ; font-display swap; font-style normal; font-weight 350; src url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/10/NotoSansCJKjp-DemiLight.woff2) format( woff2 ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/9/NotoSansCJKjp-DemiLight.woff) format( woff ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/8/NotoSansCJKjp-DemiLight.ttf) format( truetype ); } @font-face { font-family Noto Sans JP ; font-display swap; font-style normal; font-weight bold; src url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/13/NotoSansCJKjp-Medium.woff2) format( woff2 ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/12/NotoSansCJKjp-Medium.woff) format( woff ), url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2972/11/NotoSansCJKjp-Medium.ttf) format( truetype ); } rt { font-family Arial, Verdana, Helvetica, sans-serif; } /** Main table styling **/ #trackinfo, #lyrics { font-family Noto Sans JP , sans-serif; font-weight 350; } .track_number { font-family Rockwell; font-weight bold; } .track_number after { content . ; } #track_args, .amp_text { display none; } #trackinfo { position relative; float right; margin 0 0 1em 1em; padding 0.3em; width 320px; border-collapse separate; border-radius 5px; border-spacing 0; background-color #F9F9F9; font-size 90%; line-height 1.4em; } #trackinfo th { white-space nowrap; } #trackinfo th, #trackinfo td { border none !important; } #trackinfo thead th { background-color #D8D8D8; box-shadow 0 -3px #F9F9F9 inset; padding 4px 2.5em 7px; white-space normal; font-size 120%; text-align center; } .trackrow { background-color #F0F0F0; box-shadow 0 2px #F9F9F9 inset, 0 -2px #F9F9F9 inset; } #trackinfo td ul { margin 0; padding 0; list-style none; } #trackinfo li { line-height 16px; } #trackinfo li nth-of-type(n+2) { margin-top 6px; } #trackinfo dl { margin 0; } #trackinfo dt { font-size small; font-weight bold; } #trackinfo dd { margin-left 1.2em; } #trackinfo dd + dt { margin-top .5em; } #trackinfo_help { position absolute; top 3px; right 8px; font-size 80%; } /** Media styling **/ #trackinfo .media th { background-color #D8D8D8; padding 4px 0; font-size 95%; text-align center; } .media td { padding 0 2px; } .media iframe nth-of-type(n+2) { margin-top 0.3em; } .youtube + .nicovideo, .youtube + .soundcloud, .nicovideo + .soundcloud { margin-top 0.75em; } .media_section { display flex; align-items center; text-align center; } .media_section before, .media_section after { display block; flex-grow 1; content ; height 1px; } .media_section before { margin-right 0.5em; background linear-gradient(-90deg, #888, transparent); } .media_section after { margin-left 0.5em; background linear-gradient(90deg, #888, transparent); } .media_notice { color firebrick; font-size 77.5%; } /** Around track styling **/ .next-track { float right; } /** Infomation styling **/ #trackinfo .info_header th { padding .3em .5em; background-color #D8D8D8; font-size 95%; } #trackinfo .infomation_show_btn_wrapper { float right; font-size 12px; user-select none; } #trackinfo .infomation_show_btn { cursor pointer; } #trackinfo .info_content td { padding 0 0 0 5px; height 0; transition .3s; } #trackinfo .info_content ul { padding 0; margin 0; max-height 0; list-style initial; transition .3s; } #trackinfo .info_content li { opacity 0; visibility hidden; margin 0 0 0 1.5em; transition .3s, opacity .2s; } #trackinfo .info_content.infomation_show td { padding 5px; height 100%; } #trackinfo .info_content.infomation_show ul { padding 5px 0; max-height 50em; } #trackinfo .info_content.infomation_show li { opacity 1; visibility visible; } #trackinfo .info_content.infomation_show li nth-of-type(n+2) { margin-top 10px; } /** Lyrics styling **/ #lyrics { font-size 1.06em; line-height 1.6em; } .not_in_card, .inaudible { display inline; position relative; } .not_in_card { border-bottom dashed 1px #D0D0D0; } .tooltip { display flex; visibility hidden; position absolute; top -42.5px; left 0; width 275px; min-height 20px; max-height 100px; padding 10px; border-radius 5px; background-color #555; align-items center; color #FFF; font-size 85%; line-height 20px; text-align center; white-space nowrap; opacity 0; transition 0.7s; -webkit-user-select none; -moz-user-select none; -ms-user-select none; user-select none; } .inaudible .tooltip { top -68.5px; } span hover + .tooltip { visibility visible; top -47.5px; opacity 0.8; transition 0.3s; } .inaudible span hover + .tooltip { top -73.5px; } .not_in_card span.hide { top -42.5px; opacity 0; transition 0.7s; } .inaudible .img { display inline-block; width 3.45em; height 1.25em; margin-right 4px; margin-bottom -3.5px; margin-left 4px; background-image url(https //img.atwikiimg.com/www31.atwiki.jp/touhoukashi/attach/2971/7/Inaudible.png); background-size contain; background-repeat no-repeat; } .not_in_card after, .inaudible .img after { content ; visibility hidden; position absolute; top -8.5px; left 42.5%; border-width 5px; border-style solid; border-color #555 transparent transparent transparent; opacity 0; transition 0.7s; } .not_in_card hover after, .inaudible .img hover after { content ; visibility visible; top -13.5px; left 42.5%; opacity 0.8; transition 0.3s; } .not_in_card after { top -2.5px; left 50%; } .not_in_card hover after { top -7.5px; left 50%; } .not_in_card.hide after { visibility hidden; top -2.5px; opacity 0; transition 0.7s; } /** For mobile device styling **/ .uk-overflow-container { display inline; } #trackinfo.mobile { display table; float none; width 100%; margin auto; margin-bottom 1em; } #trackinfo.mobile th { text-transform none; } #trackinfo.mobile tbody tr not(.media) th { text-align left; background-color unset; } #trackinfo.mobile td { white-space normal; } document.addEventListener( DOMContentLoaded , function() { use strict ; const headers = { title アルバム別曲名 , album アルバム , circle サークル , vocal Vocal , lyric Lyric , chorus Chorus , narrator Narration , rap Rap , voice Voice , whistle Whistle (口笛) , translate Translation (翻訳) , arrange Arrange , artist Artist , bass Bass , cajon Cajon (カホン) , drum Drum , guitar Guitar , keyboard Keyboard , mc MC , mix Mix , piano Piano , sax Sax , strings Strings , synthesizer Synthesizer , trumpet Trumpet , violin Violin , original 原曲 , image_song イメージ曲 }; const rPagename = /(?=^|.*
https://w.atwiki.jp/rs_wiki/pages/222.html
Information sites could be a very marketable and also profitable tool if perhaps utilized correctly. Capitalizing via blogs is only a couple of snatching the interest of an viewers and not doing any actual sellers marketing. On this page you will understand the actual 13 most important measures to be able to effective writing a blog. one) Where to start? You should get started your blog using a totally free blog web hosting support such as Log Home or Blog writer. Applying a free web site web host services means that you can start blogging instantly devoid of any progress familiarity with website programs, web hosting, or even coding. The item lets you focus on your articles instead of the inner maintenance of the blog. The most effective good thing about beginning with a free of charge services are, in the event that your website doesn t acheived success you never get rid of hardly any money or will you be eventually left keeping niche. The great thing about your blog is that they usually are sorted with chronological get, your own newest entry is displayed very first. If your weblog site visitors evolves significantly and you are therefore ready to update on your very own website you ll be able to simply make your own past [http //www.blog.com blog] entry the particular announcement of your "move". Simply add a previous admittance on the grounds that your blog site offers "moved" and kind the newest website Website target. Which often directs visitors to your own website, keeping the following, with out a significant trouble to be able to anyone. Up grade as you have to...only when you require to! only two) Niche A market is a qualified merchandise, service, or perhaps matter. It is best to very first decide on a product or service, service, or even theme which appeal to your interest. Pick a place which you can swiftly reveal each and every day. You may use market and keyword research solutions such as Yahoo Zeitgeist or Yahoo! Thrill Listing to seek out popular explored topics. It does NOT matter should your subject matter is actually fashionable as lengthy because there is the audience for ones subject matter and also the subject matter is strictly focused then your weblog really should be successful. Nearly anything could be a niche market given that it has a target audience no matter how significant or how modest the audience will be. A blog about your own kitty is usually a specific niche market or a blog about the species of the kitty family can be a much larger niche area, if you will find those who are interested in learning about your cat and the types of the cat household...you can even choose to build your crowd for a market place which usually an audience isn t going to can be found, however you should build your blog. 3) Up-date Day-to-day (nothing a lesser amount of) This is essential and never an indicator. Updating your blog day-to-day not merely helps to keep your blog a lot more fascinating in order to readers, just about all provides your site clean information using a everyday turning it into more appealing to search search engines. Not updating your blog post on an periodic trip or one day every now and then is comprehensible to most, although absent days and nights during a period or perhaps weeks can be undesirable and will most likely result in your blog site being unsuccessful. And also hardwearing . blog site visitors along with maintain any visitors fascination it is advisable to help update your blog site daily with multiple entries. Lowering update your blog site everyday having at the least several or more daily items. The best way to accomplish this is to reserved 1-2 hours per day pertaining to tending to your site and introducing new items. It could also be a good idea to plan a set time that you dedicate to your site daily. Allow work hours and also handle your blog site to be a career, what happens unless you arrived at be employed by days or perhaps weeks...you lose money or maybe more painful you obtain shot! Similar can be applied in this article...if you do not remodel your website for several days or several weeks you ll get rid of visitors.
https://w.atwiki.jp/toho/pages/5424.html
colors_stratosblue サークル:Attrielectrock with Q-BIT Number Track Name Arranger Lyrics Vocal Original Works Original Tune Length 01 SIGHT REi Aer ? タダオ 東方風神録 少女が見た日本の原風景 [-- --] 02 SEASON ? ? ? 東方妖々夢 東方妖々夢 ~ Ancient Temple [-- --] 03 SCENE ? ? ? 東方風神録 信仰は儚き人間の為に [-- --] 04 SIGHT (acoustic inst/) REi Aer - - 東方風神録 少女が見た日本の原風景 [-- --] 05 STRATOS ? ? ? 東方花映塚 春色小径 ~ Colorful Path [-- --] 詳細 コミックマーケット76(2009/08/15)にて頒布 イベント価格:500円 ショップ価格:735円(税込) レビュー
https://w.atwiki.jp/prepress-tips/pages/142.html
最終更新日時: 2008/06/30 pdfを調べるツール 使い方の例 Edit pdfを調べるツール 私が現在利用しているものです。 PDF Analyst pdfのオブジェクトに関する情報を すばやく見ることができます。 PDF FontDecoder pdfのフォントに関する情報を すばやく見ることができます。 TSXBIN シンボル表示のできる驚異的なバイナリエディタです。 pdfに限らず ほとんどすべてのデータを シンボリックに見ることができます。 pdfを見るときは 下のマクロを使います。 ※スピードが遅かったり ときどきハングアップしたりもしますが それなりに使えます。 利用は無保証ですが ご自由にどうぞ。 pdf.sym // 初期設定 // 詳細 // --- maxloop #maxloop -1 // --- typedef.h typedef unsigned char BYTE; typedef unsigned short WORD; typedef unsigned int UINT; typedef unsigned long DWORD; typedef unsigned long ULONG; typedef long LONG; typedef int BOOL; const BOOL TRUE=1; const BOOL FALSE=0; // --- 定数・変数の宣言 unsigned long FileSize, pos, pos_xref, pos_obj; unsigned long o_num, o_cnt, o_off, o_bck, l, o_i, o_j, o_k; unsigned long x_i; unsigned char c, eol_c; unsigned char st; string str, TmpStr; unsigned short OBJ_max = 1000; unsigned long OBJ_top[ OBJ_max ]; unsigned short OBJ_cnt; unsigned long OBJ_srt[ OBJ_max ]; unsigned long OBJ_num[ OBJ_max ]; // --- objectオフセットを初期化 for( o_i = 0; o_i OBJ_max; o_i++ ) { OBJ_top[ o_i ] = 0; OBJ_num[ o_i ] = o_i; } // --- シンボル表示するかどうかを確認 if( MessageBox( シンボル表示します(多少時間がかかります。) , TSXBIN , 1 ) == 2 ) { return; } // pdfの構造を調べる // 詳細 // 最新の相互参照表のオフセットを調べる // 詳細 // --- ファイルサイズを読む FileSize = GetFileSize(); // --- ファイルの終わりから s を探す pos = FileSize; c = \0 ; while( c != s ) { c = GetByte( --pos ); } // --- startxref を探す // ( 見つからないときは中止 ) while( FStrCmp( pos, 0, startxref ) != 0 ) { pos++; if( pos == FileSize ) { pos = 0; MessageBox( startxrefが見つかりません。 , TSXBIN , 0 ); return; } } // --- 数字以外を読み飛ばして c = GetByte( pos++ ); while( c 0 || 9 c ) { c = GetByte( pos++ ); } // --- xrefオフセットを読み pos_xref = 0; while( 0 = c && c = 9 ) { pos_xref = 10 * pos_xref + c - 0 ; c = GetByte( pos++ ); } // --- object配列に格納する x_i = OBJ_max - 1; OBJ_top[ x_i ] = pos_xref; OBJ_num[ x_i ] = OBJ_max; // 注 // object番号をOBJ_maxにしておく // (あとで相互参照表であることを判別するため) // --- xrefオフセットが oでなければ繰り返す { while( pos_xref != 0 ) { // 詳細 // 相互参照表のオブジェクトの一覧を読む // --- 行末文字の判別 // xrefオフセットの位置に移動して // 行末文字まで読み飛ばし pos = pos_xref; c = GetByte( pos++ ); while( ! ( c == 0x0d || c == 0x0a ) ) { c = GetByte( pos++ ); } // 行末文字を読み取る eol_c = c; c = GetByte( pos ); if( c == 0x0a ) { pos++; eol_c = c; } // --- objectオフセットの取得 // while // trailer で始まる箇所まで 繰り返す while( FStrCmp( pos, 0, trailer ) != 0 ) { // { // --- object番号の始まりとobjectの個数を読む // --- 詳細 // 1文字目を読む c = GetByte( pos++ ); // 空白と行末文字を読み飛ばし while( c == 0x20 || c == 0x0d || c == 0x0a ) { c = GetByte( pos++ ); } // object番号の始まりを読む o_num = 0; while( 0 = c && c = 9 ) { o_num = 10 * o_num + c - 0 ; c = GetByte( pos++ ); } // 空白と行末文字を読み飛ばし while( c == 0x20 || c == 0x0d || c == 0x0a ) { c = GetByte( pos++ ); } // objectの個数を読む o_cnt = 0; while( 0 = c && c = 9 ) { o_cnt = 10 * o_cnt + c - 0 ; c = GetByte( pos++ ); } // 空白と行末文字を読み飛ばし while( c == 0x20 || c == 0x0d || c == 0x0a ) { c = GetByte( pos++ ); } // 1文字戻す pos--; if( 0 o_cnt ) { // for // objectの個数分繰り返す for( o_i = 0; o_i o_cnt; o_i++ ) { // { // --- objectオフセットを読み OBJ_topに格納する // --- 詳細 // 文字位置を記憶 pos_obj = pos; // if // 使用中のエントリなら if( GetByte( pos + 17 ) == n ) { // { // 1文字目を読む c = GetByte( pos++ ); // 空白を読み飛ばして while( c == 0x20 ) { c = GetByte( pos++ ); } // objectオフセットを読み o_off = 0; while( 0 = c && c = 9 ) { o_off = 10 * o_off + c - 0 ; c = GetByte( pos++ ); } // objectオフセットの配列に格納する OBJ_top[ o_num + o_i ] = o_off; } // 文字位置を復元し 20進める pos = pos_obj + 20; } } } // --- startxrefの検索と // --- xrefオフセットの取得 // xrefオフセットをクリア pos_xref = 0; // while // startxref で始まる箇所まで 繰り返す while( FStrCmp( pos, 0, startxref ) != 0 ) { // { // --- prevエントリを読む // --- 詳細 // if // prevエントリなら if( FStrCmp( pos, 0, /prev , 1 ) == 0 ) { // { // 数字以外を読み飛ばして c = GetByte( pos++ ); while( c 0 || 9 c ) { c = GetByte( pos++ ); } // xrefオフセットを読み pos_xref = 0; while( 0 = c && c = 9 ) { pos_xref = 10 * pos_xref + c - 0 ; c = GetByte( pos++ ); } if( OBJ_top[ x_i ] != pos_xref ) { // object配列に格納する OBJ_top[-- x_i ] = pos_xref; OBJ_num[ x_i ] = OBJ_max; } else { pos_xref = 0; } // 1文字戻す pos--; } // 次の文字位置へ pos++; // ファイルの終わりだったら中止 if( pos == FileSize ) { MessageBox( startxrefが見つかりません。 , TSXBIN , 0 ); pos = 0; return; } } // --- } } // --- ソート // --- objectオフセットのソート // for // OBJ_topの最後まで繰り返し OBJ_cnt = 0; for( o_i = 0; o_i OBJ_max; o_i++ ) { // { // if // objectオフセットが 0でないとき if( OBJ_top[ o_i ] != 0 ) { // { // objectオフセットとobject番号を読む o_off = OBJ_top[ o_i ]; o_num = OBJ_num[ o_i ]; // if // 1つ目でなく if( 0 OBJ_cnt ) { // { // if // OBJ_srtの最終オフセットより小さいとき if( ( 0 OBJ_cnt ) && ( o_off OBJ_srt[ OBJ_cnt - 1 ] ) ) { // { // 格納場所をサーチ for( o_k = 0; o_k OBJ_cnt; o_k++ ) { if( o_off OBJ_srt[ o_k ] ) { o_j = o_k; break; } } // 格納場所を空ける for( o_k = o_j; o_k OBJ_cnt; o_k++ ) { o_bck = OBJ_srt[ o_k ]; OBJ_srt[ o_k ] = o_off; o_off = o_bck; o_bck = OBJ_num[ o_k ]; OBJ_num[ o_k ] = o_num; o_num = o_bck; } // } } // } } // objectオフセットとobject番号をOBJ_srtに格納 OBJ_srt[ OBJ_cnt ] = o_off; OBJ_num[ OBJ_cnt ] = o_num; OBJ_cnt++; // } } // } } // ファイル末オフセットも格納 OBJ_srt[ OBJ_cnt ] = FileSize; OBJ_num[ OBJ_cnt++ ] = OBJ_max; // オブジェクト数の確認 if( MessageBox( オブジェクト数は + tostr( OBJ_cnt - ( OBJ_max - x_i ) ) + です。 , TSXBIN , 1 ) == 2 ) { return; } // --- オブジェクトを表示 // hedderの表示 TmpStr = header ; pos = 0; while( pos OBJ_srt[ 0 ] ) { pos_obj = pos; while( pos OBJ_srt[ 0 ] ) { c = GetByte( pos++ ); if( c == 0x0d ) { c = GetByte( pos++ ); if( c != 0x0a ) { pos--; } break; } if( c == 0x0a ) { break; } } l = pos - pos_obj; $BYTE TmpStr[ l ]; } // --- objectsの表示 // for // objectの個数分繰り返し for( o_j = 1; o_j OBJ_cnt; o_j++ ) { // { // 位置の確認( デバグ用 ) if( ( o_j - 1 ) == OBJ_cnt ) { if( MessageBox( OBJ_srt[ + tostr( o_j - 1 ) + ] + tostr( OBJ_srt[ o_j - 1 ] ) + pos + tostr( pos ), TSXBIN , 1 ) == 2 ) { return; } } // if // objectのとき if( OBJ_num[ o_j - 1 ] OBJ_max ) { // { // --- obectを表示する // obj の表示 TmpStr = obj + tostr( OBJ_num[ o_j - 1 ] ); // objectの表示 st = 0; while( pos OBJ_srt[ o_j ] ) { pos_obj = pos; if( st == 2 ) { while( pos OBJ_srt[ o_j ] ) { l = FindByteOffset( e , pos ); l++; pos += l; if( OBJ_srt[ o_j ] pos ) { pos = OBJ_srt[ o_j ]; } if( FStrCmp( pos - 1, 0, endstream ) == 0 ) { pos--; break; } } st = 0; } else { if( st == 1 ) { st = 2; } while( pos OBJ_srt[ o_j ] ) { c = GetByte( pos++ ); if( c == ) { if( FStrCmp( pos, 0, stream ) == 0 ) { break; } } if( c == 0x0d ) { c = GetByte( pos++ ); if( c != 0x0a ) { pos--; } break; } if( c == 0x0a ) { break; } } if( FStrCmp( pos, 0, stream ) == 0 ) { st = 1; } } l = pos - pos_obj; $BYTE TmpStr[ l ]; } // } else { } else { // --- xrefを表示する // --- 詳細 // xref の表示 TmpStr = xref ; l = FindByte( eol_c ); l++; pos += l; $BYTE TmpStr[ l ]; // for // trailer まで繰り返す while( FStrCmp( pos, 0, trailer ) != 0 ) { // { // --- object番号の始まりとobjectの個数を読んで表示する // --- 詳細 // 文字位置を記憶 pos_obj = pos; // 1文字目を読む c = GetByte( pos++ ); // 空白を読み飛ばし while( c == 0x20 ) { c = GetByte( pos++ ); } // object番号の始まりを読む o_num = 0; while( 0 = c && c = 9 ) { o_num = 10 * o_num + c - 0 ; c = GetByte( pos++ ); } // 空白を読み飛ばし while( c == 0x20 ) { c = GetByte( pos++ ); } // objectの個数を読む o_cnt = 0; while( 0 = c && c = 9 ) { o_cnt = 10 * o_cnt + c - 0 ; c = GetByte( pos++ ); } // 空白と行末文字を読み飛ばし while( c == 0x20 || c == 0x0d || c == 0x0a ) { c = GetByte( pos++ ); } // 1文字戻す pos--; // 文字数を計算 l = pos - pos_obj; // object番号の始まりとobjectの個数を表示 $BYTE TmpStr[ l ]; // for // objectの個数分繰り返す for( o_i = 0; o_i o_cnt; o_i++ ) { // { // 20バイト表示 TmpStr = xref + tostr( o_num + o_i ); l = 20; pos += l; $BYTE TmpStr[ l ]; } // } } // --- trailerを表示する // trailer の表示 TmpStr = trailer ; // trailerの表示 while( pos OBJ_srt[ o_j ] ) { pos_obj = pos; while( pos OBJ_srt[ o_j ] ) { c = GetByte( pos++ ); if( c == 0x0d ) { if( pos OBJ_srt[ o_j ] ) { c = GetByte( pos++ ); if( c != 0x0a ) { pos--; } } break; } if( c == 0x0a ) { break; } } l = pos - pos_obj; $BYTE TmpStr[ l ]; } // } } // } } 使い方の例 たとえば pdfから cmapを取り出すときは 次のようにします。 PDF FontDecoderで フォントのオブジェクト番号を調べる。 PDF Analystで そのオブジェクトを調べて エンコーディングを知る。/Encoding/Identity-H のときは /BaseFontエントリで サブフォントの名前がわかり /ToUnicodeエントリで Cmapのオブジェクト番号がわかる。 TSXBINで そのオブジェクトを取り出す。 inflate.plで それをインフレートする。 ※ inflate.plは perlのDocumentationのCompress Zlibのところに記載されています。 inflate.pl use strict ; use warnings ; use Compress Zlib ; my $x = inflateInit() or die Cannot create a inflation stream\x0a ; my $input = ; binmode STDIN; binmode STDOUT; my ($output, $status) ; while (read(STDIN, $input, 4096)) { ($output, $status) = $x- inflate(\$input) ; print $output if $status == Z_OK or $status == Z_STREAM_END ; last if $status != Z_OK ; } die inflation failed\x0a unless $status == Z_STREAM_END ; Edit
https://w.atwiki.jp/chaosdrama/pages/1601.html
New World 作詞:ファース Behind the world we live in There was another world けど something different 異なる生命 似ているfase ほとばしる世界 逆回りの時計 strangeで高なる興味心 世界地図にはない 楽園 動物図鑑にはない 生物 Would call the mystery of mysteries 閉ざされて 帰られない 欲深きボクら 哀れ 恐怖に急かされて そんなんじゃ 自由は掴めない 今開いた (What is the concatenated?) 禁断の扉 (What is the spun?) 飛びこめ (What is the truncated?) まだ見ぬ世界へ (What is brought in?) 新世界へ