hakeの日記

Windows環境でプログラミングの勉強をしています。

program

C# - クラス - 変数と定数

クラスが持つ変数としては、静的(クラス)変数とインスタンス変数がある。 静的変数は、クラスで共通して一つ持ち、インスタンス変数はインスタンス毎に同名の変数を別に持つ。 静的変数は「クラス名.変数名」と書き、インスタンス変数は「インスタンス名.…

C# - コーディング規約

をみつけたのでリンク。C# のコーディング規則 (C# プログラミング ガイド) | Microsoft Docs

C# - 変数の型を取得

変数の型は、GetTypeメソッドで取得できる。 PowerShellと同じ。 varで宣言した変数の型をチェックするときに便利。 using System; // 変数の型を取得 class MyClass {} class MyMain { static void Main(string[] args) { int d = 123; double f = 456.789;…

C# - 文字列の書式指定(ToString)

数値をToStringメソッドで文字列化する場合の書式設定。 基本は前回と同じ、カスタム書式指定というのはExcelの表示形式の指定と似ています。(同じ?) ToStrirngメソッド自体は、オブジェクトを等価の文字列表現に変換する機能があり、供給されている各オ…

C# - 文字列の書式指定

引用符の左に@をつけた文字リテラルはエスケープ文字をそのまま出力する。またC#6以降では$を付けて文字列中の変数展開が可能みたいですが、今の実行環境ではエラーの為コメントにしてます。 文字列中への変数の埋め込みは{ }の中で書式を指定することで行う…

C# - csc.bat - 複数ファイルのコンパイル

