developer's diary

最近はc#のエントリが多いです

2020-08-01から1ヶ月間の記事一覧

C# (dotnetcore) ディレクトリを指定してZIPファイルを解凍

前回の記事 mitsugeek.net 今回は解凍 前回の記事で圧縮したZIPファイルを解凍します。 今回も、System.IO.Compression を使います。 docs.microsoft.com ソースを記述 using System; namespace ZipArchiveExample { class Program { static void Main(strin…

C# (dotnetcore) ディレクトリを指定してZIPファイルを作成

System.IO.Compression を使います。 docs.microsoft.com 早速やっていきましょう。 テスト用のフォルダ・ファイルを作る mkdirコマンドでディレクトリを作成 mkdir /tmp/test/日本語フォルダ mkdir /tmp/test/日本語フォルダ/test mkdir /tmp/test/日本…

C# (dotnetcore)で標準出力を利用して進行中のスピナーを作る (5)

前回の記事 mitsugeek.net 課題 Consoleへの操作部分のテストをどうするか。 一つの解決策 Console.SetOutを利用して、Console.Outの出力先を変えてしまう。 [Fact] public void ConsoleTest() { var output = new System.IO.StringWriter(); Console.SetOut…

C# (dotnetcore) yield returnイテレーターは使った方が良いのか?

Mac Book Prodの dotnetcore3.1 で確認しました。 結論 結論からいうと、yield returnイテレーターを利用すると、メモリが節約され、若干時間が早くなった。 今回、指定したフォルダ配下のファイルを抽出する関数を、 Listと、IEnumerableでそれぞれ作成し、…

MacのGoogle chromeをコマンドラインから起動してみる。

なぜか一番アクセスの多い記事 なぜかこのエントリが当ブログで人気のようなので、Macでも同じことをやってみようと思った。 mitsugeek.net MacでChromeを起動する。 引数に、urlを指定すると指定したURLが起動する。 /Applications/Google\ Chrome.app/Cont…

C# (dotnetcore)で標準出力を利用して進行中のスピナーを作る (4)

前回の記事 mitsugeek.net 課題 (updateメソッドの分解(メソッドが長い)) updateメソッドが長い、コメントなしでロジックが16行。コメント等入れて36行。 そんなに長いメソッドではないが、メソッドの内容にいろいろな物が含まれているため、 分別する。 描…

C# (dotnetcore)で標準出力を利用して進行中のスピナーを作る (3)

前回の記事 mitsugeek.net 前回見つけた矛盾を修正する 前回見つけた矛盾、 Value設定後に、Maximum、Minimumに値を設定すると不整合になる可能性を潰す。 Maximumを設定した際に、Maximum < Valueの場合、ValueにMaximumを設定 Minimumを設定した際に、Mini…

C# (dotnetcore)で標準出力を利用して進行中のスピナーを作る (2)

前回の記事 mitsugeek.net 前回は、Minimumプロパティの実装まで実施しました。 Maximumプロパティの実装 ProgressBar.Maximum を参考に。 ひとまずは、Minimumと似たような実装で大丈夫そうです。 違いは既定値が100というところ。 private int maximum = 1…

C# (dotnetcore)で標準出力を利用して進行中のスピナーを作る (1)

どんなものか コンソールでくるくる回って、進捗りつ表示するアニメーションです。 スピナー gifアニメにしてみたんですが、少しわかりにくいですね・・・ youtubeにしてみた youtu.be 単純に出力するプログラム using System; namespace example_Spinner { …

C# (dotnetcore)で標準出力と標準エラー出力 (c#でもUNIX文化のパイプを利用したい)

プロセス間通信の一つである、パイプを利用する方法(標準入力)をC#で前回やりました。 mitsugeek.net 今回は、標準出力、標準エラー出力についてのエントリです。 標準出力 はい。Visual Studio 2019 for Macでコンソールアプリを新規作成した際の状態が、…

c# ( dotnetcore ) の OS確認をMac Book ProでやってみたらUnix 19.5.0.0って出た

プログラム作る using System; namespace example_OSVersion { class Program { static void Main(string[] args) { //OSの情報を表示する Console.WriteLine(System.Environment.OSVersion.ToString()); } } } 実行する Unix 19.5.0.0 sw_versコマンドの結…

c# ( dotnetcore ) で 環境変数を書き込む は利用しない方が良い

前回の記事 前回の記事では環境変数を読み込む方法をエントリしました。 mitsugeek.net 今回は環境変数を書き込む方法をエントリなんですが、環境変数はOSに依存するため、利用しない方が良いようです。 そもそも環境変数はどのような時に使うのでしょうか?…

c# ( dotnetcore ) で 環境変数を読み込む

環境変数の読み込みに対して、特にNuGetでのパッケージのインストールは必要ありませんでした。 環境変数を読み込むプログラム using System; using System.Collections; namespace example_get_environment { class Program { static void Main(string[] ar…

c# ( dotnetcore ) で Microsoft.Extensions.Configuration.Iniを利用して iniファイルを読み込む

The Art of UNIX Programming (アスキードワンゴ)の第5章にある、「テキスト形式 :優れたプロトコルが優れた実践を生む」> 「5.2データファイルメタフォーマツト」>「5.2.6 WindowsINIフォーマット」(P.151)をC#でも読み込みたい。 MacではWin32APIは使え…

c# ( dotnetcore ) で OpenPop.NET を利用して、POP3(Post Office Protocol)を操作してgmailを受信してみる

The Art of UNIX Programming (アスキードワンゴ)の第5章にある、「テキスト形式 :優れたプロトコルが優れた実践を生む」> 「アプリケーションプロトコルの設計」>「ケーススタディ:POP3(Post Office Protocol)」(P.157)をC#でもやりたい。 c#のレッスンで…

C# (dotnetcore)で標準入力 (c#でもUNIX文化のパイプを利用したい)

The Art of UNIX Programming (アスキードワンゴ)にある、 Unixのインターフェイス設計のパターンのフィルタバターン(P.299)をC#でもやりたい。 c#のレッスンで、やり残した課題です。 標準入力を使おうとするとプログラムが止まってしまって困る。 どうやっ…