C#

C#で配列(バイト配列)のコピー

C#

System.Array.Copyを使う ネタ元 http://dalmore.blog7.fc2.com/blog-entry-57.html

C#でバイト型配列を文字列に変換する

C#

//バイト型配列"bytesData"に文字列データが入っているものとする string str; //Shift JISとして文字列に変換 str = System.Text.Encoding.GetEncoding(932).GetString(bytesData); //JISとして変換 str = System.Text.Encoding.GetEncoding(50220).GetStri…

C#でstring(文字列)からバイト型配列 byte[] (バイナリ) に変換する

C#

private void button1_Click(object sender, EventArgs e) { string text = "文字列"; //ASCII エンコード byte[] data = System.Text.Encoding.ASCII.GetBytes(text); //データがShift-JISの場合 //byte[] data = System.Text.Encoding.GetEncoding("shift_…

C#で文字列から一行ずつ読み込む

C#

String InputTxt = "..."; System.IO.StringReader rs = new System.IO.StringReader(InputTxt); //StreamReaderを使うと次のようになる //System.IO.MemoryStream ms = new System.IO.MemoryStream // (System.Text.Encoding.UTF8.GetBytes(InputTxt)); //S…

C#でDataContractを使えるようにする

C#

プロジェクト右クリック>追加>参照から アセンブリ>フレームワークより「System.Runtime.Serialization」にチェックでOK ネタ元 https://garafu.blogspot.jp/2013/11/aspnet-web-api-datacontract.html

VB.NET/C#でガベージ・コレクタを明示的に動作させる

C#

VB.net Imports System ... System.GC.Collect()C# using System; ... GC.Collect(); ネタ元 http://www.atmarkit.co.jp/fdotnet/dotnettips/021gc/gc.html

WebSocket周りの情報収集

C#

メモClientWebSocket クラスは.NET4.5以降じゃないと使えない https://msdn.microsoft.com/ja-jp/library/system.net.websockets.clientwebsocket(v=vs.110).aspx http://kimux.net/?cat=3 http://kimux.net/?p=929 http://www.atmarkit.co.jp/ait/articles/…

C#のアクセス修飾子と継承

C#

自分自身のアセンブリ内部のクラスからのみ見える ってのが意味がわからない アクセス修飾子 ・private 同一クラス内のみ ・public どこからでも ・protected 派生クラスから ・internal 自分自身のアセンブリ内部のクラスからのみ見える ->internalはデフォ…

C#でスレッドをAbort()はあかん

C#

スレッドの強制終了は、危険です。 予期しない状態で終了することにより、データ破壊等の障害が発生する可能性があります。 ネタ元 https://ja.stackoverflow.com/questions/5743/%E3%83%9E%E3%83%AB%E3%83%81%E3%82%B9%E3%83%AC%E3%83%83%E3%83%89%E3%81%A7…

C#のロックの処理速度比較

C#

Interlocked > lock > SemaphoreSlim > Semaphore の順に早いようです。ちなみに lock ステートメントのなかでロックされるのは、lock に指定したオブジェクトのみ なので注意。ネタ元 http://qiita.com/tadokoro/items/28b3623a5ec58517d431 http://d.haten…

Visual C# を使用してスレッドを作成する方法

C#

using System.Threading; ... private void ThreadTask() { ...処理 } ... // タスク起動 Thread trd = new Thread(new ThreadStart(this.ThreadTask)); trd.IsBackground = true; trd.Start(); ネタ元 https://support.microsoft.com/ja-jp/help/815804/how…

coincheckのAPIをC#から実行サンプル

C#

たすかるー https://kokenji.net/coincheck-api/

C#の排他 lockとMutex

C#

Mutex アンマネージドコード (Win32ラッパー) である。 マルチスレッドだけでなく、マルチプロセスでも排他出来る C#(.Net Framework)以外の言語でも考え方を流用出来る。 lock マネージドコードである。 マルチプロセスの排他は出来ない。 C#(.Net Framwork…

C#でReDim

C#

Array.Resize 使う //要素数5の配列 int[] intArray = { 0, 1, 2, 3, 4 }; //要素数を10に増やす Array.Resize(ref intArray, 10);ネタ元 http://dobon.net/vb/dotnet/vb2cs/redimpreserve.html

C#でmemset

C#

Array.Clear使う // StaticのArrayクラスを使います。 using System; // num1配列に適当な初期値を入れる。 int[] num1 = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; // num1配列をゼロクリアする。 Array.Clear( num1, 0, 9 ); // 配列名 インデックス 個数 ネタ元 ht…

C#でREST通信時、BODYにデータを入れる方法

C#

GetRequestStream()を使う HttpWebRequest HttpWReq = (HttpWebRequest)WebRequest.Create("http:\\domain.com\page.asp"); ASCIIEncoding encoding=new ASCIIEncoding(); string stringData = ""; //place body here byte[] data = encoding.GetBytes(strin…

文字列をBase64でエンコード/デコードする

C#

こんなクラスを用意して public class MyBase64str { private Encoding enc; public MyBase64str(string encStr) { enc = Encoding.GetEncoding(encStr); } public string Encode(string str) { return Convert.ToBase64String(enc.GetBytes(str)); } public…

C#で一番簡単にRESTでデータ取得する方法

C#

リクエストURLがこんなんで http://example.com/app/search?type=json&q=JSONで結果が返ってくるとします。 System.Net.HttpWebRequest req = (System.Net.HttpWebRequest)WebRequest.Create("http://example.com/app/search?type=json&q="); req.Headers.Ad…

C#で数値の桁数を求める方法

C#

色んなパターンがあるが、最速はテーブルを使った方法、最も遅いのは文字列化。 こちらはテーブル使った方法 using System; class Sample { static readonly int[] digits = {0, 9, 99, 999, 9999, 99999, 999999, /*9999999, 99999999, ... */}; static voi…

VB.NETとC#でデバッグビルド時のみ通るコードを書く

VB.NET #If DEBUG Then Console.WriteLine("デバッグバージョンです。") #End IfC# #if DEBUG Console.WriteLine("デバッグバージョンです。"); #endifネタ元 http://dobon.net/vb/dotnet/programing/define.html

C#でメモリマップドファイル

C#

string文字列を扱う場合usingを使うと最後にDisposeしてくれる。 初期化 mmf = System.IO.MemoryMappedFiles.MemoryMappedFile.CreateNew("abc", 1024);書き込み using (var stream = mmf.CreateViewStream()) using (System.IO.StreamWriter sw = new Syste…

ファイル追記

C#

System.IO.StreamWriter writer = null; // Shift-JISのテキストファイルを作成します。 // 第2パラメータは既存ファイルが存在する場合の振る舞いを示します。 // false:上書き、true:追記 writer = new System.IO.StreamWriter( @"c:\hello.txt", true,…

文字列からDateTime型に変換

C#

DateTime datetime_parse = DateTime.Parse("2015/4/5 22:42"); ネタ元 http://pk-brothers.com/1688/

C#でperlのtime関数と同じ1970/1/1からの秒数を取得

C#

DateTime dt_start = new DateTime(1970, 1, 1, 0, 0, 0); DateTime dt_now = DateTime.Now; long perl_time = (long)(dt_now - dt_start).TotalSeconds;

.NETライブラリ CsvHelper

C#

NuGetパッケージマネージャーからインストールできるCSVアクセス用ライブラリ。手作りするよりいいかと思って利用してみたけど、なんやと手間取った・・・。 マニュアル(英語) http://joshclose.github.io/CsvHelper/#getting-started とりあえずサンプル読…

.NETでメール受信ライブラリ「OpenPop.NET」

C#

VisualStudioのツール>NuGetパッケージマネージャからインストールできるサンプルやドキュメントは http://hpop.sourceforge.net/ へ。 ただメール受信して本文表示サンプル using OpenPop.Pop3; ...{ Pop3Client client = new Pop3Client(); client.Connect…

.NETでJSONを扱える超軽量ライブラリ「DynamicJson」

C#

NuGetでインストールできるよネタ元 http://yuuxxxx.hatenablog.com/entry/2014/01/13/231500

C#でWebSocktを使う

C#

もともとHTML5の規格の一部だったのが独立したものらしい。 標準のライブラリはないので、なにか別なとこから持ってこないといけない。NuGetを使って「WebSocket4Net」というのを使ってみた。いい感じ ネタ元 http://kimux.lolipop.jp/?cat=3 そもそもWebSoc…

C#でstrtokの代わりはSplit

C#

String Key = "12@34@56@78"; //戻り値には、空の文字列を含む配列要素が格納されます。 String[] split = info.Key.Split(new string[] { "@" }, StringSplitOptions.None); MsgBox(split[0]); // "12" MsgBox(split[1]); // "34" MsgBox(split[2]); // "56…

正規表現である文字で挟まれた、部分文字列を取得する方法

using System.Text.RegularExpressions; してRegexを使う using System; using System.Net; using System.Text.RegularExpressions; class RegexMatch { static void Main() { string anchor = "<a href=\"(?<url>.*?)\".*?>(?<text>.*?)</a>"; // @ITのトップページを取得 WebClient w…

C++から.NET(C#)のDLLに文字列を含む構造体を渡して書き込んでもらう方法

[.net][CPP][C#]C++側 typedef struct _StrData{ INT32 num0; INT32 num1; INT32 num2; INT32 num3; INT32 num3; char moji0[5]; // 4文字 char moji1[2]; // 1文字 StrData(){ num0 = num1 = num2 = num3 = num4 = 0; memset(moji0,0,5); memset(moji1,0,2)…

マネージドDLLの作成と呼び出す手順

■呼び出すDll(クラスライブラリ) ファイル名 ClassLibrary1.dllVB.netで作成した場合------------------------------- 新しいプロジェクトにてクラス ライブラリ を選択 プロジェクト名 ClassLibrary1 Public Class Class1 Dim i As Int32 Public Sub setI…

構造体を明示的に定義する

C#

[C#][StructLayout(LayoutKind.Explicit)]で 全てのメンバ変数に対して明示的に位置を指定となる。 [StructLayout(LayoutKind.Explicit)] unsafe struct ImageData { [FieldOffset(0)] public int Width; [FieldOffset(4)] public int Height; [FieldOffset…

C#で作成したDLLをExcelVBAで利用するにはregsvr32じゃなくてRegAsm.exeを使う

.NET で作成した COM 対応コンポーネントのレジストリ登録には regasm.exe を利用する。 regasm.exe /codebase XXX.DLL regasm.exeにはパスが通ってないので、 C:\Windows\Microsoft.NET\Framework\v4.0.30319\regasm.exeとかで。ちなみにcodebaseというのは…

MessageBox.Show()を使うには参照設定でSystem.Windows.Formsを追加してからusing

C#

[C#] using System.Windows.Forms;っていれてもエラーになるときは参照設定不足。 ソリューションエクスプローラにある「参照設定」を右クリックして「参照の追加」を選択し、「参照の追加」ウインドウを表示 「.NET」タブのコンポーネント名「System.Window…

C#のプロジェクトのプラットフォームを変更したいのにAny CPU以外指定できなかったら構成マネージャで新規追加する

C#

[C#]x64とかx86とかネタ元 http://msdn.microsoft.com/ja-jp/library/ms185328(v=vs.90).aspx

C#で作ったDLLのAPIにC++から構造体のポインタを渡して、結果を書き込んでもらう

[CPP][C#]これで正解なのかわからないが、とりあえずできたのでメモ。C#の方はunsafeを有効にしておく。 C#側 [DllImport("kernel32.dll")] static extern unsafe void CopyMemory(void* dst, void* src, int size); // 受け渡し用構造体(32bit前提) [Struct…

不要なusing宣言を整理

C#

[C#]VisualStudioのメニューから[編集]->[IntelliSense]->[usingの整理]->[未使用のusingの削除・整理]ネタ元 http://d.hatena.ne.jp/jonki/20120527/1338094280

C#で作成したクラスライブラリ(DLL)をMFCで利用する

[C#][VC][MFC]消えると困るのでコピペ MFC/C# – C#で作成したクラスライブラリをMFCで利用する 基本 COMを利用してMFCからC#のクラスを利用する C#側 [準備] 1.プロジェクトプロパティ>ビルド 「COM相互運用機能の登録」にチェックを入れる ※自分でregasmを…

System.Jsonを使えるようにする

C#

[C#]あるサンプルソースに using System.Json;とあったので使いたかったのだが、silverlightがどうたらこうたら・・・。nuget検索したらSystem.Json (Beta) 4.0.20126.16343というのがあったので Visual Studioの(メニューバーの)[ツール]メニューに[Li…

RestSharpを使えるようにする

C#

[C#]RestSharpというのは「Simple REST and HTTP API Client」だそうで、RESTというプロトコルで通信するコード書くときに使うらしい。 .NET向けのパッケージ・マネージャnugetというのを経由してインストールするnugetのインストール方法は色々あるらしいけ…

C#で作成したクラスライブラリをMFCで利用する

[C#][MFC]これからやってみるのでメモ。うーん、COMとして利用するのか… なんか気持ち悪いけど仕方ないのかな MFC/C# - C#で作成したクラスライブラリをMFCで利用する ネタ元 http://d.hatena.ne.jp/nutzlos/20110623/1308829150 DLLには下記2種類があるら…

Microsoft .NET Framework 3.5 再頒布可能パッケージ

C#

会社のみんなでネット越しにインストールさせると、すごーく重いので、再配布可能パッケージをLAN内に置きます。http://www.microsoft.com/japan/msdn/net/cc160716.aspx?rss_fdn=MSDNTopNewInfo

shit,alt,Controlキーが押されたことを知る

C#

KeyDownイベントなどでこんな感じに if( (e.Modifiers & Keys.Shift) == Keys.Shift ){ return; } if ((e.Modifiers & Keys.Alt) == Keys.Alt) { return; } if ((e.Modifiers & Keys.Control) == Keys.Control) { return; } ネタ元

C#でSleep

C#

//一秒間(1000ミリ秒)停止する System.Threading.Thread.Sleep(1000); 参考 独習C#第3版 http://dobon.net/vb/dotnet/process/sleep.html

C#でstrtokする

C#

この例だとスペースとハイフンで分割している string mes = "hello world"; string split = mes.Split(new Char { ' ', '-' }); foreach (string s in split) { if (s.Trim() != "") { Console.WriteLine(s); } } ネタ元

C#からOpenCV

以下参照 .NETからOpenCVを使う方法C#から顔検出いじれるかなーとおもったらcvHaarDetectObjects()がラップされてなかったので、無理でした。http://www.cs.ru.ac.za/research/groups/sharpercv/dl.htmlにあるソースを自分でいじらないとだめかな。

マウスポインタ(カーソル)を砂時計にする

C#

//待機状態 Cursor.Current = Cursors.WaitCursor; //元に戻す Cursor.Current = Cursors.Default; 他にも方法あります。ネタ元

正規表現を使って文字列を検索する

C#

http://dobon.net/vb/dotnet/string/regexmatch.html

あるコントロールにフォーカスが当たっているか判定

C#

.Focused == true