[windows] コマンドプロンプトでテキストファイルを比較

WinMerge のような比較ができる便利なフリーソフトがあったり、
バージョン管理などのツールで比較ができたりなどしますが、
そんな環境が無い場合など、稀に遭遇します。

そんなときのために、コマンドプロンプトで比較(diff)する方法をメモ。


使用するコマンドは "fc" です。


今回は以下の2ファイルを比較します。
# 3行目が異なります。

test1.txt
--------------
aaaaa
bbbbb
ccccc
ddddd
eeeee
--------------

test2.txt
--------------
aaaaa
bbbbb
zzzzz
ddddd
eeeee
--------------

コマンドプロンプト(diff)

オプションで "/n" を指定することで行数が表示されるため、
どこに差分があるかわかりやすくなります。


[OS X]macでもファンクションキーで半角英数字などに変換したい

Windowsでは、【F10】キーで半角英数字に変換や【F7】キーで全角カナ変換
などができるが、macでもこれと同じ操作にしたい。

なんと、キーボード設定でWindowsのようなキー操作に変更できるようだ。


mac キーボード設定画面


上記、赤枠のチェックをONにする。

これだけで、切り替わります。

ちなみに、キーボードのバックライトの明るさ調節などの
もともと設定されていた、機能については【fn】キーを押下しながら
ファンクションキー(【F10】など)で元々の機能を使えます。



[iOS]Tabを持つアプリケーションの作成("Single View Application"からと"Tabbed Application"から)

■Single View Application のテンプレートを選択した場合
[iPhoneアプリ開発] タブ表示 1

[Editoer]-[Embed In]-[Tab Bar Controller]を選択して、
TabBarを作成し、ViewVontrollerを追加して関連付けます。
[iPhoneアプリ開発] タブ表示 3


■Tabbed Application のテンプレートを選択した場合
[iPhoneアプリ開発] タブ表示 2


最初から、LabelやTextViewが含まれいます。
[iPhoneアプリ開発] タブ表示 4



それぞれで生成したモジュールをシミュレータで動かしてみたところ、操作感などに差異は見当たらなかった。
どっちの方法で作ってもよさそうだな。

ただし、「Tabbed Application」はテンプレートで自動で最初にLabelなどがセットされているので
削除する手間がかかるかな(たいしたことではないが・・・)。

[OS X] 複数人でPCを使ってて他の人がインストールしたアプリをアップデートしようとしたら・・・

”OS X Mountain Lion” のPCを他の人と共有して使用していて、
他の人がインストールしたアプリケーションをAppStoreでアップデートしようとしたら
以下のメッセージが表示され、インストールした人のAppleアカウントでないと
アップデートできないとのこと。

OS X 別ユーザ でアプリアップデートができない


最新版のアプリケーションが必要で試行錯誤した結果、
以下の方法で回避できた。

1.アプリケーションフォルダ内の該当アプリ(XXX.appファイル)をゴミ箱に入れる
2.AppStoreから新規インストールをする


これで、新規インストール時に自分のAppleIDでサインインができ、
最新版のインストールができました。


ちなみに、ゴミ箱に入れた「XXX.app」ファイルは、名前を変更してアプリケーションフォルダに戻せば、
バックアップとして旧バージョンを残しておけるみたいです。




[Excel] 先頭にIDを記載したCSVファイルを開くと

先頭行にIDを記載したExcelファイルを開くと、以下のような2つの警告ダイアログが表示される。

Excel警告1
'XXX.csv' のファイル形式と拡張子が一致しません。ファイルが破損しているか、安全でない可能性があります。
発行元が信頼できない場合は、このファイルを開かないでください。ファイルを開きますか?


Excel警告2
Excelは ''XXX.csv' がSYLKファイルであることを確認しましたが、読み込むことができません。ファイルにエラーが含まれるか、SYLKファイル形式でない可能性があります。異なるファイル形式でそのファイルを開くには、[OK]をクリックしてください。



回避策は、とりあえず先頭にIDを記載しないことしか見つからず。。。
ファイルIDを記載したり、DBをバックアップする際先頭がIDになってたりすることはよくあるだと思うので
ほかにも回避策はありそうだが、わからなかったのでとりあえず以下のどちらかとしちゃう。

①先頭にIDの記載をやめる
②Excelで開いたときの2つのダイアログ表示を制限とする
 #2回とも「OK」を選択すれば開けるし・・・



[Android] エミュレータが起動しない

Eclipseでアプリを修正して、動作確認のためにエミュレータ実行をしようとしたところ、
以下のエラーがコンソールに表示されて起動できなかった。

emulator: エラー: Unable to load VM from snapshot. The snapshot has been saved for a different hardware configuration.

調べてみたところ、

[ウインドウ]→[Android 仮想デバイス マネージャ]
で起動できないデバイスを選択して、編集をすると以下の編集ウインドウが表示される。



ここで、「スナップショット」にチェックが入っていたことが問題だったようだ。
チェックを外したところ、無事エミュレータは起動した。





[Android] DialogPreferenceのデフォルトのボタン押下時の処理を実装したい

DialogPreference の中を見ると、setPositiveButtonText() や setNegativeButtonText() といったボタンのラベルを指定するメソッドは用意されているようなのですが、setOnClickLisnerといったようなボタン押下時の処理を実装する部品が見当たりません。

そこで、DialogPreference を継承したクラスで自前で ClickListener を用意してみました。

public class CustomDialogPreference extends DialogPreference {

public static interface PositiveButtonListener {
public void onPositiveBtnClick();
}

private PositiveButtonListener mPositiveButtonListener = null;

/**
* コンストラクタ.
*/
public CustomDialogPreference(Context context, AttributeSet attrs) {
super(context, attrs);
}

/**
* コンストラクタ.
*/
public CustomDialogPreference(Context context, AttributeSet attrs,
int defStyle) {
super(context, attrs, defStyle);
}

/**
* POSITIVEボタン押下時のリスナーを設定する
*/
public void setPositiveButtonListener(PositiveButtonListener listener) {
mPositiveButtonListener = listener;
}

/**
* クリック時の処理
*/
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
// POSITIVEボタン押下の場合、setPositiveButtonListenerで実装した
// クリック時の処理を実行する
if (mPositiveButtonListener != null) {
mPositiveButtonListener.onPositiveBtnClick();
}
}
}

}


インタフェースを用意して、onClickで実装された処理を呼び出すだけで意外と単純な仕組みでできました。

上記インタフェースを実装して、セットする処理は以下のような感じです。

public class SamplePrefActivity extends PreferenceActivity {

@SuppressWarnings("deprecation")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.sample);

CustomDialogPreference edp = (CustomDialogPreference) findPreference("p_key");
edp.setPositiveButtonListener(new CustomDialogPreference.PositiveButtonListener() {

@Override
public void onPositiveBtnClick() {
Log.d("TEST", "onPositiveBtnClick !!");
}

});

}

}


POSITIVEボタンが押下されたときに、ちゃんとログが出力されました。



プロフィール

hiiro

Author:hiiro

最新記事
カテゴリ
月別アーカイブ
最新コメント
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
Counter