前回のプログラムをクラス毎にファイル分割してコンパイルしてみる。 実行ファイル名は、Mainが存在する方のファイル名となる。 MyMain.cs using System; class MyMain { static void Main(string[] args) { MyClass.Method1(); MyClass mc = new MyClass();…

C# - 他クラスのメソッド実行

MyClassという、スタティックメソッドとインスタンスメソッドを持ったクラスを定義して、Mainから呼び出してみる。 using System; // 他クラスのメソッド実行 class MyClass { public static void Method1() { Console.WriteLine("MyClass:スタティックメソ…

C# - 基本形

C#の勉強。 現在、VisualStudioもVS Codeもインストールしていないので、以前の日記で作成したcsc.batでコマンドプロンプトからコンパイルを行う。 なのでWindows10環境での使用バージョンは、C# 5.0だと思われます。 c言語でいうところのmain関数が、C#では…

python - numpyの初歩

numpyの基本的な機能確認 python のバージョンは 3.6.4

EXCEL VBAメモ - ユーザーフォームを常に最前面にする(Excel2016)

2019/3/14追記 現時点のWindows10環境のExcel (Excel for Office365 64bit)で確認したところ、下記で述べている問題は発生しませんでした。Excel側で改善されたようですね。 背景 職場のPCは現在Windows7 Excel2010の環境で統一されていて、そこで以下のよ…

PowerShell - バッチファイル内に記述したスクリプトを実行する。

バッチファイル内にPowerShellスクリプトを記述して実行させる方法を知ったのでメモ。 この方法だとExecutionPolicyに関係なく実行できる様なので、普段PowerShellを使用していないPCでも実行可能になる。 参考サイト PowerShellスクリプト(.ps1)をバッチフ…

PowerShell - 音量のコントロール

PowerShellからボリュームコントロールできる情報を見つけたのでメモ。VolumeとMuteプロパティへのアクセスができるようになる。 Windows7 の PowerShell Ver.2の場合は、1行目を以下の様に変更する。 Add-Type -Language CSharpVersion3 -TypeDefinition @'…

Visual Studio Community 2017 オフラインインストール

追記 Visual Studio Community 2019の場合を追加しました。 Visual Studio Community 2019 オフラインインストール - hakeの日記 手順はこちらに書かれているとおり vs_community.exeの取得 上記リンク先からダウンロードする。 ローカル インストール キャ…

EXCEL VBAメモ - xlsmファイル中のマクロの書き換え

マクロ入りの雛形ファイルをコピーして作成されたExcelファイルが多数ある場合の一括マクロ更新などに使用。 参考サイト:VBAでVBEを操作する 基本的に更新対象ファイルの対象モジュールの内容を一括削除して、予め更新マクロ用Excelファイルに用意した、同…

Java - VS CodeでのJava実行環境

Visual Studioの重さから、VS Codeも重いんだろうなという思い込みでいたのだけれども、実際に使用したら結構軽いので驚いた。 本格的な開発ならeclipseの方が良いけれども、勉強にはこちらで十分。 前提 環境 Windows10 64bit Java8をインストール済みでJav…

非VisualStudio環境でのC#コンパイラ(コマンドライン版)

参考 コマンドラインコンパイラ csc.exe で C# コードをコンパイルする 巨大なVisualStudioをインストールしなくても、コマンドラインのC#コンパイラが使用できるということなので試したらできました。ちょっとしたツールを作成するのに便利かもしれません。…

PowerShell - スクリプトブロック

以下の様に、スクリプトブロックを変数に代入できる。呼び出しは変数に"&"を付加する。 なので高階関数のようなことも可能になります。 $plus1 = { param( $a ) return $a + 1 } # 第一引数にスクリプトブロック # 第二引数にリスト function map($fn, $list…

PowerShell - SHA256ハッシュ値文字列の取得

function getSHA256Hash( [string]$s ){ $sha256 = New-Object System.Security.Cryptography.SHA256Managed $utf8 = New-Object System.Text.UTF8Encoding $h = $sha256.ComputeHash( $utf8.GetBytes($s) ) return ($h | %{$_.ToString("x2")}) -join "" } …

PowerShell - 簡易GUI電卓

簡単なGUI電卓を作成。 少々悩んだ点として、関数内でグローバル変数にアクセスする場合は、$varを$global:varとすること。でも、本当は引数経由でアクセスしたほうが良いのですが……。 あとボタンオブジェクトは、配列で処理するとソースがもっとすっきりす…

PowerShell - Internet Explorerの操作

Internet Explorerを起動して、Googleで"PowerShell"を検索してみる。 ただ、起動したIEのウィンドウを最前面にもってくる方法がわからない。 $keyword = "PowerShell" $ie = New-Object -ComObject InternetExplorer.Application $ie.Visible = $true $ie.N…

PowerShell - Sort-Object - 1から10の数字を、2.1に近い順に並べかえる

1..10 | Sort-Object @{ Expression={[MATH]::Abs($_ - 2.1)}; Ascending = $true # expressionブロックの値が小さい順 } 実行結果 2 3 1 4 5 6 7 8 9 10

PowerShell - ForEach-Objectの多重使用 - CSVファイルを読み取りデータに1を加算して出力する

Get-Content ".\test.csv" | %{ ( # 1行ごとの処理 $_ -split "," | %{ # 1データごとの処理 [int]$_ + 1 } ) -join "," } | Write-Output test.csv 1,2,3 4,5,6 7,8,9 結果 2,3,4 5,6,7 8,9,10 普通のプログラムっぽい書き方(ForEach-Objectは使用しない)…

PowerShell - Excelの操作

EXCEL用のCOMオブジェクトを作成して、あとはVBAと同じ感覚で操作できるっぽいです。 一点、配列やコレクションの括弧の形状がVBAだと( )ですが、[ ]にしないとメソッドと間違えられてエラーになるので注意。 $excel = New-Object -ComObject Excel.Applicat…

PowerShell - GUIプログラム

ボタンをクリックすると文字を表示するプログラム。 デフォルトで使用できないクラスは、Add-Typeで読み込む。Formに設定したフォントはForm上の部品にも適用される。イベント登録はAdd_イベント名(処理)と記述する。 System.Windows.Forms.Formクラス - M…

PowerShell - クラス

バージョン5からクラスが使用可能になったようです。 class Person { [string] $name [int] $age # コンストラクタ Person() { $this.name = "No Name" $this.age = 0 } Person([string]$name, [int]$age) { $this.name = $name $this.age = $age } # メソッ…

PowerShell - クロージャ

戻り値となるブロック内の変数$cntをscriptスコープ宣言することでfunction内の変数$cntへアクセスできるようになる? function generator($step = 1){ $cnt = 0 return { $script:cnt += $step return $cnt }.GetNewClosure() } $a = generator &($a) # 1 &…

PowerShell - 独自オブジェクトの作成

PSObjectにプロパティやメソッドを追加していくことで独自のオブジェクトが作成できます。 # Hashでプロパティを追加 $hash = @{name = "Taro"; age = 20} $obj = New-Object PSObject -Property $hash # Add-Memberでプロパティを追加 $obj | Add-Member -M…

PowerShell - 例外処理

try節のブロックで例外が発生した場合、(該当する型を記述した)catch節が実行される。finally節は例外発生有無に関わらず実行される。 try { "try節です" 1/0 } catch [Exception] { "catch節です" } finally { "finary節です" }try節です catch節です fin…

PowerShell - 例外処理(throw)

意図的に例外を発生させる場合にはthrowを使用する。 try { "try節です" throw "例外発生" } catch [Exception] { "catch節です" } finally { "finary節です" }PS C:\> $error[0].CategoryInfo Category : OperationStopped Activity : Reason : RuntimeExce…

PowerShell - 関数(値渡しと参照渡し)

参照渡しの場合、呼び出し側の引数に[ref]をつける、また引数に括弧がないとエラーになった。 関数定義の仮引数の[ref]は無くても良い、関数内では仮引数のValueプロパティにアクセスする。 # 値渡し function byVal($arg){ $arg = "Good Bye" Write-Host "i…