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

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

C#

【C#】消えたクリップボード

VisualStudio2017を2019に更新して軽いプログラムを作ろうとしたらクリップボードクラスが見つかりません。 おっと参照マネージャーでPresentationCoreDLLを追加しないとダメだったな あれっ、参照がないぞ?こういう感じで表示されてるはずなのに というか…

【C#】数字文字列を総和する

LINQのSumを使いたかっただけ。 using System; using System.Linq; static void Main(string[] args) { string numStr = "1234567890123456789"; int sum = numStr.Sum(s => s - '0'); Console.WriteLine(sum);//90 }

【C#】自分がリツイートしたツイートをリンク付きでHTML出力するアプリとコード

RTしたツイートだけ確認したいなぁと思ったら検索クエリにないので自作。 DLはこちら 使い方 1.ツイッターの全ツイート履歴をダウンロードしてください Twitter、「全ツイート履歴」をダウンロードできる機能、日本でも提供開始 -INTERNET Watch Watch …

【C#】return式1行だけしかないメソッドの省略記法

C#

1行しかない関数に{}使うのはなんかヤダ。 //掛け算 static int Multiply(int x, int y) { return x * y; } expression-bodied関数を使おう。 C#6.0から導入されたらしい。 ufcpp.net static int Multiply(int x, int y) => x * y; こうなる。1行でスッキ…

【C#】怪盗paizaからの挑戦状の解答

paiza.jp 解答のせていいとのことなので。 最短経路じゃないです。 なんか有名なアルゴリズムとか使うのかな? Tupleが使えて満足。 using System; using System.Collections.Generic; class Program { static void Main(string[] args) { var line = Consol…

【C#】fizzbuzz

C#

using System; class Program { public static void Main() { for (int i = 1; i < 100; i++) { if (i % 3 == 0 && i % 5 == 0) { Console.WriteLine("fizzbuzz"); } else if (i % 3 == 0) { Console.WriteLine("fizz"); } else if (i % 5 == 0) { Console.W…

【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://monoboshi.web.fc2.com/DandDZipExtractor.zip・使い方 このプログラムにzipファイルをD&Dするとそのファイルのある場所に解凍します。 複数D&Dもできます。 同名…

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

1年ぐらい前に作ったやつを手直し。DLは以下のリンクを右クリック保存してください。 http://monoboshi.web.fc2.com/utoScreenShot.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の値に参照型を使うときは注意。