約 5,432,890 件
https://w.atwiki.jp/abwiki/pages/58.html
UTF82SJIS http //blog.goo.ne.jp/xmldtp/e/7eaeeb3dabfe975dbc57f73aefb1c059からコピペ #N88BASIC Function utf8ToSjis(utf8 As *Byte) As *Byte Dim utf16 As *Word Dim wlen As Long Dim sjis As *Byte utf8ToSjis = NULL If utf8 = NULL Then Exit Function End If ============================== UTF8=>UTF16変換 ============================== まずは、wlenの長さをとる wlen = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0) If wlen = 0 Then Exit Function End If utf16の領域確保 utf16 = calloc(wlen + 1) If utf16 = NULL Then Exit Function End If utf16変換 If MultiByteToWideChar(CP_UTF8, 0, utf8, -1, utf16, wlen) = 0 Then free(utf16) Exit Function End If ============================== UTF16=>ShiftJIS変換 ============================== まずは、長さを取得 Dim mlen As Long mlen = WideCharToMultiByte(CP_ACP,0,utf16,-1,NULL,0," ",NULL) If mlen = 0 Then free(utf16) Exit Function End If 領域確保 sjis = calloc(mlen + 1) If sjis = NULL Then free(utf16) Exit Function End If utf16変換 If WideCharToMultiByte(CP_ACP,0,utf16,-1,sjis,mlen," ",NULL) = 0 Then free(utf16) free(sjis) Exit Function End If free(utf16) utf8ToSjis = sjis End Function Dim utf8[1000] As Byte Dim sjis As *Byte Dim hF As HANDLE Dim r As DWord hF = CreateFile("utf8.txt", GENERIC_READ,0,ByVal 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,0) ReadFile(hF, utf8,1000, Varptr(r),ByVal 0) sjis = utf8ToSjis(utf8) Print MakeStr(sjis) CloseHandle(hF) free(sjis) Input sjis WinAPIを使うべき処理 ShiftJIS→Unicode(UCS-2)変換 MultiByteToWideChar関数を使う。 MultiByteToWideChar(外部ページ) に詳しい。誰かコピーして。 Unicode(UCS-2)→ShiftJIS変換 WideCharToMultiByte関数を使う。 WideCharToMultiByte(外部ページ) に詳しい。誰かコピーして。 WinAPIを使わなくてもプログラム側で簡単に変換できるもの ShiftJIS→EUC-JP変換 ShiftJISとEUC-JPはエンコードが違うだけで同じ符号体系を用いている。その為、この変換は比較的容易い。 Sub SJIS2EUCJP(src As *Byte,dst As *Byte) Dim is=0 As Long,id=0 As Long Do If src[is]=0 then dst[id]=0 Exit Do Else If src[is] H80 then dst[id]=src[is] is++ id++ Else If ( HA1 =src[is]) And (src[is] = HDF) then dst[id]= H8E dst[id+1]=src[is] is++ id+=2 Else Dim a As Long,b As Long b=src[is+1]- H3F If b=0 then dst[id]=0 Exit Do End If If b 63 then b-- a=src[is]*2- H101 If a 62 then a-=128 If b 94 then b-=94 a++ End If If (a 1) Or (94 a) Or (b 1) Or (94 b) then dst[id]=0 Exit Do End If dst[id]=a+ HA0 dst[id+1]=b+ HA0 is+=2 id+=2 End If Loop End Sub EUC-JP→ShiftJIS変換 Sub EUCJP2SJIS(src As *Byte,dst As *Byte) Dim is=0 As Long,id=0 As Long Do If src[is]=0 then dst[id]=0 Exit Do Else If src[is] H80 then dst[id]=src[is] is++ id++ Else If src[is]= H8E then dst[id]=src[is+1] is+=2 id++ Else If src[is]= H8F then JIS X 0212-1990文字集合だが、Shift-JISには無いため?で代用する。 dst[id]=Asc("?") is+=3 id++ Else Dim a As Long,b As Long a=src[is]- HA0 b=src[is+1]- HA0 If (a 1) Or (94 a) Or (b 1) Or (94 b) then dst[id]=0 Exit Do End If a-- If a and 1 then a-- b+=94 End If a=(a 1)+ H81 If b 63 then b++ If a H9F then a+=64 dst[id]=a dst[id+1]=b+ H3F is+=2 id+=2 End If Loop End Sub Unicode(UCS-2)→Unicode(UTF-8)変換 UCS-2とUTF-8はエンコードが違うだけで同じ符号体系を用いている。その為、この変換は比較的容易い。 Sub UCS22UTF8(src As *Byte,dst As *Byte) Dim is=2 As Long,id=0 As Long Dim fBE As Long If (src[0]= HFF) and (src[1]= HFE) then BOM fBE=0 Else If (src[0]= HFE) and (src[1]= HFF) then fBE=1 Else default=Big Endian(RFC 2781) fBE=1 is-=2 End If Do If src[is]=0 And src[is+1]=0 then dst[id]=0 Exit Do Else Dim c As Long c=src[is+(1-fBE)] As Long*256+src[is+fBE] If c H80 then dst[id]=c id++ Else If c H800 then dst[id]= HC0 Or (c 6) dst[id+1]= H80 Or (c and H3F) id+=2 Else If c H10000 then dst[id]= HE0 Or (c 12) dst[id+1]= H80 Or ((c 6) and H3F) dst[id+2]= H80 Or (c and H3F) id+=3 Else dst[id]=0 Exit Do End If is+=2 End If Loop End Sub Unicode(UTF-8)→Unicode(UCS-2) Sub UTF82UCS2(src As *Byte,dst As *Byte) Dim is=0 As Long,id=2 As Long If (src[0]= HEF) And (src[1]= HBB) And (src[2]= HBF) then is+=3 dst[0]= HFE dst[1]= HFF Do If src[is]=0 then dst[id]=0 Exit Do Else Dim c As Long If src[is] H80 then c=src[is] is++ Else If src[is] HE0 then If src[is+1]=0 then dst[id]=0 Exit Do Else c=((src[is] And H1F) 6) Or (src[is+1] And H3F) is+=2 End If Else If src[is] HF0 then If src[is+1]=0 then dst[id]=0 Exit Do Else If src[is+2]=0 then dst[id]=0 Exit Do Else c=((src[is] And H0F) 12) Or ((src[is+1] And H3F) 6) Or (src[is+2] And H3F) is+=3 End If Else If src[is] HF8 then If src[is+1]=0 then dst[id]=0 Exit Do Else If src[is+2]=0 then dst[id]=0 Exit Do Else If src[is+3]=0 then dst[id]=0 Exit Do Else c=((src[is] And H03) 18) Or ((src[is+1] And H3F) 12) Or ((src[is+2] And H3F) 6) Or (src[is+3] And H3F) is+=4 End If Else dst[id]=0 Exit Do End If If c H10000 then UCS2には拡張領域が無いため表現できない。 dst[id]=0 dst[id+1]=Asc("?") id+=2 Else dst[id]=c 8 dst[id+1]=c And HFF id+=2 End If End If Loop End Sub nkf32を使って nkf32は文字コードの各種変換を行う便利ライブラリ。 DLLとして提供されていて、使い易くなってる。 ABも実はこれを使っている。SubOperationフォルダーを参照。 使い方は結構簡単で、例えば次のようにするだけで、何らかの文字コードのファイルをEUCに変換してくれる。 #N88BASIC'宣言Declare Sub GetNkfVersion Lib "Nkf32.dll" (verStr As *Byte)Declare Function SetNkfOption Lib "Nkf32.dll" (optStr As *Byte) As LongDeclare Sub NkfConvert Lib "Nkf32.dll" (outStr As *Byte, inStr As *Byte)Declare Sub ToHankaku Lib "Nkf32.dll" (inStr As *Byte)Declare Sub ToZenkakuKana Lib "Nkf32.dll" (outStr As *Byte, inStr As *Byte)Declare Sub ToMime Lib "Nkf32.dll" Alias "EncodeSubject" (outStr As *Byte, inStr As *Byte)Declare Sub EncodeSubject Lib "Nkf32.dll" (outStr As *Byte, inStr As *Byte)Dim vstr[478] As ByteDim in As *ByteDim out As *ByteDim size As DWordGetNkfVersion(vstr)Print "nkf32のバージョン→" MakeStr(vstr)in = LoadFile(VarPtr(size))If in And size Then Print "読み取りOK" Else EndIf SetNkfOption("-e") = 0 Then Print "EUCに変換します"out = calloc(size+1)NkfConvert(out, in)SaveFile(out, lstrlen(out))Print "おわり"End'ファイルを開いて中身を返すFunction LoadFile(sss As *Long) As *ByteDim ofn As OPENFILENAMEDim buffer[333] As Byteofn.lStructSize=SizeOf(OPENFILENAME)ofn.hwndOwner=GetActiveWindow()ofn.lpstrFilter=Ex"テキスト ファイル(*.txt)\0*.txt\0すべてのファイル(*.*)\0*\0"ofn.nFilterIndex=1ofn.lpstrFile=bufferofn.nMaxFile=333ofn.lpstrTitle="ファイルを開く"ofn.Flags=OFN_FILEMUSTEXIST or OFN_PATHMUSTEXISTIf GetOpenFileName(ofn)=0 Then Exit Function'OpenDim hF As HANDLEDim r As DwordDim x As *BytehF = CreateFile( buffer, GENERIC_READ, 0, ByVal 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)SetDWord(sss, GetFileSize(hF, 0))x = calloc(GetDword(sss)+1)ReadFile(hF, x, GetDword(sss), sss, ByVal 0)CloseHandle(hF)LoadFile = xEnd Function'oooの内容を保存Function SaveFile(ooo As *Byte, sss As Long) As LongDim ofn As OPENFILENAMEDim buffer[333] As Byteofn.lStructSize=SizeOf(OPENFILENAME)ofn.hwndOwner=GetActiveWindow()ofn.lpstrFilter=Ex"テキスト ファイル(*.txt)\0*.txt\0すべてのファイル(*.*)\0*\0"ofn.nFilterIndex=1ofn.lpstrFile=bufferofn.nMaxFile=333ofn.lpstrTitle="ファイルを保存"ofn.Flags=OFN_FILEMUSTEXIST or OFN_PATHMUSTEXISTIf GetSaveFileName(ofn)=0 Then Exit Function'OpenDim hF As HANDLEDim w As DwordhF = CreateFile(buffer, GENERIC_WRITE, 0, ByVal 0, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0)WriteFile(hF, ooo, sss, VarPtr(w), ByVal 0)CloseHandle(hF)SaveFile = 44End Function
https://w.atwiki.jp/game_staff/pages/692.html
SUPER STREET FIGHTER IV 3D EDITION 対応機種 ニンテンドー3DS 発売日 2011年2月26日 開発 カプコン 発売 カプコン Game Section Staff Director 山本敏行 / TOSHIYUKI YAMAMOTO Character Modelers 高橋泰人 / YASUTO TAKAHASHI 鈴木俊宏 / TOSHIHIRO SUZUKI 本園敬介 / KEISUKE MOTOZONO 木下晃城 / KOKI KINOSHITA 高坂隆之 / TAKAYUKI KOSAKA 中森洋行 / HIROYUKI NAKAMORI Stage Artists AKIO KAMIJI 桑島慎也 / SHINYA KUWAJIMA 井上孝俊 / INOYAN TAKUMI OKADAUE Character Animators 藤沢直紀 / NAOKI FUJISAWA 福島直樹 / NAOKI FUKUSHIMA VFX Artists 山田篤 / ATSUSHI YAMADA 武知成樹 / SHIGEKI TAKECHI 栗山圭吾 / KEIGO KURIYAMA Interface Artists 田上陽一 / YOICHI TANOUE 下條誠 / MAKOTO SHIMOJO 小林美保 / MIHO KOBAYASHI Programmers 加納昌幸 / MASAYUKI KANOU 藤田健作 / KENSAKU FUJITA 蓑宮正哲 / N.MINOMIYA 黒羽祐介 / YUSUKE KUROHA 坂野光徳 / MITSUNORI SAKANO 福本和徳 / KAZUNORI FUKUMOTO 吉永拓三 / TAKUMI YOSHINAGA 卜部有樹 / YUKI URABE 品川一親 / KAZUCHIKA SHINAGAWA Game Designer 川瀬学 / MANABU KAWASE Sound Designer 大久保悟 / SATORU OKUBO MT FRAMEWORK Mobile Development Team 石田智史 / TOMOFUMI ISHIDA 八杉浩司 / HIROSHI YASUGI 佐々木佑哉 / YUYA SASAKI 上田智広 / TOMOHIRO UEDA 実兼大祐 / DAISUKE SANEKANE RAHADI STEPANUS 能任祐貴 / YUKI NOTO 小森繁伸 / SHIGENOBU KOMORI 松浦大悟 / DAIGO MATSUURA 中村雅俊 / MASATOSHI NAKAMURA 是松匡亮 / MASAAKI KOREMATSU 三嶋仁 / HITOSHI MISHIMA 大宅理仁 / MASAHITO Oh!Ya! 種田克教 / KATSUNORI OIDA 梅津貴行 / TAKAYUKI UMEZU 蓮沼宏治 / KOJI HASUNUMA 伊集院勝 / MASARU IJUIN Software Development 横田等 / HITOSHI YOKOTA 三上陽司 / YOJI MIKAMI 三須康至 / KOJI MISU Localization PETER FABIANO KAORI FUNAKOSHI JAMES WILSON ANDREW ALFONSO DAVID CRISLIP LUDOVIC CHARROUX FRANCIS ISHII GIANLUIGI RICCIO GIULIANA POLETTI FLORIAN SEIDEL MARTIN STROSCHEIN ENRIC SARRADO FEDERICO SAURET ENCABO Quality Assurance QA Manager JUNICHIRO TAKASHI Lead Tester HIROSHI TAKAYAMA Assistant Lead Tester SHOHEI OKAMURA Senior Testers YUKIHISA HIDA MAI OTA HITOMI FUKU TETSU USHIJIMA YUKI TAKIMOTO Compliance Tester NAOKI KAMURA Testers NORIHIRO YAMAMOTO TAKANORI FUJISAWA AKIRA FUKUMORI NAOKI ISHIDU YOSHITAKA TANIMOTO NOBUYUKI CHIGA ATSUSHI KURANO SATOSHI KINOSHITA AKIMINE KOIZUMI TOMOHIRO SHIMOMURA HIROYUKI WADA YUSUKE ASAMOTO TOMOYUKI IKAWA TATSUYA INOKUCHI ISAMU SADAOKA YUKI YAMASHITA SHIZUKA YAMADA SAORI ATAKE HIROYA OKUDA QA Fine-tuning TAKESHI NISHIMOTO Manual Design/Editing MASAKO HONMA MINORU NAGAOKA NANASE KIKUCHI MANABU TEKEDA Promotion Promotion Staff TSUTOMU MASUDA MANABU OKAMOTO ISAO KIMURA Sales Staff YOSHINORI ISHIDA HIDEKI OHNUKI JUNICHI EHARA TOMOHISA SUZUOKI SUGURU MAESAWA Publicity Staff RYOSUKE HAGIWARA KENICHI HASHIMOTO TAKAYOSHI TERADA Web Promotion Staff TAISUKE KAWAKAMI JUNJI FUKUI R D Promotion KUNIO FUNAHARA KOSUKE NAKANO MOTO SHINOBE AYUMI KAMBARA Capcom U.S.A./ Capcom Entertainment, Inc. President and Chief Operating Officer KAZUHIKO ABE Chief Financial Officer KAZ KANO Special Advisor SETH KILLIAN Business Dev. Strategic Planner CHRISTIAN SVENSSON VP of Marketing MONA HAMILTON Marketing Staff MIKE WEBSTER MATT DAHLGREN TSUYOSHI KANDA GOSEI MORI ANDREW SCHNORR EMILY ANADU GRANT D. LUKE ROBERT TUNICK Public Relation WES PHILLIPS MELODY PFEIFFER JASON ALLEN Customer Support RANDY REYES Creative Services FRANCIS MAO Divelopment Support Production Staff GARY LAKE TAKASHI KUBOZONO DAVE WITCHER Media Consumer Products Staff SEON KING CYNTHIA MODDERS JOSHUA IZZO STEVE LEE WILLIAM HIRSCH BRIAN OLIVEIRA SHAWNA TOWLER Capcom Entertainment Europe Ltd. Marketing Staff MICHAEL pATTISON BEN LE ROUGELET STUART TURNER KAI STUEWE NASKO FEZJA Capcom Entertainment Korea Co. Ltd. Managers HAECHANG SONG CHIWOO NAM Cooperating Companies Mayflower Entertainment CO., LTD. POLYGON PICTURES Inc. Dimps Corporation Font Design by Fontworks Inc. Special Thanks 來田大介 / DAISUKE KURITA YUKINORI KANDA Executive Producer 稲船敬二 / KEIJI INAFUNE PM Support SAKIKO KANO Assistant Producer SHINICHI NAKAMURA Producer 小野義徳 / YOSHINORI ONO Diveloped and Produced by CAPCOM CO., LTD. in cooperation with CAPCOM U.S.A., INC.
https://w.atwiki.jp/javamock/pages/43.html
テキストエディタソースver1.2 テキストエディタソースver1.2Main.java TextEditor.java TextEditorModel.java Constants.java TextAreaProperties.java Logic.java LogicImpl.java ActionLogic.java ActionLogicImpl.java Main.java /** * * メインクラスです。 * @author mock * @version 1.2 * */ public class Main { /** * メインメソッドです * @param args */ public static void main(String[] args) { new TextEditor(); } } TextEditor.java import java.awt.HeadlessException; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JTextArea; /** * テキストエディタクラスです * * @author mock */ public class TextEditor extends JFrame implements ActionListener { /** serialVersionUID */ private static final long serialVersionUID = 1L; /** テキストエリア */ public JTextArea textArea; /** ファイル選択 */ public JFileChooser fileChooser = new JFileChooser(); /** logic */ public Logic logic = new LogicImpl(); /** actionLogic */ public ActionLogic actionLogic = new ActionLogicImpl(); /** * コンストラクタ * * @throws HeadlessException */ public TextEditor() throws HeadlessException { TextAreaProperties textAreaProperties = logic.getInitProperties(); setTitle(Constants.UNDIFINED_TITLE); logic.createMenuBar(getRootPane(), this); textArea = logic.createTextArea(textAreaProperties, this); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); pack(); } /* * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent) */ @Override public void actionPerformed(ActionEvent actionEvent) { String actionCommand = actionEvent.getActionCommand(); TextEditorModel model = new TextEditorModel(); model.setFrame(this); model.setTextArea(textArea); model.setFileChooser(fileChooser); if (actionCommand.equals(Constants.MenuItem.NEW.toString())) { fileChooser = actionLogic.newFile(model); } else if (actionCommand.equals(Constants.MenuItem.OPEN.toString())) { actionLogic.openFile(model); } else if (actionCommand.equals(Constants.MenuItem.SAVE.toString())) { actionLogic.save(model); } else if (actionCommand.equals(Constants.MenuItem.SAVE_AS.toString())) { actionLogic.saveAs(model); } else if (actionCommand.equals(Constants.MenuItem.VERSION.toString())) { actionLogic.showVersionInfo(model); } } } TextEditorModel.java import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JTextArea; /** * テキストエディタに関するモデルです * @author mock * */ public class TextEditorModel { /** フレーム */ private JFrame frame; /** ファイルチューザ */ private JFileChooser fileChooser; /** テキストエリア */ private JTextArea textArea; /** * @return the frame */ public JFrame getFrame() { return frame; } /** * @param frame the frame to set */ public void setFrame(JFrame frame) { this.frame = frame; } /** * @return the fileChooser */ public JFileChooser getFileChooser() { return fileChooser; } /** * @param fileChooser the fileChooser to set */ public void setFileChooser(JFileChooser fileChooser) { this.fileChooser = fileChooser; } /** * @return the textArea */ public JTextArea getTextArea() { return textArea; } /** * @param textArea the textArea to set */ public void setTextArea(JTextArea textArea) { this.textArea = textArea; } } Constants.java import java.awt.event.KeyEvent; /** * 定数を集めたクラスです。 * * @author mock * */ public class Constants { /** 新規のタイトル名 */ public static final String UNDIFINED_TITLE = "UNDIFINED_TITLE"; /** バージョン */ public static final String VERSION = "ver1.2"; /** バージョン情報タイトル */ public static final String VERSION_TITLE = "VERSION"; /** ファイル(F)メニューラベル */ public static final String MENU_FILE_LABEL = "ファイル(F)"; /** ヘルプ(H)メニューラベル */ public static final String MENU_HELP_LABEL = "ヘルプ(H)"; public static final String INI_FILE_NAME = "texteditor.ini"; /** * メニュー項目に関する定数 * * @author mock * */ public enum MenuItem { NEW("新規(N)", KeyEvent.VK_N), OPEN("開く(O)", KeyEvent.VK_O), SAVE("上書き保存(S)", KeyEvent.VK_S), SAVE_AS("名前を付けて保存(A)", KeyEvent.VK_A), VERSION("バージョン情報(A)", KeyEvent.VK_A), ; /** メニュー項目ラベル */ private String label; /** メニュー項目ニーモニック */ private int mnemonic; /** * @param label * メニュー項目ラベル * @param mnemonic * メニュー項目ニーモニック */ MenuItem(String label, int mnemonic) { this.label = label; this.mnemonic = mnemonic; } /** * @return メニュー項目ラベル */ public final String getLabel() { return this.label; } /** * @return メニュー項目ニーモニック */ public final int getMnemonic() { return this.mnemonic; } } } TextAreaProperties.java /** * テキストエリアに関するプロパティクラスです * @author mock */ public class TextAreaProperties { /** 幅 */ private int width; /** 高さ */ private int height; /** タブサイズ */ private int tabSize; /** フォントサイズ */ private int fontSize; /** * @return the width */ public int getWidth() { return width; } /** * @param width the width to set */ public void setWidth(int width) { this.width = width; } /** * @return the height */ public int getHeight() { return height; } /** * @param height the height to set */ public void setHeight(int height) { this.height = height; } /** * @return the tabSize */ public int getTabSize() { return tabSize; } /** * @param tabSize the tabSize to set */ public void setTabSize(int tabSize) { this.tabSize = tabSize; } /** * @return the fontSize */ public int getFontSize() { return fontSize; } /** * @param fontSize the fontSize to set */ public void setFontSize(int fontSize) { this.fontSize = fontSize; } } Logic.java import java.awt.event.ActionListener; import java.io.File; import javax.swing.JFrame; import javax.swing.JMenuItem; import javax.swing.JRootPane; import javax.swing.JTextArea; /** * テキストエディタに関するロジックのインターフェースです * * @author mock */ public interface Logic { /** * 初期設定プロパティを取得します * * @return テキストエリアに関するプロパティ */ public TextAreaProperties getInitProperties(); /** * メニューバーを作成します * * @param rootPane * コンテナ * @param actionListener * アクションリスナー */ public void createMenuBar(JRootPane rootPane, ActionListener actionListener); /** * メニュー項目を設定します * * @param item * メニュー項目 * @param actionListener * アクションリスナー * @return メニュー項目 */ public JMenuItem setMenuItem(Constants.MenuItem item, ActionListener actionListener); /** * テキストエリアを作成します * * @param properties * テキストエリアに関するプロパティ * @param frame * フレーム * @return テキストエリア */ public JTextArea createTextArea(TextAreaProperties properties, JFrame frame); /** * ファイルにテキスト内容を書き込みます * * @param file * ファイル * @param text * テキスト内容 * @return 処理結果 */ public boolean writeFile(File file, String text); } LogicImpl.java import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.util.Properties; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JRootPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; /** * テキストエディタに関するロジックの実装クラスです * * @author mock */ public class LogicImpl implements Logic { /* * @see Logic#getInitProperties() */ @Override public TextAreaProperties getInitProperties() { TextAreaProperties textAreaProperties = new TextAreaProperties(); try { Properties properties = new Properties(); properties.load(new FileInputStream(Constants.INI_FILE_NAME)); // 幅の設定 String width = properties.getProperty("textAreaWidth"); textAreaProperties.setWidth(Integer.parseInt(width)); // 高さの設定 String height = properties.getProperty("textAreaHeight"); textAreaProperties.setHeight(Integer.parseInt(height)); // タブサイズの設定 String tabSize = properties.getProperty("tabSize"); textAreaProperties.setTabSize(Integer.parseInt(tabSize)); // フォントサイズの設定 String fontSize = properties.getProperty("fontSize"); textAreaProperties.setFontSize(Integer.parseInt(fontSize)); } catch (IOException e) { e.printStackTrace(); } return textAreaProperties; } /* * @see Logic#createMenuBar(javax.swing.JRootPane, * java.awt.event.ActionListener) */ @Override public void createMenuBar(JRootPane rootPane, ActionListener actionListener) { JMenuBar menuBar = new JMenuBar(); rootPane.setJMenuBar(menuBar); // ファイル(F) JMenu menuFile = new JMenu(Constants.MENU_FILE_LABEL); menuFile.setMnemonic(KeyEvent.VK_F); menuBar.add(menuFile); // ファイル(F)>新規(N) JMenuItem menuItemNew = setMenuItem(Constants.MenuItem.NEW, actionListener); menuFile.add(menuItemNew); // ファイル(F)>開く(O) JMenuItem menuItemOpen = setMenuItem(Constants.MenuItem.OPEN, actionListener); menuFile.add(menuItemOpen); // ファイル(F)>上書き保存(S) JMenuItem menuItemSave = setMenuItem(Constants.MenuItem.SAVE, actionListener); menuFile.add(menuItemSave); // ファイル(F)>名前を付けて保存(A) JMenuItem menuItemSaveAs = setMenuItem(Constants.MenuItem.SAVE_AS, actionListener); menuFile.add(menuItemSaveAs); // ヘルプ(H) JMenu menuHelp = new JMenu(Constants.MENU_HELP_LABEL); menuHelp.setMnemonic(KeyEvent.VK_H); menuBar.add(menuHelp); // ヘルプ(H)>バージョン情報(A) JMenuItem menuItemVersion = setMenuItem(Constants.MenuItem.VERSION, actionListener); menuHelp.add(menuItemVersion); } /* * @see Logic#setMenuItem(Constants.MenuItem, java.awt.event.ActionListener) */ @Override public JMenuItem setMenuItem(Constants.MenuItem item, ActionListener actionListener) { JMenuItem menuItem = new JMenuItem(item.getLabel()); menuItem.setMnemonic(item.getMnemonic()); menuItem.setActionCommand(item.toString()); menuItem.addActionListener(actionListener); return menuItem; } /* * @see Logic#createTextArea(TextAreaProperties, javax.swing.JFrame) */ @Override public JTextArea createTextArea(TextAreaProperties properties, JFrame frame) { JTextArea textArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(textArea); scrollPane.setPreferredSize(new Dimension(properties.getWidth(), properties.getHeight())); frame.getContentPane().add(scrollPane); textArea.setBackground(Color.BLACK); textArea.setForeground(Color.WHITE); textArea.setSelectionColor(Color.BLUE); textArea.setSelectedTextColor(Color.PINK); textArea.setFont(new Font(Font.MONOSPACED, Font.PLAIN, properties .getFontSize())); textArea.setTabSize(properties.getTabSize()); textArea.setCaretColor(Color.WHITE); textArea.setLineWrap(true); textArea.grabFocus(); return textArea; } /* * @see Logic#writeFile(java.io.File, java.lang.String) */ @Override public boolean writeFile(File file, String text) { try { FileWriter fileWriter = new FileWriter(file); fileWriter.write(text); fileWriter.close(); } catch (IOException e) { e.printStackTrace(); } return true; } } ActionLogic.java import javax.swing.JFileChooser; /** * アクションに関するロジックのインターフェースです * @author mock * */ public interface ActionLogic { /** * 新規ファイルを開きます * @param model テキストエディタに関するモデル * @return JFileChooser */ public JFileChooser newFile(TextEditorModel model); /** * ファイルを開きます * @param model テキストエディタに関するモデル */ public void openFile(TextEditorModel model); /** * ファイルに上書き保存します * @param model テキストエディタに関するモデル */ public void save(TextEditorModel model); /** * ファイルに名前を付けて保存します * @param model テキストエディタに関するモデル */ public void saveAs(TextEditorModel model); /** * バージョン情報ダイアログを表示します * @param model テキストエディタに関するモデル */ public void showVersionInfo(TextEditorModel model); } ActionLogicImpl.java import java.io.File; import java.io.FileReader; import java.io.IOException; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JTextArea; /** * アクションに関するロジックの実装クラスです * @author mock * */ public class ActionLogicImpl implements ActionLogic { /** logic */ public Logic logic = new LogicImpl(); /* * @see ActionLogic#newFile(TextEditorModel) */ @Override public JFileChooser newFile(TextEditorModel model) { JFrame frame = model.getFrame(); JTextArea textArea = model.getTextArea(); frame.setTitle(Constants.UNDIFINED_TITLE); textArea.setText(""); return new JFileChooser(); } /* * @see ActionLogic#openFile(TextEditorModel) */ @Override public void openFile(TextEditorModel model) { try { JFrame frame = model.getFrame(); JTextArea textArea = model.getTextArea(); JFileChooser fileChooser = model.getFileChooser(); if (fileChooser.showOpenDialog(frame) == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); FileReader fileReader = new FileReader(selectedFile); textArea.read(fileReader, null); fileReader.close(); frame.setTitle(fileChooser.getName(selectedFile)); } } catch (IOException e) { e.printStackTrace(); } } /* * @see ActionLogic#save(TextEditorModel) */ @Override public void save(TextEditorModel model) { JTextArea textArea = model.getTextArea(); JFileChooser fileChooser = model.getFileChooser(); // ファイルが既に開かれている場合 if (fileChooser.getSelectedFile() != null) { logic.writeFile(fileChooser.getSelectedFile(), textArea.getText()); return; } saveAs(model); } /* * @see ActionLogic#saveAs(TextEditorModel) */ @Override public void saveAs(TextEditorModel model) { JFrame frame = model.getFrame(); JTextArea textArea = model.getTextArea(); JFileChooser fileChooser = model.getFileChooser(); // ファイルダイアログ「保存」が選択された場合 if (fileChooser.showSaveDialog(frame) == JFileChooser.APPROVE_OPTION) { logic.writeFile(fileChooser.getSelectedFile(), textArea.getText()); File selectedFile = fileChooser.getSelectedFile(); frame.setTitle(fileChooser.getName(selectedFile)); } } /* * @see ActionLogic#showVersionInfo(TextEditorModel) */ @Override public void showVersionInfo(TextEditorModel model) { JFrame frame = model.getFrame(); JOptionPane.showMessageDialog(frame, Constants.VERSION, Constants.VERSION_TITLE, JOptionPane.INFORMATION_MESSAGE); } }
https://w.atwiki.jp/tool_encode/pages/656.html
2012-02-20 12 33 38 (Mon) 機動戦士ガンダムSEED 制作 サンライズ - 放送局 開始 時間 フレームレート 画質 【再】 BS11 2011-01-01(日) 19 30 周期一定24fps HDリマスター 【再】 MX 2011-01-03(火) 22 29 - - SubTitle Source Size crf fps time memo #01 「偽りの平和」 BS11 316MB 21 6.08 fps 1h35m35s 予告後に縞 #02 「その名はガンダム」 BS11 315MB 21 6.12 fps 1h34m58s OP後に縞 #03 「崩壊の大地」 BS11 275MB 21 8.60 fps 1h07m37s OP前,7 15-7 20,12 47-12 52で周期変化 #04 「サイレントラン」 BS11 241MB 21 8.86 fps 1h05m38s AUTO24 #05 「フェイズシフトダウン」 BS11 301MB 21 8.51 fps 1h08m20s - #06 「消えるガンダム」 BS11 261MB 21 8.81 fps 1h05m59s - #07 「宇宙の傷跡」 BS11 250MB 21 8.75 fps 1h06m26s - #08 「敵軍の歌姫」 BS11 235MB 21 8.77 fps 1h06m18s - #09 「消えていく光」 - - - - - - #10 「分かたれた道」 - - - - - - #11 「目覚める刃」 - - - - - - #12 「フレイの選択」 - - - - - - #13 「宇宙に降る星」 - - - - - - #14 「果てし無き時の中で」 - - - - - - #15 「それぞれの孤独」 - - - - - - #16 「燃える砂塵」 - - - - - - #17 「カガリ再び」 - - - - - - #18 「ペイバック」 - - - - - - #19 「宿敵の牙」 - - - - - - #20 「おだやかな日に」 - - - - - - #21 「砂塵の果て」 - - - - - - #22 「紅に染まる海」 - - - - - - #23 「」 - - - - - - #24 「」 - - - - - - #25 「」 - - - - - - #26 「」 - - - - - - #27 「」 - - - - - - #28 「」 - - - - - - #29 「」 - - - - - - #30 「」 - - - - - - #31 「」 - - - - - - -#01 「偽りの平和」 Start:10 29 58.25 "--------------------------------------------------------------------------------------------" 入力avs GUNDAMSEED-BS11-01.avs 出力mp4 "機動戦士ガンダムSEED 01 「偽りの平和」.mp4" avs [info] 1280x720p 0 0 @ 24000/1001 fps (cfr) x264 [info] using cpu capabilities MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64 x264 [info] profile High, level 4.1 x264 [info] frame I 411 Avg QP 16.70 size 78002 PSNR Mean Y 49.54 U 50.50 V 50.65 Avg 49.78 Global 49.45 x264 [info] frame P 10455 Avg QP 20.87 size 15416 PSNR Mean Y 46.75 U 49.15 V 49.45 Avg 47.37 Global 46.87 x264 [info] frame B 24007 Avg QP 24.50 size 3836 PSNR Mean Y 46.02 U 49.03 V 49.32 Avg 46.77 Global 46.22 x264 [info] consecutive B-frames 6.3% 8.2% 12.1% 40.0% 33.3% x264 [info] mb I I16..4 27.3% 38.7% 34.0% x264 [info] mb P I16..4 15.1% 0.0% 7.4% P16..4 22.5% 7.6% 3.7% 0.0% 0.0% skip 43.8% x264 [info] mb B I16..4 1.3% 0.0% 0.7% B16..8 16.8% 3.2% 0.8% direct 1.3% skip 75.9% L0 39.3% L1 53.6% BI 7.1% x264 [info] 8x8 transform intra 4.9% inter 66.6% x264 [info] direct mvs spatial 100.0% temporal 0.0% x264 [info] coded y,uvDC,uvAC intra 36.0% 52.7% 23.6% inter 7.3% 6.9% 0.6% x264 [info] i16 v,h,dc,p 40% 23% 16% 21% x264 [info] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu 23% 19% 20% 5% 5% 6% 6% 6% 10% x264 [info] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu 19% 15% 30% 6% 6% 6% 6% 6% 7% x264 [info] i8c dc,h,v,p 40% 30% 17% 13% x264 [info] Weighted P-Frames Y 3.0% UV 2.2% x264 [info] ref P L0 62.3% 9.2% 19.8% 8.5% 0.1% x264 [info] ref B L0 86.9% 9.9% 3.2% x264 [info] ref B L1 94.1% 5.9% x264 [info] SSIM Mean Y 0.9915393 (20.726db) x264 [info] PSNR Mean Y 46.281 U 49.082 V 49.371 Avg 46.984 Global 46.428 kb/s 1569.36 encoded 34873 frames, 6.08 fps, 1569.37 kb/s "--------------------------------------------------------------------------------------------" End:12 05 33.22 TOP -#02 「その名はガンダム」 Start: 9 19 20.83 "--------------------------------------------------------------------------------------------" 入力avs GUNDAMSEED-BS11-01.avs 出力mp4 "機動戦士ガンダムSEED 02 「その名はガンダム」.mp4" avs [info] 1280x720p 0 0 @ 24000/1001 fps (cfr) x264 [info] using cpu capabilities MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64 x264 [info] profile High, level 4.1 x264 [info] frame I 453 Avg QP 16.65 size 78742 PSNR Mean Y 49.77 U 50.58 V 50.73 Avg 49.99 Global 49.57 x264 [info] frame P 10289 Avg QP 20.70 size 15303 PSNR Mean Y 46.78 U 49.11 V 49.35 Avg 47.39 Global 46.78 x264 [info] frame B 24135 Avg QP 24.60 size 3787 PSNR Mean Y 46.30 U 49.16 V 49.48 Avg 47.02 Global 46.32 x264 [info] consecutive B-frames 5.5% 8.5% 12.6% 43.7% 29.7% x264 [info] mb I I16..4 28.9% 33.9% 37.3% x264 [info] mb P I16..4 12.9% 0.0% 7.4% P16..4 19.8% 7.0% 3.4% 0.0% 0.0% skip 49.4% x264 [info] mb B I16..4 1.2% 0.0% 0.7% B16..8 15.2% 3.0% 0.7% direct 1.2% skip 77.8% L0 41.6% L1 51.8% BI 6.6% x264 [info] 8x8 transform intra 5.1% inter 63.9% x264 [info] direct mvs spatial 100.0% temporal 0.0% x264 [info] coded y,uvDC,uvAC intra 38.8% 54.8% 27.2% inter 6.5% 6.2% 0.7% x264 [info] i16 v,h,dc,p 44% 21% 16% 19% x264 [info] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu 23% 19% 22% 6% 4% 5% 5% 6% 10% x264 [info] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu 19% 15% 29% 7% 6% 6% 6% 6% 7% x264 [info] i8c dc,h,v,p 41% 28% 17% 14% x264 [info] Weighted P-Frames Y 1.6% UV 1.1% x264 [info] ref P L0 62.7% 8.1% 19.5% 9.6% 0.1% x264 [info] ref B L0 85.5% 11.1% 3.4% x264 [info] ref B L1 93.3% 6.7% x264 [info] SSIM Mean Y 0.9921940 (21.076db) x264 [info] PSNR Mean Y 46.490 U 49.164 V 49.460 Avg 47.168 Global 46.483 kb/s 1564.68 encoded 34877 frames, 6.12 fps, 1564.69 kb/s "--------------------------------------------------------------------------------------------" End:10 54 18.76 TOP -#03 「崩壊の大地」 Start:22 42 33.08 "--------------------------------------------------------------------------------------------" 入力avs GUNDAMSEED-BS11-01.avs 出力mp4 "機動戦士ガンダムSEED 03 「崩壊の大地」.mp4" avs [info] 1280x720p 0 0 @ 24000/1001 fps (cfr) x264 [info] using cpu capabilities MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64 x264 [info] profile High, level 4.1 x264 [info] frame I 425 Avg QP 16.31 size 80389 PSNR Mean Y 50.17 U 51.01 V 51.10 Avg 50.40 Global 50.04 x264 [info] frame P 10132 Avg QP 20.22 size 13177 PSNR Mean Y 47.17 U 49.45 V 49.61 Avg 47.76 Global 47.14 x264 [info] frame B 24323 Avg QP 24.73 size 3053 PSNR Mean Y 46.53 U 49.34 V 49.53 Avg 47.24 Global 46.56 x264 [info] consecutive B-frames 5.3% 7.5% 11.6% 44.2% 31.3% x264 [info] mb I I16..4 28.7% 34.1% 37.2% x264 [info] mb P I16..4 9.8% 0.0% 5.3% P16..4 19.5% 6.4% 3.4% 0.0% 0.0% skip 55.5% x264 [info] mb B I16..4 0.9% 0.0% 0.4% B16..8 14.1% 2.6% 0.6% direct 1.0% skip 80.4% L0 41.9% L1 50.6% BI 7.4% x264 [info] 8x8 transform intra 6.4% inter 64.2% x264 [info] direct mvs spatial 99.9% temporal 0.1% x264 [info] coded y,uvDC,uvAC intra 39.0% 54.3% 26.3% inter 5.7% 5.4% 0.6% x264 [info] i16 v,h,dc,p 44% 20% 16% 20% x264 [info] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu 23% 18% 23% 6% 5% 5% 5% 6% 9% x264 [info] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu 19% 15% 28% 7% 7% 6% 6% 6% 7% x264 [info] i8c dc,h,v,p 44% 25% 16% 14% x264 [info] Weighted P-Frames Y 1.6% UV 1.1% x264 [info] ref P L0 64.4% 7.9% 18.9% 8.8% 0.1% x264 [info] ref B L0 87.0% 10.1% 3.0% x264 [info] ref B L1 93.6% 6.4% x264 [info] SSIM Mean Y 0.9928180 (21.438db) x264 [info] PSNR Mean Y 46.762 U 49.394 V 49.572 Avg 47.429 Global 46.750 kb/s 1330.48 encoded 34880 frames, 8.60 fps, 1330.48 kb/s "--------------------------------------------------------------------------------------------" End:23 50 10.47 TOP -#04 「サイレントラン」 Start: 6 16 15.04 "--------------------------------------------------------------------------------------------" 入力avs GUNDAMSEED-BS11-01.avs 出力mp4 "機動戦士ガンダムSEED 04 「サイレントラン」.mp4" avs [info] 1280x720p 0 0 @ 24000/1001 fps (cfr) x264 [info] using cpu capabilities MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64 x264 [info] profile High, level 4.1 x264 [info] frame I 361 Avg QP 16.22 size 80594 PSNR Mean Y 50.29 U 50.99 V 51.11 Avg 50.49 Global 50.15 x264 [info] frame P 9597 Avg QP 20.02 size 12027 PSNR Mean Y 47.23 U 49.53 V 49.69 Avg 47.84 Global 47.33 x264 [info] frame B 24910 Avg QP 24.90 size 2491 PSNR Mean Y 46.54 U 49.40 V 49.62 Avg 47.27 Global 46.68 x264 [info] consecutive B-frames 4.2% 5.6% 9.3% 46.3% 34.7% x264 [info] mb I I16..4 32.9% 28.1% 38.9% x264 [info] mb P I16..4 7.8% 0.0% 3.5% P16..4 20.1% 6.8% 3.7% 0.0% 0.0% skip 58.1% x264 [info] mb B I16..4 0.5% 0.0% 0.2% B16..8 14.0% 2.4% 0.5% direct 0.8% skip 81.6% L0 41.3% L1 50.4% BI 8.3% x264 [info] 8x8 transform intra 6.3% inter 60.4% x264 [info] direct mvs spatial 100.0% temporal 0.0% x264 [info] coded y,uvDC,uvAC intra 36.5% 49.7% 25.1% inter 4.9% 4.3% 0.6% x264 [info] i16 v,h,dc,p 48% 21% 15% 16% x264 [info] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu 25% 18% 25% 5% 4% 4% 4% 6% 8% x264 [info] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu 21% 15% 27% 7% 6% 6% 5% 6% 7% x264 [info] i8c dc,h,v,p 45% 27% 18% 10% x264 [info] Weighted P-Frames Y 1.0% UV 0.8% x264 [info] ref P L0 63.7% 6.5% 20.2% 9.6% 0.0% x264 [info] ref B L0 86.6% 9.9% 3.6% x264 [info] ref B L1 92.4% 7.6% x264 [info] SSIM Mean Y 0.9935850 (21.928db) x264 [info] PSNR Mean Y 46.770 U 49.453 V 49.651 Avg 47.463 Global 46.875 kb/s 1136.31 encoded 34868 frames, 8.86 fps, 1136.32 kb/s "--------------------------------------------------------------------------------------------" End: 7 21 53.20 TOP -#05 「フェイズシフトダウン」 Start:21 50 35.98 "--------------------------------------------------------------------------------------------" 入力avs GUNDAMSEED-BS11-01.avs 出力mp4 "機動戦士ガンダムSEED 05 「フェイズシフトダウン」.mp4" avs [info] 1280x720p 0 0 @ 24000/1001 fps (cfr) x264 [info] using cpu capabilities MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64 x264 [info] profile High, level 4.1 x264 [info] frame I 452 Avg QP 16.57 size 73017 PSNR Mean Y 50.19 U 51.18 V 51.27 Avg 50.45 Global 50.07 x264 [info] frame P 10492 Avg QP 20.89 size 14518 PSNR Mean Y 46.98 U 49.54 V 49.50 Avg 47.62 Global 47.07 x264 [info] frame B 23939 Avg QP 24.66 size 3510 PSNR Mean Y 46.35 U 49.49 V 49.43 Avg 47.11 Global 46.54 x264 [info] consecutive B-frames 6.5% 8.2% 14.5% 35.4% 35.3% x264 [info] mb I I16..4 33.0% 31.5% 35.5% x264 [info] mb P I16..4 15.6% 0.0% 6.3% P16..4 21.3% 7.3% 3.5% 0.0% 0.0% skip 46.1% x264 [info] mb B I16..4 1.3% 0.0% 0.4% B16..8 17.9% 3.1% 0.7% direct 1.1% skip 75.5% L0 42.5% L1 51.2% BI 6.4% x264 [info] 8x8 transform intra 4.5% inter 63.8% x264 [info] direct mvs spatial 100.0% temporal 0.0% x264 [info] coded y,uvDC,uvAC intra 31.8% 46.7% 20.2% inter 6.6% 6.0% 0.7% x264 [info] i16 v,h,dc,p 48% 20% 16% 17% x264 [info] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu 22% 17% 26% 5% 4% 5% 5% 6% 8% x264 [info] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu 17% 14% 33% 7% 6% 5% 5% 6% 7% x264 [info] i8c dc,h,v,p 47% 26% 15% 12% x264 [info] Weighted P-Frames Y 2.0% UV 1.5% x264 [info] ref P L0 62.6% 7.9% 20.0% 9.4% 0.1% x264 [info] ref B L0 85.7% 11.2% 3.1% x264 [info] ref B L1 92.2% 7.8% x264 [info] SSIM Mean Y 0.9925923 (21.303db) x264 [info] PSNR Mean Y 46.592 U 49.525 V 49.476 Avg 47.304 Global 46.728 kb/s 1481.08 encoded 34883 frames, 8.51 fps, 1481.08 kb/s "--------------------------------------------------------------------------------------------" End:22 58 55.49 TOP -#06 「消えるガンダム」 Start:22 50 34.56 "--------------------------------------------------------------------------------------------" 入力avs GUNDAMSEED-BS11-01.avs 出力mp4 "機動戦士ガンダムSEED 06 「消えるガンダム」.mp4" avs [info] 1280x720p 0 0 @ 24000/1001 fps (cfr) x264 [info] using cpu capabilities MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64 x264 [info] profile High, level 4.1 x264 [info] frame I 414 Avg QP 16.27 size 80003 PSNR Mean Y 50.17 U 50.98 V 51.28 Avg 50.43 Global 50.10 x264 [info] frame P 9934 Avg QP 20.06 size 12692 PSNR Mean Y 47.03 U 49.29 V 49.72 Avg 47.66 Global 47.09 x264 [info] frame B 24535 Avg QP 24.76 size 2801 PSNR Mean Y 46.43 U 49.21 V 49.65 Avg 47.16 Global 46.50 x264 [info] consecutive B-frames 4.6% 8.3% 10.1% 42.7% 34.2% x264 [info] mb I I16..4 31.2% 30.8% 38.1% x264 [info] mb P I16..4 8.1% 0.0% 4.6% P16..4 19.0% 6.1% 3.5% 0.0% 0.0% skip 58.6% x264 [info] mb B I16..4 0.6% 0.0% 0.4% B16..8 13.2% 2.3% 0.6% direct 0.8% skip 82.0% L0 41.4% L1 51.1% BI 7.4% x264 [info] 8x8 transform intra 6.6% inter 61.4% x264 [info] direct mvs spatial 100.0% temporal 0.0% x264 [info] coded y,uvDC,uvAC intra 40.1% 53.3% 26.8% inter 5.2% 4.7% 0.5% x264 [info] i16 v,h,dc,p 45% 20% 17% 18% x264 [info] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu 23% 19% 24% 5% 4% 5% 5% 6% 9% x264 [info] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu 20% 15% 26% 7% 7% 6% 6% 6% 7% x264 [info] i8c dc,h,v,p 42% 27% 18% 12% x264 [info] Weighted P-Frames Y 1.1% UV 0.8% x264 [info] ref P L0 64.6% 7.4% 19.2% 8.7% 0.1% x264 [info] ref B L0 86.7% 10.4% 2.9% x264 [info] ref B L1 93.1% 6.9% x264 [info] SSIM Mean Y 0.9931043 (21.614db) x264 [info] PSNR Mean Y 46.642 U 49.255 V 49.690 Avg 47.342 Global 46.689 kb/s 1253.25 encoded 34883 frames, 8.81 fps, 1253.25 kb/s "--------------------------------------------------------------------------------------------" End:23 56 33.95 TOP -#07 「宇宙の傷跡」 Start:22 14 51.69 "--------------------------------------------------------------------------------------------" 入力avs GUNDAMSEED-BS11-01.avs 出力mp4 "機動戦士ガンダムSEED 07 「宇宙の傷跡」.mp4" avs [info] 1280x720p 0 0 @ 24000/1001 fps (cfr) x264 [info] using cpu capabilities MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64 x264 [info] profile High, level 4.1 x264 [info] frame I 367 Avg QP 16.17 size 78816 PSNR Mean Y 50.36 U 51.02 V 51.50 Avg 50.59 Global 50.22 x264 [info] frame P 9623 Avg QP 19.98 size 12486 PSNR Mean Y 47.29 U 49.42 V 50.06 Avg 47.91 Global 47.34 x264 [info] frame B 24892 Avg QP 24.66 size 2677 PSNR Mean Y 46.62 U 49.24 V 49.91 Avg 47.34 Global 46.70 x264 [info] consecutive B-frames 3.9% 7.3% 9.6% 40.7% 38.5% x264 [info] mb I I16..4 29.6% 33.6% 36.8% x264 [info] mb P I16..4 8.0% 0.0% 4.0% P16..4 21.7% 7.4% 3.9% 0.0% 0.0% skip 55.0% x264 [info] mb B I16..4 0.6% 0.0% 0.3% B16..8 15.3% 2.5% 0.5% direct 0.9% skip 80.0% L0 41.7% L1 50.7% BI 7.6% x264 [info] 8x8 transform intra 7.1% inter 64.9% x264 [info] direct mvs spatial 99.9% temporal 0.1% x264 [info] coded y,uvDC,uvAC intra 40.1% 50.4% 24.5% inter 5.5% 4.9% 0.5% x264 [info] i16 v,h,dc,p 45% 21% 18% 16% x264 [info] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu 23% 19% 24% 5% 4% 5% 5% 6% 9% x264 [info] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu 21% 15% 27% 6% 6% 6% 6% 6% 7% x264 [info] i8c dc,h,v,p 44% 29% 18% 9% x264 [info] Weighted P-Frames Y 1.7% UV 1.5% x264 [info] ref P L0 64.7% 7.9% 19.3% 8.0% 0.1% x264 [info] ref B L0 88.8% 8.6% 2.5% x264 [info] ref B L1 93.5% 6.5% x264 [info] SSIM Mean Y 0.9925704 (21.290db) x264 [info] PSNR Mean Y 46.841 U 49.310 V 49.968 Avg 47.533 Global 46.893 kb/s 1186.18 encoded 34882 frames, 8.75 fps, 1186.19 kb/s "--------------------------------------------------------------------------------------------" End:23 21 17.70 TOP -#08 「敵軍の歌姫」 Start: 2 22 29.04 "--------------------------------------------------------------------------------------------" 入力avs GUNDAMSEED-BS11-01.avs 出力mp4 "機動戦士ガンダムSEED 08 「敵軍の歌姫」.mp4" avs [info] 1280x720p 0 0 @ 24000/1001 fps (cfr) x264 [info] using cpu capabilities MMX2 SSE2Fast SSSE3 FastShuffle SSE4.1 Cache64 x264 [info] profile High, level 4.1 x264 [info] frame I 365 Avg QP 16.15 size 78113 PSNR Mean Y 50.42 U 51.26 V 51.44 Avg 50.65 Global 50.33 x264 [info] frame P 9846 Avg QP 19.89 size 11183 PSNR Mean Y 47.39 U 49.70 V 49.95 Avg 48.01 Global 47.49 x264 [info] frame B 24667 Avg QP 24.79 size 2489 PSNR Mean Y 46.73 U 49.60 V 49.87 Avg 47.47 Global 46.86 x264 [info] consecutive B-frames 4.6% 6.8% 9.3% 46.6% 32.8% x264 [info] mb I I16..4 32.9% 29.5% 37.6% x264 [info] mb P I16..4 7.6% 0.0% 3.7% P16..4 18.2% 5.8% 3.2% 0.0% 0.0% skip 61.5% x264 [info] mb B I16..4 0.6% 0.0% 0.4% B16..8 12.3% 2.2% 0.5% direct 0.8% skip 83.3% L0 41.7% L1 50.3% BI 8.0% x264 [info] 8x8 transform intra 6.3% inter 60.9% x264 [info] direct mvs spatial 100.0% temporal 0.0% x264 [info] coded y,uvDC,uvAC intra 39.5% 49.3% 24.4% inter 4.7% 4.2% 0.5% x264 [info] i16 v,h,dc,p 47% 20% 16% 17% x264 [info] i8 v,h,dc,ddl,ddr,vr,hd,vl,hu 25% 19% 25% 5% 4% 4% 5% 6% 7% x264 [info] i4 v,h,dc,ddl,ddr,vr,hd,vl,hu 21% 14% 27% 6% 6% 5% 6% 6% 7% x264 [info] i8c dc,h,v,p 44% 27% 19% 10% x264 [info] Weighted P-Frames Y 1.3% UV 1.1% x264 [info] ref P L0 64.8% 6.8% 19.4% 8.9% 0.0% x264 [info] ref B L0 85.7% 10.9% 3.4% x264 [info] ref B L1 93.1% 6.9% x264 [info] SSIM Mean Y 0.9934595 (21.844db) x264 [info] PSNR Mean Y 46.958 U 49.648 V 49.909 Avg 47.657 Global 47.056 kb/s 1099.92 encoded 34878 frames, 8.77 fps, 1099.93 kb/s "--------------------------------------------------------------------------------------------" End: 3 28 47.57 TOP -#09 「消えていく光」 TOP -#10 「分かたれた道」 TOP -#11 「目覚める刃」 TOP -#12 「フレイの選択」 TOP -#13 「宇宙に降る星」 TOP -#14 「果てし無き時の中で」 TOP -#15 「それぞれの孤独」 TOP -#16 「燃える砂塵」 TOP -#17 「カガリ再び」 TOP -#18 「ペイバック」 TOP -#19 「宿敵の牙」 TOP -#20 「おだやかな日に」 TOP -#21 「砂塵の果て」 TOP -#22 「紅に染まる海」 TOP - TOP - TOP - TOP - TOP
https://w.atwiki.jp/gtalcs/pages/21.html
SALVATORE S SALVATION サルバトーレのミッション、CONTRA-BANNEDをクリアすると受けられるようになる。 レーダーのJDのJのマークに行き、マーカーに入るとミッション開始。 [カットシーン] Toni JD! JD! JD Toni, thank god you re here. トニー、来てくれてよかった。 I m sweating like my uncle in a schoolyard - my minds going crazy. 校庭のおじさんみたいに汗をかいてるよ - 頭が狂いそうだ。 Toni What are we gonna do? 何をすればいいんだ? JD Oh God I can t believe it, he is gonna cut my balls off. 信じられないよ、彼は俺のタマを切るだろうよ。 He s gonna put them in a vice! Not necessarily in that order. 奴らを欠陥だらけの体にしてしまうよ!順番は関係ないけど。 Oh God! I feel like the day the FBI searched my hard drive! まったく!FBIが俺のハードディスクを調べた時みたいだ! Oh, my heart s racing. Have you got any vallion? 心臓がバクバクするよ。Vallion持ってるかい? Or rohapnin? What about... Rohapninは?もしくは... No, no...See I got too many of those... いやいや...それ系は既に持ってた... Toni What s going on? 何があった? JD Oh God I can t believe this... 信じられないよ... Why am I to blame? I s not my fault. 誰のせいだ?俺のせいじゃない。 But you know Salvatore, he s gonna get the vice squad on my ass. でもな、サルバトーレはモンスターを俺のケツへ突っ込むだろう。 Oh my God, it s gonna be like those statutory rape charges. レイプ容疑の法律みたいになるよ。 have you ever been in prison on statutory rape charges, man? レイプ容疑の法律でムショに入ったことあるかい? They come in at you at the showers! 奴らはシャワー室にやってくるんだ! Oh God, and she was 18! Oh my God! This is gonna be worse! 彼女はまだ18歳だった!ヤバいことになるよ! Toni Listen you babbling cock sucker. What in god s name is wrong? おい、このカマ野郎。一体全体何が問題なんだ? JD It s Salvatore. He was kidnapped while leaving the club. サルバトーレだよ。クラブを出て行った時に誘拐されたんだ。 Toni Why diidn t you say so? Instead of making me listen to that crap. Come on. 一体何があった?お前の戯言なんて聞きたくなかったぜ。いくぞ。 [ミッション] Follow the car, but keep a low profile 車を追え、だが近づきすぎるな。 Rescue Salvatore from the car before they crush it! 彼らが車を壊す前にサルバトーレを救え! 車を追っていくと、シンダッコの連中がおりサルバトーレがバックにとらわれている。 こちらが近づくとサルバトーレを積んだ車で逃げて行くので追う。撃つとサルバトーレが死んでしまうことがあるので撃たないほうがいい。サルバトーレを乗せた車は北の廃車置き場まで向かう、ついて行き、車でぶつけまくると敵が降りてくるので、奴らを殺しその車に乗り込む。サルバトーレの家に連れて行くとミッションクリア。サルバトーレの乗った車が廃車にされるとアウト。 報酬は$1,500。
https://w.atwiki.jp/bioshock_bigdaddy/pages/34.html
パッチ本体 2008-8-22版(有志により殆どが日本語化。感謝!) 2007-10-05-2版 2007-09-22版 2007-09-17版 2007-09-15版 2007-09-12版 2007-09-09版 最新パッチ用追加ファイル 字幕ファイル 形式 ファイル名 半角英数字.txt 文字コード UTF-8 改行コード CRLF 奇数行 置き換え対象とする英文字幕(前方一致) 偶数行 上段の英文の和訳 注意 置き換え対象とする英文は、画面に表示されるものそのままになります。 複数ページ字幕の場合、別の文として追加してください。 大文字小文字、スペース、句読点の区別がなくなりました。 スペースで改行位置が調整される為、訳は適度にスペース挿入が無難です。 英文は前方一致の為、あまり省略すると誤爆する可能性があります。 字幕ファイル内容 Welcome_to_the_Rapture.txt MedicalPavilion.txt NeptunesBounty.txt Smuggler s Hideout.txt Arcadia.txt Farmer s Market.txt FortFrolic.txt Hephaestus.txt Rapture Central Control.txt Olympus Heights.txt Apollo Square.txt Point Prometheus.txt Proving_Ground.txt Fontaine.txt ミラー 日本語字幕MOD置き場(ミラー)字幕付オープニングムービー、字幕付プラスミドムービーあり コメント NeptunesBounty.txt に Smuggler s Hideout のぶん含めてしまってます・・・。 -- ZK (2007-09-23 03 06 56) 名前 コメント
https://w.atwiki.jp/xbox360score/pages/113.html
Need for Speed Carbon 項目数:50 総ポイント:1000(バグで990まで) 難易度: ~390:★★☆☆☆(オフライン全般) ~890:★★★☆☆(オンライン全般、談合すれば★-1) ~990:★★★★☆(Reward Card Hustler) 2021年8月31日でオンラインサービス終了。以降オンライン実績解除不可。 外部サイトでEAモデレーター実績解除の募集を行っている。(詳細は下記に) Crusher、12 Minute Exit、Public Enemy No. 1 の3つが難しく感じるならば、 シナリオ開始直後はヒートレベルが2までしか上がらないのでチート併用で時間をかけてやれば楽に取れる。 Scenario Complete シナリオモードをクリア 50 Conqueror シナリオモードをクリアし、全バトルに勝利 70 Crusher 1 回の追跡(シナリオ フリーラン)でパトカー 100 台に激突 25 12 Minute Exit 最低 12 分間追跡された後、 警察を振り切る 5 Perfect Canyon Duel 衝突せずキャニオンデュエルで勝利 5 Drift King (誤)全セーフハウス発見 (正)ドリフトイベントで500,000ポイント以上獲得 10 Career Mogul シナリオモードでキャッシュを 1,000,000 稼ぐ 10 Challenge Series Champ (Bronze) チャレンジシリーズイベント(ブロンズ)を全てクリア 10 Challenge Series Champ (Silver) チャレンジシリーズイベント(シルバー)を全てクリア 20 Challenge Series Champ (Gold) チャレンジシリーズイベント(ゴールド)を全てクリア 30 Fast Wheels (誤)全チャレンジシリーズイベントをクリア (正)1回の追跡で被害額を200,000まで上げる 20 Need for Speed スピードトラップで 230mph を記録 20 Public Enemy No. 1 パトカー 50 台走行不能 10 Wheels of Steel フリーラン(シナリオモード)でスパイクベルトを 5 個回避 5 Big Game Hunter フリーラン(シナリオモード)でライノを走行不能 10 Urban Battle フリーランチャレンジ(シナリオモード)で 50 勝 10 Car Collector (誤)マシンを 36 台解除 (正)マシンを 33 台解除 15 Muscle Head セーフハウスをマッスルクラスのマシンで一杯にする 25 Tuner Addict セーフハウスをスタンダードクラスのマシンで一杯にする 25 Exotic Aficionado セーフハウスをハイエンドクラスのマシンで一杯にする 25 Reward Card Hustler オフラインとオンラインの報酬カードを全てクリア 100 Head Start オンラインの York Road でライバルに 10 秒ハンデを与えバトルに勝利 25 Battle Week バトルウィーク中にランク マッチを完走 15 Online Leiutenant オンラインで 50 回プレイ 15 Online General オンラインで 100 回プレイ 25 Lucky Break ランク マッチ 3 連勝 10 Rock Solid ランク マッチ 5 連勝 20 Online Contender オンライン チャレンジシリーズイベントを 5 個クリア 5 Online Challenge Champ オンライン チャレンジシリーズイベントを 15 個クリア 10 Showboat スプリントバトル(ランク マッチ)リバースでゴールして勝利 25 Hot Streak ランク マッチ 4 連勝 10 Iron Man ランク マッチ 6 連勝 30 First Steps ランク マッチ又はオンライン チャレンジシリーズバトルを完走 5 Moderator Challenge ランク マッチでEAモデレーターに勝利 30 Knockout Fever オンラインで感染プレイヤーとパースートKOをプレイ、Knockout Feverをゲット 10 Canyon Craze オンラインで感染プレイヤーとキャニオンデュエルをプレイ、Canyon Crazeをゲット 10 Pursuit Pandemic オンラインで感染プレイヤーとパースートタグをプレイ、Pursuit Pandemic をゲット 10 The Carbon Plague 3 つのウィルスすべてに感染、Carbon Plagueをゲット 20 Online XP Level 1 オンライン XPレベル 1 到達 5 Online XP Level 2 オンライン XPレベル 2 到達 5 Online XP Level 4 オンライン XPレベル 4 到達 5 Online XP Level 6 オンライン XPレベル 6 到達 10 Online XP Level 9 オンライン XPレベル 9 到達 10 Online XP Level 13 オンライン XPレベル 13 到達 10 Online XP Level 18 オンライン XPレベル 18 到達 15 Online XP Level 23 オンライン XPレベル 23 到達 15 Online XP Level 29 オンライン XPレベル 29 到達 20 Online XP Level 35 オンライン XPレベル 35 到達 30 Online XP Level 42 オンライン XPレベル 42 到達 40 Online XP Level 50 オンライン XPレベル 50 到達 60 ※金稼ぎ 1.まず西エリアのボス、ウルフを倒しAston Martin DB9をアンロックする。 2.マーケットプレースから、「Supreme Car Bundle」(無料)をダウンロードする。 3.カーディーラーに行き、Aston Martin DB9(タダ)を買えるだけ購入。ディーラーから出た時点でオートセーブされる。 4.ダッシュボードに戻り、上のダウンロードコンテンツを削除。 5.ゲームを開始し、Aston Martin DB9を売却。1台5万で売れる。売却後はセーブをして繰り返し。 ※もちろん他の有料DLCカーでも同様の事が出来る。この場合ゲーム開始直後に金を増やせるので更に楽。 ※「Supreme Car Bundle」(無料)の配信は終了しました。 Need for Speed 230mph(時速230マイル)なので勘違いしない様に。km法で言えば370km/h。 クイックバトルのFoundry Roadでドラフターを連れてやれば簡単。ちょうど指示が出せる様になった所あたりからスピードが出せるルートに入る。車は最高速の速い物ならなんでもいい。チートでニトロ無限を使えばもっと簡単。 Drift King クイックバトルで周回数を増やせば簡単に取れる。 Urban Battle バグで解除できない。(EAも修正しないとフォーラムで発言) ※シナリオのフリーランチャレンジ=ランダムチャレンジバトル Battle Week 現在は常に有効化されている。 EAモデレーター 現在True AchievementsでEAモデレーターの実績解除募集を行っている。 希望者がいなくなるまで毎月1回開催されているので早めに取得しよう。 尚、参加する場合ホストの人にはきちんとお礼を言いましょう。 http //www.trueachievements.com/Need-for-Speed-Carbon/achievements.htm (右側のにあるGaming Sessionsから参加の申請が可能、True Achievementsに登録する場合はこちらのブログに登録の詳細などが載っています) ウィルス系実績3つ+1つ(コンプボーナス) 実績を解除している人と対戦した人が「感染者」となる。そしてそれらの人とネット対戦するとまた感染者となり、どんどん広がる仕組み。 パースートKO、キャニオンデュエル、パースートタグとレース毎にウイルスは別なので注意。 ウィルス系はプレイヤーマッチでも解除されるので解除しているフレンドに頼んで対戦すると楽に解除できる。 実績解除に勝敗は関係なく最後までセッションに参加していればよい。 Reward Card Hustler 最難関実績。 オフの報酬カードはなんとかなるが、オンの報酬カードがかなり難しい。 EAモデレーターの取得と8人対戦、8人対戦で勝利が今となってはオンラインに誰もいない為、取得が不可能に近い。 チートコード 使用しても実績解除に問題はない。 各モード選択メニュー表示画面で入力 Unlimited Crew Charge ↓,↑,↑,→,←,←,→,X Unlimited Nitrous ←,↑,←,↓,←,↓,→,X Unlimited Speedbreaker ↓,→,→,←,→,↑,↓,X オンラインXP Online XP Level はランクマッチだけでなく、プレイヤーマッチでも上がる。 成績上位、(ゲームや人数によっては)1位しかポイントが入らず、 また得られるポイントが少ない(30~40程度)為、Lv20を越えたあたりから上がりづらくなる。 パースートタグ、パースートKOの6~8人プレイヤーマッチ部屋が比較的ポイント入手の順位幅が広い。 キャニオンで即崖に落ちてもらえればレース自体は早く終わる。 1VS1でもらえるポイントは28。落下したほうは当然0。 参加人数によってポイントが変わる。 2Players 28 - 0 3Players 30 - 14 - 0 4Players 32 - 20 - 12 - 0 5Players 34 - 24 - 16 - 10 - 0 6Players 36 - 26 - 20 - 16 - 10 - 0 7Players 38 - 30 - 24 - 20 - 14 - 8 - 0 8Players 40 - 32 - 28 - 24 - 18 - 12 - 6 – 0 レベル50までに必要なXPは15975 長時間(40回程プレイ)同一タグや同一グループと対戦してるとXPが獲得出来なくなる。 獲得出来なくなった場合は別に機会に。(1-2日すればまた獲得出来る) 尚、XPの獲得制限は、レース中に片方のプレイヤーがポーズメニューから切断する事でリセット出来る。 制限が掛かるのは30~40試合なので、20~30試合程度毎に切断を挟めば、同じ相手と稼ぎ続ける事が可能。
https://w.atwiki.jp/freememo/pages/86.html
入力文字数制限 コメント 入力文字数制限 void SetLimitText( UINT nMax ); TOP コメント 名前 コメント TOP
https://w.atwiki.jp/jasagiri/pages/81.html
Updated May 22, 2009 by antirez README イントロダクション Redis はデータベースです。redis をより特徴付けているのは、キーに関連付けられた値を辞書として実装しているとてもシンプルなデータベースということです。例えば、キー "surname_1992" は文字列 "Smith" を取り出せます。 Redis で面白いのは、キーに関連付けられる値は単純な文字列だけに限らず、 たくさんのサーバ側でのこのデータ型に関連付けられたアトミックな操作の lists や sets も関連付けることができることです。 Redis はメモリにデータセットを置きますが、非同期でデータセットのダンプをディスクに時々書き込むのでデータセットは永続化されます。このダンプはサーバが再起動したときにいつも読み込まれます。 Redis は数秒の elapzed やデータが変更された後にデータセットを保存するように構成できます。例えば、1000の変更があると保存するようにや、少なくとも 60 秒毎に保存するように Redis に伝えることができます。あなたはこのたくさんの組み合わせを指定できます。 データは非同期で書かれているため、もしシステムクラッシュが起こったとしても、最後の少しの問い合わせが失われるだけです(これはほとんどのアプリケーションで許容されています)。Redis は もしあなたのアプリケーションが少しのレコードでも失われるのが許容できないなら、早いうちから問題ないようにするために master-slave レプリケーションをサポートしようと思っています。(?) key-value 型データベースを超えて ほとんどの key-value 型データベースははキーと値は単なる文字列です。Redis ではキーはもちろん文字列だけですが、関連付けられた値は文字列やリストやセットやこのデータ型に対する複雑な単一操作を実行するコマンドがあるので、Redis をデータ構造サーバとして考えることが出来ます。 例えば、 O(1) に LPUSH か RPUSH 操作を使って、キー"mylist"に保存されたリストに要素を追加することが出来ます。その後、LRANGE で要素のレンジを取得したり LTRIM でリストを整えたりすることが出来ます。Sets もまたとてもフレキシブルで、Sets (ソートされていない文字列の集合)から要素を加えたり除いたりでき、 サーバ側でintersection , union, Sets の違いを問い合わせます。 この特徴(ソートされたリストとセットのサポート)すべてのおかげで、スケーラブルなアプリケーションのための唯一のDBとしてどんな関係データベースも必要とせず Redis を使うことが可能なのです。私たちは実世界に例を示すために PHP + Redis でシンプルな Twitter クローンを書きました。このリンクの先にはとても単純な言葉でデザインと内部について説明する記事があります。 Redis と Memcached との違いは何か 違いは以下: Memcached は永続化されず、キャッシュとして使うことを主な目標として、節約せず単にメモリにすべて保持するだけです。Redis はアプリケーションのメインDBとして使うことが出来ます。 私たちは Redis だけをデータベースとして使う単純な Twitter クローンを書きました。 Redis は memcached のように key-value モデルで、キーは単なる文字列ですが、Redis の値は List と Set の 共通集合のような複雑な操作ができ、 set/get リストの n番目の要素を設定したり取得したり、要素を pop/push したりすることがセットとリストに対して出来ます。これは list をメッセージキューとして利用できることを意味します。 Redis と Tokyo Cabinet / Tyrant との違いは何か Redis と Tokyo Cabinet は同じアプリケーションに利用できますが、実際は大きく異なっています。もしあなたがスケーラブルなものにかかわる人の twitter メッセージを読んだら、両方の製品ともうまくいくと報告されるでしょうが、どちらか一方がベストチョイスな時があるのも確かです。いくつかの違いをフォローします (私は偏っていると思うので自分で確かめてください)。 Tokyo Cabinet writes synchronously on disk, Redis takes the whole dataset on memory and writes on disk asynchronously. Tokyo Cabinet is safer and probably a better idea if your dataset is going to be bigger than RAM, but Redis is faster (note that Redis supports master-slave replication that is trivial to setup, so you are safe anyway if you want a setup where data can t be lost even after a disaster). Redis supports higher level operations and data structures. Tokyo Cabinet supports a kind of database that is able to organize data into rows with named fields (in a way very similar to Berkeley DB) but can t do things like server side List and Set operations Redis is able to do pushing or popping from Lists in an atomic way, in O(1) time complexity, server side Set intersections, SortCommand ing of schema free data in complex ways (Btw TC supports sorting in the table-based database format). Redis on the other hand does not support the abstraction of tables with fields, the idea is that you can build this stuff in software easily if you really need a table-alike approach. Tokyo Cabinet does not implement a networking layer. You have to use a networking layer called Tokyo Tyrant that interfaces to Tokyo Cabinet so you can talk to Tokyo Cabinet in a client-server fashion. In Redis the networking support is built-in inside the server, and is basically the only interface between the external world and the dataset. Redis is reported to be much faster, especially if you plan to access Tokyo Cabinet via Tokyo Tyrant. Here I can only say that with Redis you can expect 100,000 operations/seconds with a normal Linux box and 50 concurrent clients. You should test Redis, Tokyo, and the other alternatives with your specific work load to get a feeling about performances for your application. Redis is (IMHO) generally an higher level and simpler to use beast in the operations supported, and to get started. the command reference CommandReference to get a feeling. You can even start playing with Redis by telnet after reading the five minutes tutorial at the end of this README file. To implement new client libraries is trivial. the protocol specification ProtocolSpecification for more information. Redis is not an on-disk DB engine like Tokyo the latter can be used as a fast DB engine in your C project without the networking overhead just linking to the library. Still in many scalable applications you need multiple servers talking with multiple clients, so the client-server model is almost always needed, this is why in Redis this is built-in. Redis はロックをサポートしますか? いいえ、これはロックフリーアルゴリズムによってプログラマーが redis を使うようアトミック関数を提供するつもりだからです。例えば10台のコンピュータと1台の Redis サーバがあるとしましょう。あなたはとても大きなテキストにある言葉を数えたがっています。この大きなテキストは10台のコンピュータにそれぞれ分割され、どのコンピュータも部分を処理して単語を見つける毎にアトミックにカウンタを増やす Redis の INCR コマンドを使うでしょう。 INCR/DECR はアトミックプリミティブだけではなく、リストの PUSH/POP のような POP RANDOM KEY 操作, UPDATE など。例えば、分散アルゴリズムを実装して Tuple Space (http //en.wikipedia.org/wiki/Tuple_space) のように Redis を使うことも出来ます。 (News key-granularity(主な粒度?)でのロックは計画されています) 複数の databases サポート 他の同期関数は複数のデータベースをサポートします。 既定では、 DB 0 がすべての新しい接続に選択されますが、SELECT コマンドを使うことにより別のデータベースを選択することが可能です。 MOVE 操作であるデータベースから別のデータベースにアトミックにアイテムを移動させることが出来ます。これは RANDOMKEY コマンドと一緒にロックフリーアルゴリズムのベースとして使うことが出来ます。 Redis データ型 Redis は値として次の3つのデータ型をサポートします。: Strings:単なるバイト列。 Redis Stringはバイナリセーフで、テキストだけでなく画像や圧縮データなどを保持します。 Lists:文字列のリスト, 先頭や最後に新しい文字を追加するような、リストの長さや要素の幅を取得したり、与えられた長さにリストを切り出したり、リストをソートしたりする操作などをサポートします。 Sets 文字列のソートされていないセット。セットから要素を追加したり削除したり、セットの和集合や全集合や差集合などを取ったり出来ます。 値は Strings や Lists や Sets かも知れません。キーは改行("\n")やスペース(" ")を含まない文字列のサブセットです。 String は Redis が分析しないといけない数値を持っている可能性に注意してください。例えば INCR コマンドは、指定されたキーに保存されている値をアトミックに増加させます。この場合、Redis は、内部で64-bit で署名された整数の long long 型で保存された整数として扱うことが出来きます。 実装の詳細 Strings は動的に文字の文字列を割り当てるよう実装されています。 Lists は2倍にリンクされたリストのキャッシュ長で実装されています。 Sets は衝突を回避するのに推論(?)を使用したハッシュテーブルを使って実装されています。 Redis チュートリアル (note, you can skip this section if you are only interested in "formal" doc.) Later in this document you can find detailed information about Redis commands, the protocol specification, and so on. This kind of documentation is useful but... if you are new to Redis it is also BORING! The Redis protocol is designed so that is both pretty efficient to be parsed by computers, but simple enough to be used by humans just poking around with the telnet command, so this section will show to the reader how to play a bit with Redis to get an initial feeling about it, and how it works. To start just compile redis with make and start it with ./redis-server . The server will start and log stuff on the standard output, if you want it to log more edit redis.conf, set the loglevel to debug, and restart it. You can specify a configuration file as unique parameter ./redis-server /etc/redis.conf This is NOT required. The server will start even without a configuration file using a default built-in configuration. Now let s try to set a key to a given value $ telnet localhost 6379 Trying 127.0.0.1... Connected to localhost. Escape character is ^] . SET foo 3 bar OK The first line we sent to the server is "set foo 3". This means "set the key foo with the following three bytes I ll send you". The following line is the "bar" string, that is, the three bytes. So the effect is to set the key "foo" to the value "bar". Very simple! (note that you can send commands in lowercase and it will work anyway, commands are not case sensitive) Note that after the first and the second line we sent to the server there is a newline at the end. The server expects commands terminated by "\r\n" and sequence of bytes terminated by "\r\n". This is a minimal overhead from the point of view of both the server and client but allows us to play with Redis with the telnet command easily. The last line of the chat between server and client is "+OK". This means our key was added without problems. Actually SET can never fail but the "+OK" sent lets us know that the server received everything and the command was actually executed. Let s try to get the key content now GET foo $3 bar Ok that s very similar to set , just the other way around. We sent "get foo", the server replied with a first line that is just the $ character follwed by the number of bytes the value stored at key contained, followed by the actual bytes. Again "\r\n" are appended both to the bytes count and the actual data. In Redis slang this is called a bulk reply. What about requesting a non existing key? GET blabla $-1 When the key does not exist instead of the length, just the "$-1" string is sent. Since a -1 length of a bulk reply has no meaning it is used in order to specifiy a nil value and distinguish it from a zero length value. Another way to check if a given key exists or not is indeed the EXISTS command EXISTS nokey 0 EXISTS foo 1 As you can see the server replied 0 the first time since nokey does not exist, and 1 for foo , a key that actually exists. Replies starting with the colon character are integer reply. Ok... now you know the basics, read the REDIS COMMAND REFERENCE section to learn all the commands supported by Redis and the PROTOCOL SPECIFICATION section for more details about the protocol used if you plan to implement one for a language missing a decent client implementation. ライセンス Redis is released under the BSD license. See the COPYING file for more information. Credits Redis is written and maintained by Salvatore Sanfilippo, Aka antirez . Enjoy, antirez
https://w.atwiki.jp/emeditor/pages/115.html
プラグイン作成 C/C++の場合 プラグインレファレンスからplugin.hを入手する。 Visual C++(6.0/.NET) nao4uのCreatePluginTemplate for VC++を利用する。 Borland C++ Compiler Borland C++ Compilerは無償で利用することができます。 KKSoftwareの基礎ファイル生成ツールを利用する。 Pascal(Delphi) Borland Delphi 6 Personaは無償で利用することができます。 http //www.egroups.co.jp/messages/emeditorj/3029?threaded=1 プラグイン