読者です 読者をやめる 読者になる 読者になる

プログラミングとかブログ

Unity/C#/SRPGStudio/RPGツクールMVの情報とかその他気になったことを調べて書きます。

【C#】フォルダをD&Dすると全ファイルを今日の日付でバックアップする

C#

ポメラ買った→ファイルバックアップしたい→いちいちコピーするの面倒→プログラムでやろう using System; using System.IO; using System.Collections.Generic; using System.Linq; //フォルダをD&Dすると全ファイルを今日の日付でバックアップするプログラム…

【C#】行頭にスペースを突っ込むプログラム

行頭が「(かぎかっこ)以外の場合、行頭に全角スペースを挿入します。 小説書くときにいちいちスペース打つのが面倒なので作りました。・使い方 txtファイルをD&Dすると、スペース挿入後のtxtファイルをデスクトップに吐きます。ダウンロード・実行例 実行後 …

【C#】Marginをストーリーボードでアニメーション【UWP】

MarginをアニメーションするのはTicknessAnimationでできるっぽいですがUWPでは使えません。 ObjectAnimationUsingKeyFramesを使えばやや強引な気もしますができます。 下記コードでは30fpsで斜めに移動させてます。 //XAML

【C#】Marginをアニメーションさせる

ビハインドでMarginを一定間隔で毎回生成することで移動させます。 //XAML

【C#】ボタン等のイベントからバインドソースのメソッドが実行されるようにする方法【XAML】

MVVMはコードビハインド絶対殺すマンなので使いたくありません。 Commandでもいいんですが定義するのが面倒なのでビヘイビア使います。 EventTriggerBehaviorとCallMethodActionを使うと任意のイベントからViewModel(というかデータコンテキスト)のメソッ…

【C#】等差数列と等比数列を生成するメソッド

