*

[C#]BlankClear テキストファイルから空白を削除ツール

公開日: : 最終更新日:2014/11/23 C#, どうでもいいツール

10分ぐらいで作ったツールって本当にすぐどこかに行ってしまいますよね。
あんなツール作ったけど、ええと、なんていう名前だっけ……みたいな感じで。
そんなわけで忘れないようにここに保管しております。
使用は自己責任でお願いします。

◆概要
テキストファイルを指定すると、そのテキストファイルから空白が削除されます。
ほんとにそれだけの機能。
エラーに対応しているようで対応していないかもしれません。
PDFなどの比較をするときに空白が邪魔だったので作りました。

◆仕様
.NET Framework 4.5以上
言語はC#
利用するファイルはUTF-8のみ(DoubleByteがなければSJISも大丈夫だとおもう)

◆使い方
同じフォルダにexeを配置して、コマンドラインでexeを実行して、
引数に編集したいファイルを入れるだけ。

◆実行コマンド

C:\Users\Wanabe\Desktop\tmp>BlankClear.exe test.txt

◆結果
[test.txt]

test    test   test


[test_output.txt]

testtesttest

◆ソース

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace BlankClear {
    enum Error{
			FileNotFound,
			TooManyFiles,
			AssignFileNothing,
			CouldNotOpenFile
		}
		
	// Error Helper
	static class EnumError{
		public static string DisplayName(this Error error){
			string[] names = {
				"ファイルが見つかりません",
				"ファイルの指定は1つまでです",
				"ファイルを一つ指定してください",
				"指定されたファイルを開く、または結果のファイルに書き込むことが出来ません",
			};
			return names[(int)error];
        }
    }

    class Program {

        // Example;[FileName]AddStr[Extention]
        const string AddStr = "_output";

        // Main
        static void Main(string[] args) {
            bool continueFlg = true; ;

            if (args.Length == 0) {
                continueFlg = false;
                Console.WriteLine(Error.AssignFileNothing.DisplayName());
            }
            else if (args.Length > 1) {
                continueFlg = false;
                Console.WriteLine(Error.TooManyFiles.DisplayName());
            }
            else if (!File.Exists(System.Environment.ExpandEnvironmentVariables(args[0]))) {
                continueFlg = false;
                Console.WriteLine(Error.FileNotFound.DisplayName());
            }

            if (continueFlg) {
                string inFilePath = System.Environment.ExpandEnvironmentVariables(args[0]);
                if (!inFilePath.Contains('\\')) {
                    inFilePath = Directory.GetCurrentDirectory() + '\\' + args[0];
                }

                using (StreamReader reader = new StreamReader(inFilePath))
                using (StreamWriter writer = new StreamWriter(Path.GetDirectoryName(inFilePath) + @"\" + Path.GetFileNameWithoutExtension(inFilePath) + AddStr + Path.GetExtension(inFilePath), false)) {
                    try {
                        string str = reader.ReadToEnd();

                        StringBuilder builder = new StringBuilder();
                        foreach (char c in str) {
                            if (c != ' ' && c != ' ') {
                                builder.Append(c);
                            }
                        }
                        reader.Close();
                        writer.Write(builder.ToString());
                        writer.Close();
                    }
                    catch (Exception) {
                        Console.WriteLine(Error.CouldNotOpenFile.DisplayName());
                    }
                }
            }
        }
    }
}

◆ソース解説
エラーメッセージはこうやって一箇所にまとめておくと編集しやすくなります。
あとから仕様変更あると大変ですのでね。

◆Download
BlankClear



◇AppStore無料ランキング1位獲得!!

ad

関連記事

unity move

[Unity]コードリファレンス GameObjectを移動する。

移動します。 transformプロパティ GameObjectのtransformプロパテ

記事を読む

wannabenote

[C#]ポートを使用しているプロセスを特定してAcivateするやつ

ポートからプロセスを特定してAcivateするやつ作りました。 https://github.

記事を読む

logo

[C#, Generic]UnityのAddComponentとかなんとかComponentを実装してみる

UnityのAddComponentってありますよね。 みたいなやつ。 このジェネリクスの

記事を読む

cwbx.dll 参照の追加

[C#,AS400]C#でAS400のプログラムCallとコマンドの実行方法。

PCのプログラムからCall AS400のRPGPGMをPCから呼び出ししたいときがあります。

記事を読む

unity debug

[Unity]MonoDevelopのデバッグの仕方

コメントで頂いた質問を打破するためにデバッグの仕方でも書いてみます。 まずは、プロジェクトを開

記事を読む

Wannabenote

[Unity]Unity2Dチュートリアル パズルを落下させる。

前回の続き。 とりあえず、パズルが消えたので、パズルを落としましょう。 以下のようにソースを

記事を読む

logo

[Unity]GameObject.Findは遅い

遅いらしいです。 なので、マネージャークラスを作りましょう、というのが風潮らしいです。 マネージ

記事を読む

wannabenote

[Excel, C#]C#でExcelの値の変更イベントを取得する。

Excelのイベント取得 処理の流れ 対象のワークシートを取得する。 イベントハンドラ

記事を読む

unity rotate worldpoint

[Unity]コードリファレンス GameObjectを回転する。

くるくる回します。 rotationプロパティ Objectの向きをワールド座標で指定します

記事を読む

addcomp

[Unity]コードリファレンス コンポーネントをアタッチする。

コンポーネントをプログラム実行時に追加します。 AddComponent() AddComp

記事を読む

ad

Message

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

ad

  •  Auther;わなび

     「オープン系得意だよね? 俺のPCの調子悪いんだけど」という無茶振りから解き放たれゲームエンジニアに。
    C#とかUnityを扱います。
    Twitterフォロー大歓迎です。
    githubアカウント→wannabenote
  • follow us in feedly
PAGE TOP ↑