コガネブログ

平日更新を目標にUnityやC#、Visual Studioなどのゲーム開発アレコレを書いていきます

【C#】クリップボードの文字列に含まれるタブを Alt + F5 でスペースに変換できるツール「TabToSpace」を GitHub に公開しました

概要 クリップボードの文字列に含まれるタブを Alt + F5 でスペースに変換できるツール「TabToSpace」を GitHub に公開しました https://github.com/baba-s/tab-to-space/blob/master/TabToSpace.zip?raw=true 上記の URL からダウンロードした ZIP ファイル…

【C#】指定された文字列に含まれるタブをスペースに変換する関数

C#

ソースコード using System.Text; public static class TabToSpaceConvertor { private static int GetNearestTabStop( int currentPosition, int tabLength ) { if ( currentPosition % tabLength == 1 ) { currentPosition += tabLength; } else { for ( i…

【C#】指定されたフォルダ内の中身を削除する方法

C#

概要 var target = new DirectoryInfo( path ); foreach ( var file in target.GetFiles() ) { file.Delete(); } foreach ( var dir in target.GetDirectories() ) { dir.Delete( true ); } 参考サイト様

【C#】BinaryReader でファイルの末尾に到達したかどうか確認する方法

C#

概要 var reader = new BinaryReader( stream ); var baseStream = reader.BaseStream; while ( baseStream.Position != baseStream.Length ) { var result = reader.ReadByte(); } 上記のようなコードを記述する 参考サイト様

【C#】浮動小数点以下の数値が存在する場合 true を返す拡張メソッド

C#

ソースコード public static class FloatExt { public static bool IsExistAfterDecimalPoint( this float self ) { return self % 1 != 0; } } 使い方 Debug.Log( 1f.IsExistAfterDecimalPoint() ); // False Debug.Log( 1.23f.IsExistAfterDecimalPoint() …

【C#】float 型から浮動小数点以下の数値を取得する拡張メソッド

C#

ソースコード public static class FloatExt { public static float GetAfterDecimalPoint( this float self ) { return self % 1; } } 使い方 Debug.Log( 1f.GetAfterDecimalPoint() ); // 1 Debug.Log( 1.23f.GetAfterDecimalPoint() ); // 0.23 関連記事

【C#】複数行の文字列から空白行またはスペースとタブのみの行を削除する方法

C#

ソースコード using System.Text.RegularExpressions; ... text = Regex.Replace ( text, "^[ \t]*[\r\n]+", string.Empty, RegexOptions.Multiline ); 参考サイト様 http://sakura-editor.sourceforge.net/cgi-bin/cyclamen/cyclamen.cgi?ol=200212&tree=c2…

【C#】複数行の文字列から空白行を削除する方法

C#

ソースコード using System.Text.RegularExpressions; ... text = Regex.Replace ( text, "^[\r\n]+", string.Empty, RegexOptions.Multiline ); 参考サイト様 http://sakura-editor.sourceforge.net/cgi-bin/cyclamen/cyclamen.cgi?ol=200212&tree=c2615 関…

【C#】CSV の読み書きができる「CsvHelper」紹介

はじめに http://joshclose.github.io/CsvHelper/ 「CsvHelper」をプロジェクトに追加することで CSV の読み書きができるようになります インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージ…

【C#】JSON を整形する関数

C#

はじめに 上記のページで公開されている Json.ToReadable 関数を使用することで、 JSON を整形することができます ソースコード(引用) 使用例 {"foo":111,"bar":222} 例えばこのような JSON を整形したい場合、 var json = @"{""foo"":111,""bar"":222}"; …

【C#】パフォーマンスに優れた列挙型を使用できる「Enums.NET」紹介

はじめに 「Enums.NET」をプロジェクトに追加することで パフォーマンスに優れた列挙型を使用できるようになります インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」を選択します …

【C#】IOException: Sharing violation on path XXXX

エラー内容 IOException: Sharing violation on path XXXX System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) (at /Users/builduser/builds…

【C#】LINQ で使用できる拡張メソッドが増える「Linq.Extras」紹介

はじめに 「Linq.Extras」をプロジェクトに追加することで LINQ で使用できる拡張メソッドが増えます インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」を選択します 「参照」タブ…

【C#】LINQ を使用して Excel からデータを抽出できる「LinqToExcel」紹介

はじめに 「LinqToExcel」をプロジェクトに追加することで LINQ を使用して Excel からデータを抽出できるようになります インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」を選択…

【C#】LINQ で使用できる検索用の拡張メソッドが増える「SearchExtensions」紹介

はじめに 「SearchExtensions」をプロジェクトに追加することで LINQ で使用できる検索用の拡張メソッドが増えます インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」を選択します …

【C#】DateTime で使用できる拡張メソッドが増える「Exceptionless.DateTimeExtensions」紹介

はじめに 「Exceptionless.DateTimeExtensions」をプロジェクトに追加することで DateTime で使用できる拡張メソッドが増えます インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」…

【C#】string で使用できる拡張メソッドが増える「String.Extensions」紹介

はじめに 「String.Extensions」をプロジェクトに追加することで string で使用できる拡張メソッドが増えます インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」を選択します 「参…

【C#】LINQ で使用できる拡張メソッドが増える「ExtraLINQ」紹介

はじめに 「ExtraLINQ」をプロジェクトに追加することで LINQ で使用できる拡張メソッドが増えます インストール Visual Studio メニューの「ツール>NuGet パッケージ マネージャー> ソリューションの NuGet パッケージの管理」を選択します 「参照」タブを…

【C#】フォルダが空かどうか調べる関数

C#

ソースコード using System.IO; public static class DirectoryUtils { public static bool IsEmptyDirectory( string path ) { if ( !Directory.Exists( path ) ) return false; try { var entries = Directory.GetFileSystemEntries( path ); return entri…

【C#】シーケンスを指定された要素数で分割する拡張メソッド

ソースコード using System.Collections.Generic; using System.Linq; public static class IEnumerableExt { public static IEnumerable<IEnumerable<T>> Chunks<T> ( this IEnumerable<T> self, int size ) { while ( self.Any() ) { yield return self.Take( size ); self = se</t></t></ienumerable<t>…

【C#】List のサイズを設定できる拡張メソッド

ソースコード using System; using System.Collections.Generic; /// <summary> /// List 型の拡張メソッドを管理するクラス /// </summary> public static class ListExtensions { /// <summary> /// サイズを設定します /// </summary> public static void SetSize<T>( this List<T> self, int size ) {</t></t>…

【C#】C# で使用できる拡張メソッドが豊富にまとめられている「EXTENSIONMETHOD.NET」紹介

概要 http://www.extensionmethod.net/ 上記の「EXTENSIONMETHOD.NET」では C# で使用できる拡張メソッドが豊富にまとめられています

【C#】1つ上の階層のフォルダ(ディレクトリ)のパスを取得する方法

C#

ソースコード var path1 = @"C:\Hoge\Fuga"; var path2 = path1.Substring( 0, path1.LastIndexOf( @"\" ) + 1 ); Console.WriteLine( path2 ); // C:\Hoge\

【C#】指定したパスがファイルかフォルダ(ディレクトリ)かを確認する方法

C#

ソースコード using System.IO; ... var path = @"C:\Temp"; var isDirectory = File .GetAttributes( path ) .HasFlag( FileAttributes.Directory ) ; Console.WriteLine( isDirectory ? "フォルダです" : "ファイルです" );

【C#】Dictionary に指定したキーや値が存在するかどうか確認する方法、値を取得する方法

C#

ソースコード using System; using System.Collections.Generic; public static class Program { private static void Main() { var table = new Dictionary<int, string> { { 1 , "フシギダネ" }, { 2 , "フシギソウ" }, { 3 , "フシギバナ" }, { 4 , "ヒトカゲ" }, { 5 </int,>…

【C#】フォルダ(ディレクトリ)の作成、移動、削除、存在するかどうかの確認を行う方法

C#

ソースコード using System.IO; // この一行をソースコードの先頭に記述する public static class Program { private static void Main() { // フォルダを作成(絶対パスで指定) Directory.CreateDirectory( @"D:/temp" ); // フォルダを作成(相対パスで指…

【C#】コンソールアプリケーションでタスクバーのアイコンを点滅させてみる

C#

ソースコード using System; using System.Runtime.InteropServices; using System.Text; public static class Program { private delegate bool EnumWindowsDelegate( IntPtr hWnd, IntPtr lparam ); [DllImport( "user32.dll" )] static extern Int32 Flas…

【C#】Windows でトースト通知を送ることができる「console-toast-8」紹介

はじめに 「console-toast-8」を使用すると、 Windows でトースト通知を送ることができます 使用例 "console-toast-8.exe" ^ --template "ToastText02" ^ --title "title" ^ --line1 "message1" ^ --line2 "message2" ^ --app_id "app id" オプション 内容 …

【Unity】専門学生からゲーム会社に就職して Unity エンジニアとして働くまでに読んだオススメの C# の本を7冊紹介

はじめに 僕は2009年に専門学校に入学して、2013年にゲーム会社に就職しました そして、2017年の現在まで、主に Unity エンジニアとしてゲームを開発しています 今回はその中で、読んで良かったと思った C# の本を7冊紹介しようと思います 僕がはじめて C# …

【C#】XmlNodeList で LINQ の「Select」「Where」「First」「FirstOrDefault」を使用できるようにする拡張メソッド

ソースコード using System; using System.Collections.Generic; using System.Xml; public static class XmlExt { public static IEnumerable<T> Select<T> ( this XmlNodeList self, Func<XmlNode, T> selector ) { foreach ( XmlNode n in self ) { yield return selector( </xmlnode,></t></t>…