C# Encoding/Byte/Stream/IO メモ

覚えてられない内容。少しずつまとめる。

Encoding

・メソッド
System.Text.Encoding.GetEncoding(“utf-8”)

・静的プロパティ
System.Text.Encoding.UTF8

・コンストラクタ
new System.Text.UTF8Encoding(false)
ASCIIとUnicodeは、Encodingクラスから派生した専用クラスがあり、falseにするとBOM無しにすることができる。

Byte

・String -> Byte[]
byte[] bytes = Encoding.UTF8.GetBytes(string);

・Byte[] -> String
string text = System.Text.Encoding.UTF8.GetString(bytes);

・Byte[] -> StreamReader -> String
var r = new System.IO.StreamReader(bytes, Encoding.UTF8);
r.ReadToEnd();

Stream/Reader/Writer

TextReader系

エンコード指定し、文字の入出力が基本。
TextReader系は、ReadToEndやReadLineが使える。
順次アクセスseekが使えない。

System.IO.StreamReader
System.IO.StreamWriter
System.IO.StringReader
System.IO.StringWriter

Stream系

バイトの入出力が基本。
基本seekできる。

System.IO.FileStream
System.IO.MemoryStream
System.IO.BufferedStream

TextReaderとStream

ファイルから文字を読むとき、FileStreamとStreamReaderがある。FileStreamはランダムアクセスでseekが使える。

Streamの型を受け付けるところではTextReaderは使えない。

・例(XmlSerializer -> MemoryStream -> Byte[] -> String)

ファイル/フォルダ

・フォルダ一覧
Directory.GetDirectories
Directory.EnumerateDirectories

・ファイル一覧
Directory.GetFiles
Directory.EnumerateFiles

・ファイル名
Path.GetFileName
Path.GetFileNameWithoutExtension

・ディレクトリ名
Path.GetDirectoryName

・ファイルの読み書き(Reader/Writerのラップ)
File.WriteAllLines
File.ReadAllLines
File.WriteAllText
File.ReadAllText

・存在確認
File.Exists
Directory.Exists

C# observer

通常パターン。

C# IObserverメモ

C# 仕入管理(仕入帳)業務用

業務に使えるソフトということで作成。

C# CD等一覧の一括リネーム

大量のリネームがあったのでamazon等からテキストデータを持ってきて利用した。

VBA フォルダの中にある全てのExcelを開く

指定したフォルダ内にある全てのエクセルファイルを開いて値を持ってくる。意外にこれに近い動作を要望されることは多い。

ただこの方法、ファイルが上手く開けなかったりとか気をつけなければいけないことが多いので、なるべく採用しないようにしている。

C# 即席学習タイマー

ソフトの起動で計測を開始、終了で停止するだけの単純なタイマー。自分のモチベーションアップ用。
時間のリセットはdat.xmlを削除。Cドライブなどで実行すると落ちる。
以前も似たようなソフトを作ろうとしていたが、面倒になったのでシンプルにした。

C# Excel操作②

この書き方だと落ちた時にプロセスが残る。

C# デスクトップに検索ボックス

昔、デスクトップに検索ボックスを表示するアプリがあった気がして、同じようなものを作りはじめてみたが、どうも使わなそうなので中止。

C# 承認テストプログラム

承認処理。ハッシュを使って見たけれど実用的ではなさそう。

Main.cs

UserPassword.cs

UserStrings.cs

PathSplit.cs