初項と公差・公比と項数を渡すと数列をListで返します。 class Model { /// <summary> /// 等差数列を生成するメソッド an = a1 + (n-1)d /// </summary> /// <param name="start">初項</param> /// <param name="difference">公差</param> /// <param name="maxGenerateNumber">項数n</param> /// <returns></returns> public List<int> GetArithmeticProgression(int …</int>

【C#】テキストボックスに入力中にデータバインディングを反映する【XAML】 

UpdateSourceTriggerにProportyChanged指定で入力中に反映できます。 <TextBox Text="{Binding Mode=TwoWay, Path=str, UpdateSourceTrigger=PropertyChanged }" /> <TextBlock Text="{Binding Mode=TwoWay, Path=str}" /> バインドしているのはstring型のプロパティです。 入力するとTextBlockにも同時に反映されます。</textblock></textbox>

【C#】【UWP】アニメーションができたりできなかったりする理由と解決方法

UWPアニメーションの区分概要 なんでもできるようにするには 余談 UWPアニメーションの区分概要 ストーリーボードに設定されたアニメーション (XAML) (Windows) Windowsランタイムアプリ(UWP)でのアニメーションには依存型と独立型があります。 これは重い…

【C#】数独を解くメソッド

シンプルな数独の解法を解説してみた(C言語) - Newt Net(ひよっこプログラマー日記)にあるやつをC#で書きました。 コード 結果 解説 コード /// 総当たり回答 public void BruteForce(int[] board, int pos, int[][] retBoard) { int emptyPos = 0; //現…

【C#】LINQで要素のインデックス(番号)を取得する

{0,0,1,0,1}からインデックス1以降で要素の値が0のインデックス(1と3)を取得します。 IEnumerable<int> hoge = new[] { 0, 0, 1, 0, 1 }; var indeces = hoge //要素とそのインデックスを匿名クラスのリストに射影 .Select((p, i) => new { Content = p, Index = </int>…

【C#】DotNetZipでZip解凍時の上書き例外への対処方法

DotNetZipライブラリのExtractメソッドは、解凍ファイルが解凍先に既に存在しているとデフォルトで以下のような例外を投げます。型 'Ionic.Zip.ZipException' のハンドルされていない例外が Ionic.Zip.dll で発生しました 追加情報:The file C:\Users\sauto\…

【C#】zipファイルをD&Dすると解凍するプログラム

右クリしたり中身いちいち確認したりがめんどいんで作りました。DLは以下のリンクから http://www.geocities.jp/whitepapersort/DandDZipExtractor.zip・使い方 このプログラムにzipファイルをD&Dするとそのファイルのある場所に解凍します。 複数D&Dもでき…

【C#】指定秒数でアクティブウィンドウのスクショを撮るプログラム

1年ぐらい前に作ったやつを手直し。DLは以下のリンクを右クリック保存してください。 http://www.geocities.jp/whitepapersort/AutoScreenShot.exe・使い方 本プログラムのショートカットを作ります。 そのショートカットのプロパティのリンク先の内容に半角…

【C#】DotNetZipライブラリのReadメソッドの文字コード指定方法

zipファイル読み込み時にDotNetZip(Ionic Zip Library)を使ってZIP書庫のリスト表示などを行う - DoboWikiを参考にしたんですが、Readメソッドの文字コード指定でエラーが出ました。 using (Ionic.Zip.ZipFile zip = Ionic.Zip.ZipFile.Read( zipPath, Sys…

【C#】zipファイル名をzip1階層目の最初のフォルダ・ファイル名に変更するプログラム

あらすじ プログラム 使い方 動作例 コード 解説 あらすじ DLsiteでダウンロードするとファイル名が番号 →いちいち変えるのがめんどくさい →中身の1階層目が大体作品名 →そこから取ってきてリネームしよう プログラム 以下のリンク先からダウンロードしてく…

【C#】m4aファイルのファイル名をプロパティのタイトル名に変更するプログラム

概略 プログラム 使い方 コード 解説 概略 レコチョクでダウンロードするとファイル名が番号 →いちいち変えるのがめんどくさい →タイトルを変更するプログラムを書こう プログラム プログラムは以下のリンク先を保存してください。 m4aTitleRenamer.exe 使い…

【C#】アクティブウィンドウのウィンドウ名を取得

C#

user32.dllのGetForegroundWindow()とGetWindowText()を使います。 class Program { [DllImport("user32.dll")] public static extern IntPtr GetForegroundWindow(); [DllImport("user32.dll", EntryPoint = "GetWindowText", CharSet = CharSet.Auto)] pub…

【C#】クソ長いクラス名を短くしたい

C#

ブログ書くときにクラス名が長いと折り返されることがあります。 短くするためにエイリアスを使うといいかもしれません。*1 まあ逆に分かりづらくなるかもですが。以下のコードではSortedictionaryクラスを別名(エイリアス)にしています。 using D = Syste…

【C#】フォルダを再帰的に探索して指定拡張子のファイルパスリストを作るメソッド

C#

LINQでやろうとしたけど挫折したので普通に再帰。 /// <summary> /// 指定フォルダ以下のすべてのフォルダを探索し、 /// 指定拡張子のファイル名をリストに順次追加していく /// </summary> /// <param name="folderPath">探索するフォルダ</param> /// <param name="list">ファイル名のリスト</param> /// <param name="extensions">検索する拡張子群</param> void FolderInsi…

【C#】型をメソッドに渡す

C#

渡すとはちょっと違うんですが、こんな感じにすると渡せます。 public T[] Hoge<T>(T a) { T[] arr = new T[5]; arr[0] = a; return arr; } こういうのをジェネリックといいます。 Listでおなじみのアレですね。メソッド名の後ろに<T>*1とつけるとジェネリックメソ</t></t>…

【C#】初期化された値型の2次元配列を作るメソッド

C#

概要 メソッド 使用例 参照型で初期化する場合 概要 var matrix = new int[9][]; for (int i = 0; i < 9; i++) matrix[i] = new int[9]; 配列の配列の初期化でいちいち↑みたいなのを書くのがうっとうしかったのでメソッド化しました。 矩形配列*1だとラクな…

【C#】全ONビット桁数を返すコード

C#

指定の数字に対してビットが立っている桁数のリストを返すメソッド。 /// <summary> /// 指定の数字の、ビットが立っている桁数を返す /// </summary> /// <param name="targetNum">調べる数字</param> /// <param name="maxDigit">調べる最大桁数</param> /// <returns>ONだった桁数のリスト</returns> List<int> GetOnBitList(int targetNum, int maxDigit) { var list </int>…

【C#】1つだけONのビットの桁数を返すコード

C#

(int)Math.Log(bit, 2) + 1; Powの逆関数ないかなと思ったらLogの存在を忘れてた件 例:10桁目のビットが立っている場合 bit=512;//1000000000 Console.WriteLine(Math.Log(bit, 2) + 1);//10

【C#】Enumerable.Repeatの誤解

C#

Enumerable.Repeatの値に参照型を使うときは注意。

【C#】クリップボードの内容でテキストファイルとフォルダ作るプログラム

ブログを書くときに一つのテキストで内容を書いてから完成した後にフォルダとファイル作ってコピペしています。 どうにも面倒なので表題のプログラムを作りました。 コピーした内容の1行目をタイトルにしたファイルとフォルダをデスクトップに作ります。 DL…

【C#】コンソールアプリからWPF起動して画像を表示する

前回の記事でフォームで画像表示するのがアレな気がしたのでWPFでやりました。参照にPresentationFrameworkとPresentationCoreとWindowsBaseを追加します。 MainメソッドにSTAThread属性を追加します。 using System; using System.Windows; using System.Wi…

【C#】コンソールアプリからフォームを起動して画像を表示する

C#

ブログ用のコードはコンソールアプリケーションで書いています。(コードが長くなるので) これだと画像表示に困るのでフォーム起動して画像を表示するコードを書きました。 画像はファイルから読み込んでいます。 void ImgFileDisplayByForm(string filePat…

【C#】アクセス拒否されないhttp通信のコードサンプル

http通信したら403エラー(Forbidden)が返ってきたのでどうにかしてみました。 using System; using System.Net.Http; class Program { static void Main(string[] args) { var uri = "http://i1.pixiv.net/img-original/img/2016/02/15/12/02/47/55302376_…

【C#】ネット上から画像のダウンロード

C#

HttpClientクラスのGetAsyncメソッドを使います。 はてなフォトライフの下記URLの画像を取ってきます。 http://f.st-hatena.com/images/fotolife/s/shirakamisauto/20160120/20160120232256.png using System; using System.Net.Http; using System.IO; name…

【C#】URLの最後を1行で取得する

C#

Console.WriteLine(url.Split('/')[url.Split('/').Length - 1]); なんかキモい。 LINQ版。 url.Split('/').Last(); using System.Linq;を追加しておくこと。こんな感じで使う。 string url = "https://pbs.twimg.com/media/CbJjbWlUMAABx6h.jpg"; Console.W…

【C#】1行で乱数生成するコード【random】

C#

Console.WriteLine(new Random().Next()); でも連続で処理するときは乱数にならないことがあるので注意 乱数シードがミリ秒なのでミリ秒以上の処理速度だと乱数が変わりません。 neue cc - C#とランダム 以下のように連続でやっても同じ値しか出ません。*1 C…

【C#】Tesseract.Net SDK使って文字読み取って認識する【OCR】

目次 準備 英語の読み取り 結果(上が読み取る画像、下が読み取った文字列) 日本語の読み取り 結果(上が読み取る画像、下が読み取った文字列) 準備 NugetからTesseract.Net SDKを取ってきます。 以下のusingディレクティブを追加します。 using Patagames…

C#超・初心者が知っておくべき10のエラー

C#

コピペ追記中心のC#超初心者がハマりそうなエラーを10個集めました。 目次(各エラー名は適当です) ;が足りないエラー }が足りないエラー 単品記述エラー 型違いエラー 未宣言使用・入力ミスエラー using参照無いエラー インデックスエラー static内で非sta…

【C#】ブクログの自分の棚ページをぶち込むと本一覧を書き出すコードを書いた

仕様が変わって文字だけ一覧表示がなくなったので怒りのスクレイピング。*1目次 コード 結果 解説 使い方 コード using System; using System.IO; using System.Collections.Generic; using System.Linq; using HtmlAgilityPack; namespace BookLogScraper {…

【C#】ニコニコのアニメ配信リストを取得して一覧を書き出すコードを書いた

ch.nicovideo.jp をいちいち見るのが面倒なので一覧取得することにしました。目次 コード 結果 解説 コード using System; using System.Collections.Generic; using System.Linq; using System.IO; using System.Net.Http; using HtmlAgilityPack; namespac…

【C#】今日の日付でファイルのバックアップをする方法

C#

メモ書きの日付ごとのバックアップが欲しくなったけど、Gitだのsvnだの使うほどでもないのでパパッと作ってみました。 using System; namespace ConsoleApplication2 { //今日の日付で特定ファイルをバックアップ class Program { static void Main(string[]…

Unityでよく出る警告CS0168 CS0414 CS0649の意味

Unityでよく出る(自分がよく出す)警告の意味を調べてみました。 まあUnityというかVisualStudioの警告なんですが、Unityだと英語で表示されるので、 パッと見わかりにくいんですよね。CS0168:変数未割り当て Assets/Test.cs(9,13): warning CS0168: The v…

DataGridTextColumnでコピー時エラーへの対処

C#

xamlでDataGridTextColumnを作って、セルを1回クリックして選択状態にし、Ctrl+Cでコピーすると、例外が発生して落ちました。 詳細は以下のような例外でした。 System.Runtime.InteropServices.COMException はハンドルされませんでした。 HResult=-2147221…

今月の経過した日にち・残りの日にちリストを1行で作成する

C#

・今月の経過した日にちの列挙 new List<int>(Enumerable.Range(1, DateTime.Today.Day)) ・今月の残りの日にちの列挙 new List<int>(Enumerable.Range(DateTime.Today.Day + 1, DateTime.DaysInMonth(DateTime.Today.Year, DateTime.Today.Month) - DateTime.Today.Da</int></int>…

VisualStudioでクラスがどこの名前空間にあるのか確かめる方法

C#

適当なサイトからコードをコピペしてきたときに、「型または名前空間名 'xxxx' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。」というエラーが出るときがあります。 クラス名(または名前空間)は合っていても、属す…

staticメソッド内でstaticでないメンバを参照できない理由

C#

11/10 間違っちゃいないけど正確でもなかったので書き直しMainメソッドなどstaticメソッド内でstaticでないメンバーを扱おうとすると以下のエラーが出ます。 「静的でないフィールド、メソッド、またはプロパティ 'xxxxxx' で、オブジェクト参照が必要です。…

C#でWebサイトにログインする方法

C#

前回の記事で書くといった某サイトへのログイン方法です。まずログインするための情報を探します。 記事を書いた時点でのログインページのフォーム部分のhtmlが以下になります。 inputタグの部分にログインに必要な情報があります。 <h2 class="title">pixivへログイン</h2>

HttpClientでhttps通信できるのだろうか?

System.Net.Http.HttpClient 接続のセキュリティを確保する方法 (C#/VB と XAML を使った Windows ストア アプリ) (Windows)を見ると、以下のようにhttpsのURIを指定するだけでOKのようです。簡単ですね。 await (new HttpClient()).GetAsync("https://www.c…

アクティブウインドウのスクリーンショットを周期的に撮るだけ

ストアアプリのスクショを撮ろうと思ったら ドスパラのwinタブレットで仕様でできなかったので、 どうにかすることにしました。以下コードです。 using System; using System.Windows.Forms; using System.Threading; namespace AutoScreenShot { class Prog…

warning CS0108 ○○ は継承メンバー ○○ を隠します。の意味

Unityで以下のような警告が出るときがあります。warning CS0108: ○○' は継承メンバー '○○' を隠します。意図的に隠す場合はキーワード new を使用してください。Assets/Scripts/InheritTestDerived.cs(16,21): warning CS0108: `InheritTestDerived.Reset()'…

Where(x => x)の意味

C#

Where(x => x)の意味:コレクション内の値のうちtrueのものを探すWhere内は条件文なので(x => x)だと(x => x == true)を意味します。そしてWhere(x => !x)は(x => x == false)を表します。以下のコードを見ると動きがわかると思います。using System;using S…