デリゲート

デリゲート メソッドへの参照を表す型(デリゲート型)Delegateは委譲という意味で、委譲する内容は処理定義方法は、処理を記述しない以外は、通常のメソッドと同様で、それにdelegateキーワードを指定する。デリゲート型の変数には、戻り値と引数リストが一…

【Office Open XML】stylesのnumFmtについて

numFmtについて ttkcd.hatenablog.com に記載した通り、numFmts要素の子要素であるnumFmtは0ベースのインデックスではなく、numFmtのnumFmtIdを指定することによって参照される。 numFmtIdが同じだが、フォーマットが異なる値が存在した場合は? numFmtの定…

【C#】単体テスト

Visual Studio 公式としては、1プロジェクトに対応して1つの単体テストプロジェクトを推奨以下のような、TargetProjectについて考える。 namespace TargetProject { internal class InternalClz { public void PublicAdd(int a, int b) => a + b; internal v…

【Office Open XML】stylesパーツ

stylesパーツ 以下で、主要な要素について簡単な説明をしたが、いまいち分かりづらかったので、再度 ttkcd.hatenablog.com styles.xml SpreadSheetのワークシートのセルは、塗りつぶしをして色を設定したり、フォントを変えたりすることが出来る。この情報を…

【Java】FileとPath(+Files)

FileクラスとPathインタフェース(+Filesクラス)のどちらを使えばよいのか ttkcd.hatenablog.com に書いたように、PathはFileで可能な操作は基本的に可能 はじめに、似たような機能を持つのにそもそもパッケージが異なるFileクラスがjava.ioなのに対して、P…

【Java】ファイル操作

Javaでのファイル操作 Fileクラス(java.io) ファイルまたはディレクトリについての情報である抽象パス名をもとにファイルに関する様々な操作を行う コンストラクタ 4つのコンストラクタが存在する。 情報はあくまで"抽象パス名"であるため、指定された値の…

【C++】プリコンパイル済みヘッダ

ライブラリ作成時にエラー ライブラリを作成中に以下のコンパイルエラーが発生した。 C1010:プリコンパイルヘッダーを検索中に不明なEOFが見つかりました。'#include pch.h'をソースに追加しましたか? ttkcd.hatenablog.com pch.h プリコンパイル済みヘッ…

【C++】ライブラリとリンク

ライブラリ 複数の機能をまとめた部品 静的リンク プログラムを動かす際に、ライブラリ内のルーチンを実行可能プログラムに含める方法これに対応したライブラリが静的リンクライブラリ 動的リンク プログラムの実行時に、メモリ上でリンクを行う方法これに対…

【C++】リンカー

リンカー 関数や変数は、宣言(declaration)と定義(definition)することが出来る。 宣言(declaration) 型の情報や名前などのシンボルの概要をコンパイラに伝える。以下のような関数を宣言すると、コンパイラにMyPrint(symbol)という関数が存在する(fun…

【C++】実行までの流れ

実行ファイルの作成 テキストファイル C++の文法に従って、人間が分かるように書かれたテキストファイル(拡張子がcpp)。Javaとは異なり、クラス名とファイル名が違っても良い。 プリプロセス プリプロセッサがプリプロセスステートメントの加工を行う。代…

【C#】Enumerable.OfType<TResult>(IEnumerable) メソッド

OfType<TResult> 配列やリストなどのシーケンス内に、指定した型に変換できる要素を取得する。 public static IEnumerable<TResult> OfType<TResult>(this IEnumerable source) { if (source == null) throw Error.ArgumentNumm("source"); return OfTypeIterator<TResult>(source); } static IEn</tresult></tresult></tresult></tresult>…

【C#】IEnumerable<T>インタフェースの実装

IEnumerable<T>インタフェースの実装 ttkcd.hatenablog.com に記載の通り、IEnumerable<T>インタフェースは抽象メソッドGetEnumerator()を持っているため、IEnumerable<T>インタフェースを実装する際には、GetEnumerator()を実装する必要がある。また、IEnumerator<T>を</t></t></t></t>…

【C#】IEnumerable<T>

IEnumerable<T>インタフェース ジェネリックコレクション(System.Collections.Generic)に対する単純な反復処理をサポートする列挙子を公開する。IEnumerator<T>インタフェースを返す抽象メソッドGetEnumerator()を持つ。 ttkcd.hatenablog.com</t></t>

【C#】IEnumerableインタフェースの実装

IEnumerableインタフェースの実装 ttkcd.hatenablog.com に記載の通り、IEnumerableインタフェースは抽象メソッドGetEnumerator()を持っているため、IEnumerableインタフェースを実装する際には、GetEnumerator()を実装する必要がある。 internal class MyCo…

【C#】yieldキーワード

yieldキーワード C#2.0で追加されたIEnumerableまたはIEnumeratorをより直感的に作成できる仕組み。 ttkcd.hatenablog.com yield return文 以下のように使用する。 yield return expression; // expressionにはイテレータの要素を指定 yield return文の評価…

【C#】IEnumerable

IEnumerableインタフェース 非ジェネリックコレクション(System.Collections)に対する単純な反復処理をサポートする列挙子を公開する。IEnumeratorインタフェースを返す抽象メソッドGetEnumerator()を持つ。 IEnumeratorインタフェース 反復処理をサポートす…

【IT】ダンプ(dump)

ダンプ(dump) 加工しないで出力することで、特に未加工で出力する点が、出力と異なる。コンピュータの記憶装置(メモリやストレージなど)に記録された内容をまとめて表示、印刷、記録などすることや、そのようにして写しとられた内容をダンプという。メモ…

正規表現

正規表現とは 正規表現(Regular Expression)とは、”文字の組み合わせ”を表現する記法の1つで、正規表現が多く用いられる場面は文字列に対してパターン(正規表現)マッチングである。例えば、毎年リリースされるiPhoneシリーズについて考える。一般的にiPh…

【Java】エラーと例外

Javaのエラーと例外 Javaのエラー(Error)や例外(Exception)は全てThrowableクラス配下にある。Javaには他言語と異なりException配下に2つの系統があり、Runtime Exception(非検査例外)とその他(検査例外)がある。 Error 文字通りのエラーで、メモリ…

【MicroSoft Office】パスワード

ファイルのパスワード Office製品のファイルExcel、Word、Power Pointはxmlをひとまとめにしたもので、拡張子をzipに変更して解凍するとxmlの内部を見ることが出来る。パスワードをかけた場合の挙動を確かめる。 書き込み 読み取り 書き込み・読み取り zipに…

【Microsoft Word】アカウント情報を消す

作成者と前回保存者 Miscrosoft Word(以下、Word)で文書を作成して、公開することを考えたときに対象のファイルを右クリック⇒[プロパティ]⇒[詳細]でWordのアカウント情報が"以下の画像のように作成者"と"前回保存者"に表示されてしまうので、削除する方法 …

【C#】valueがlistのDictionary

var mData = new Dictionary<string, List<string>> { { "X", new List<string>() { "あ", "い", "う" } }, { "Y", new List<string>() { "か", "き", "く" } }, { "Z", new List<string>() { "さ", "し", "す" } } }; var sData = new Dictionary<string, List<string>> { { "X", new List<string>(){ "あ", "あ", "あ", "い", "う", "</string></string,></string></string></string></string,>…

【C#】継承

文法 class 派生クラス名 : 基底クラス{} 継承とは あるクラスを元(基底)として新しいクラス(派生)を作成すること派生クラスのインスタンスは暗黙的に基底クラスのインスタンスを持つこのため、基底クラスのメンバにもアクセスすることができる 隠蔽 派…

【文字コード】入門

文字コード(Character Code) 文字や記号をコンピュータ上でデータとして扱うために、1文字ずつ固有のビット列(0と1)を与えた符号のこと 通常、7ビット(128通り)または8ビット(256通り)を最小単位とする。 文字集合 文字コードを定義するためには、言語…

【Java】画像ファイルを2分割する

分割側コード import java.awt.image.BufferedImage; import java.io.File; import java.io.InputStream; import java.util.ArrayList; import javax.imageio.ImageIO; public class ImageDivided { private InputStream inputStream; public ImageDivided(I…

【C#】Disposeパターン

using usingは自動的に、finallyで必ずDispose()を呼び出すtry...finallyを作成するだけ。ただし、メンバ等にはusingが使えない。。。⇒Disposeパターン Dispose()の必須事項 安全に複数回呼び出し可能であること インスタンスが保持しているリソース(OSや外…

【C#】環境系

環境変数の値を取得 var ret = System.Environment.GetEnvironmentVariable("環境変数名"); // 変数名があれば値、なければNULL 実行中のプログラムのexe/dllのパスを取得 var ret = System.Reflection.Assembly.GetExecutingAssembly(); // 実行中のアセン…

【C#】ファイル系

存在チェック System.IO.File.Exists("パス"); // Trueならファイルが存在 System.IO.Directory.Exists("パス"); // Trueならディレクトリが存在 パスがローカルか var uri = new System.Uri("パス"); uri.IsLoopback; // Trueならローカル ループバック 送…

DLLハイジャッキング

DLLハイジャッキング マルウェアが不正DLLを読み込ませることによって正規プロセスに不正な動作を実行させる。 例)署名のない不正なDLLを読み込んで、不審な外部ドメインへの通信を試みる。 多くのDLLハイジャッキングの手口は、OSやアプリケーションの脆弱…

Windowsのレジストリ

レジストリとは Windowsやソフトウェアの情報が保存されている、key-valueから成るwindowsパソコン内の階層型データベース。本来はユーザ側が何もしなくても勝手に設定の変更・削除・更新が行われる。情報は、データに付けられた「名前」、数値や文字列など…