2015年9月30日水曜日

【C#】C#でファイル出力する際の備忘

仕事で試験データのCSVファイルを作る場合、普段はPowerShellを使って作成しているが
何千万行のCSVファイルを作るには速度が遅いので、「.NET FrameworkだけでC#のコンパイル」を利用してC#でCSVファイルを作ることがあるのでファイル出力の手順を忘れないようにメモ。

とりあえず、以下のコードを備忘のために記載。
ファイル出力

using System;
using System.IO;


class Program
{
    static void Main(string[] args)
    {
        StreamWriter writer = new StreamWriter(@"D:\@temp\hello_word.txt", false, new System.Text.UTF8Encoding(false));
        writer.WriteLine("ハローワールド");
        writer.Close();
    }
}


StreamWriterの説明はココを参照。

第一引数はファイル名。
第二引数は追記の有無。
第三引数はエンコード。

第三引数に指定するエンコードで個人的によくよく使うのは以下、

個人的によく使うエンコード

new System.Text.UTF8Encoding(false) // utf8 BOM無し

System.Text.Encoding.GetEncoding("Shift_JIS") // sjis

以上。

2015年9月26日土曜日

「setx」で環境変数を設定する。

環境変数を永続的に設定する場合は「setx」を使用する。

コマンド

>setx 変数名 変数の値

>setx /M 変数名 変数の値

「/M」オプションをつけない場合はユーザ環境変数、つけるとシステム環境変数。
システム環境変数を設定する場合は管理者権限でコマンドプロンプトを実行する。

※「set」コマンドの場合は設定したコマンドプロンプト内でしか設定されない。

2015年9月16日水曜日

【Intel Edison】Intel Edison Breakout Board KitでLチカ node.js編

Intel Edisonでnode.jsを利用してLチカをやったのでメモ

回路図はココ(C言語編と同じ)を参考。

node.jsの環境構築は初期化した際に入っていたので省略。

ソースコードはサンプルがあったのでMRAAのポートを変更するだけですんだ。

サンプルを保存して、MRAAのポートを書き換え

MRAAのポートを書き換え

var myLed = new m.Gpio(48); //J20のpin7は48番

実行する。

実行

>node Blink-IO.js


1秒周期でLチカする。

2015年9月7日月曜日

【PowerShell】PowerShellで.NETのMath クラスを呼ぶ

PowerShellで.NETのMath クラスを呼ぶ時の備忘
「[math]::メソッド」で呼べる。

呼べるメソッドはココを参照。


円周率
PS > [math]::pi
3.14159265358979

2値を比較し大きいほうの値を得る
PS > [math]::max(10,20)
20

2値を比較し小さいほうの値を得る
PS > [math]::min(10,20)
10

sin(π/2)
PS > [math]::sin([math]::pi/2.0)
1

for文やらファイル出力と組み合わせてテストデータを作る時に便利。

2015年8月31日月曜日

【.NET】 .NET FrameworkだけでC#のコンパイル

「.NET」が入っているWindwsに「C#」と「Visual Basic .NET」のコンパイラが標準で
含まれていると聞いたので「C#」で「hellow, world」を試してみる。
※Windows Vista以降だと標準で入っている。

コンパイラは
「C:\Windows\Microsoft.NET」配下の「Framework」or「Framework64」の下
「v#.NETのバージョン#」のフォルダに「csc.exr」(C#)、「vbc.exe」の名前で入っている。

とりあえず、「C#」で「hellow, world」


「hellow, world」のソース

using System;

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("hello, world");
        }
    }
}

ソースをファイル名「helloworld.cs」で保存。

今回は「C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe」でコンパイル&実行


コンパイル&実行

d:\@temp>C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe helloworld.cs
Microsoft (R) Visual C# Compiler Version 4.0.30319.36242
for Microsoft (R) .NET Framework 4.5
Copyright (C) Microsoft Corporation. All rights reserved.


d:\@temp>helloworld.exe
hello, world


「Visual Studio」無しに「C#」と「VB.NET」のコンパイルができる。

2015年8月25日火曜日

【Intel Edison】Intel Edison Breakout Board KitでLチカ C言語編

Intel EdisonでC言語を利用してLチカをやったのでメモ

回路図は前回を参考。
Intel Edisonに入れてるLinuxは「Release 2.1 Yocto* complete image」
(こっちで初期化した際にいれたやつ)

Intel作成のMRAAライブラリを利用することで
プログラミング言語からIntel EdisonのIOポートが使えるようになる。

Intel提供のLinuxをインストールしている場合は標準で入っているので
インストール手順は省略。

ココとかココとかココを参考に作ったソースがこちら


Lチカのソース
#include <stdio.h>#include <unistd.h>#include <mraa.h>
int main(int argc, char *argv[]){
// MRAAの初期化 mraa_init();
// MRAAのバージョンを出力 fprintf(stdout, "MRAA Version: %s\n", mraa_get_version());
// MRAAでGPIOとして使用するポートを初期化 // 今回は48番ポート(J20-7ピン) // echo "15" > /sys/class/gpio/export みたいなもの mraa_gpio_context gpio; gpio = mraa_gpio_init(48); if (gpio == NULL){ return 1; }
// ポートを出力に設定 if (mraa_gpio_dir(gpio, MRAA_GPIO_OUT) != MRAA_SUCCESS){ return 1; }
int i; for (i = 0; i<10; i++){ fprintf(stdout, "num: %s\n", mraa_get_version()); // echo "1" > /sys/class/gpio/gpio15/valueみたいなもの mraa_gpio_write(gpio, 1); sleep(1);
// echo "0" > /sys/class/gpio/gpio15/valueみたいなもの mraa_gpio_write(gpio, 0); sleep(1); }

// MRAAの終了処理 mraa_deinit();
return 0;}

作ったソースを今回は「test.c」という名前で保存してコンパイル&実行

コンパイル&実行

>gcc -lmraa test.c

>./a.out


「gcc -lmraa test.c」でコンパイル。
 「-lmraa」で「mraaライブラリ」をリンクするの意味。
 「./a.out」で実行。

実行した様子がこちら


とりあえず今後は他の言語でのLチカやセンサーとかをつないで見る予定。
後、ソースコードを綺麗に表示したい。

2015年8月21日金曜日

【PowerShell】PowerShellで「wget」

PowerShell 4.0以降で「wget」が使えるらしいのでやってみた時のメモ


構文
PS>wget -uri URI -outfile 出力するファイル名

「Invoke-WebRequest」のエイリアスらしく他にもいろいろできそう。

とりあえずgoogleのトップページでも落としてみる。

やってみた
PS>wget -uri https://www.google.co.jp/webhp?hl=ja -outfile test.html 

カレントディレクトリにファイル名「test.html」でダウンロードできた。