●ファイルの入力
・System.IO.StreamRederクラスを使う。
・カンマ区切りの場合はたとえば次のように書く。
---
Dim sr As System.IO.StreamReader = New System.IO.StreamReader("\\Path\hoge.csv")Dim arr() As String = sr.ReadLine.Split(",")
---
●ファイルの出力
・System.IO.StreamWriterクラスを使う。
・Writeメソッドを呼び出したらすぐに書き込まれるわけではない。Flashメソッドが呼び出されたときに書き込み実行。なおCloseメソッドでもFlashメソッドが呼ばれる。
・StreamWriterはファイルをFileShare.Readで掴むため、他のプロセスから読み込みはできるが書き込みできなくなる。



●配列に関する関数・メソッド・プロパティ
・UBound関数、GetUpperBoundメソッド:おなじみの配列の要素数の上限をゲット。
・Lengthプロパティ:配列全体の要素数を取得。
●配列の宣言
・一次元配列
Dim a() As Integer
・二次元配列
Dim a(,) As Integer
・動的配列で、前の内容を保存したい場合はPreserve。
・動的配列の解放はErase。
●Arrayクラス
・Arraylist:コレクションの1つ。
・Arrayクラスのメソッドを使うことで、配列に対して各種操作ができる。使いそうなものは次の通り
・Array.Clear(hoge):全要素をクリア。文字列なら""、数値なら0。
・Array.Copy(hoge, a, hoge.Length)
・Array.Reverse(hoge):逆順にソート
・Array.Sort(hoge):ソート
・他に役立ちそうなメソッド・プロパティ
・hoge.GetLength:n次元のサイズ
・hoge.GetType:配列の型
・hoge.Rank:配列の次元数
●配列をListに変換、型変換
・Listはジェネリック・クラス。特定の型に依存しないメソッドやプロパティが使える点がいい。
・サンプル
---
Dim hoge As List(Of String) = New List(Of String)
Dim arry () As String = sr.ReadLine.Split(",")
If 'ここに条件
hoge.Add(arry(1))
End If
Dim ret() As String = hoge.ToArray
---


●文字列操作
・文字列を数値に変換:Praseメソッド
・数値を文字列に変換:ToStringメソッド
・Convertクラスによるデータ型の変換:
・CType関数などもある。CType(hoge, Integer)
・文字列から数値に変換する場合の注意として、
Dim hoge As String = ""
CType(hoge, Integer)
は、変換できないので、自分でIsNumericとCType使って関数作る。


【その他Tips】
さっき数学関数見っけた、やっぱりあったんだ。。
●数学関数
・system.mathクラスのメソッド。
http://jeanne.wankuma.com/tips/vb.net/math/
・よく使いそうなメソッド:max,min,round,sign,abs

使わないかもしれないけど、備忘録。
●IIf 関数
・判定式の結果によって、2つのオブジェクトのうちどちらかを返す。
・IIF(hoge > 500, "Larger", "Smaller")


【今後の課題】
●構造体の使い方がいまいちよくわからない。宣言はこんな感じ。
---
Public Structure NmHoge
Public hoge1 As Integer
Public hoge2 As String
End Structure
---
●データ型の特徴と容量を覚える。どれくらいまでメモリで処理するかの目処がつけられるようになるため。http://homepage1.nifty.com/rucio/main/kiso/DataType.htm
●CTypeとConvert.ToInt32の違い。
.NET向けの備忘録めも。pgm.txtへ追加する。
[.NETの当面の目標]
・ファイルの入出力
・文字列処理
・配列処理
期限1週間以内。

・コンストラクタ:オブジェクト生成時に呼び出される特殊な関数のこと。オブジェクトが扱うデータの初期化などをここで行う。
・コンソール:OSやテキストベースのコンソールアプリケーションとのインターフェイスを提供するオペレーティングシステムのウィンドウ。こいつのおかげで、ユーザーはキーボードで入力したり、コンピュータから出力されたテキストを読むことができる。具体的には、windowsのcmdなどがそうでこのウィンドウからMSDOSコマンドを実行できる。
consoleクラスを使えば、コンソールから文字を読み込んだり、コンソールに文字を書き込むことができる。
・コンソールの主要メソッドを調べる
文字を1つずつ読み込む、行全体を読み込む、値型、文字配列、オブジェクトのインスタンスを書式付または書式なし文字列に自動的に変換した後、必要に応じてコンソールに出力する
コンソールアプリを起動すると、3つの入出力ストリームとコンソールがOSによって自動で関連付けられる。ユーザー入力読み込み、データをストリームへ書き込み、エラーデータをストリームへ書き込むことができる。これらのストリームはin, out, errorの各プロパティ値を通じてアプリに公開される。
in:System.IO.TextReaderオブジェクト
out, error:System.IO.TextWriterオブジェクト

マルチスレッド:1つのアプリソフトがスレッドと呼ばれる処理単位を複数生成し、平行して複数の処理を行うこと。アプリソフト内のマルチタスク処理みたいな感じ。CPUの処理時間を細かく分割し、複数のスレッドに順番に割り当てることによって、複数の処理を行っているかのようにみせる。
->処理速度って遅くなるの?


http://www.r-nakai.com/archives/52
ようやく更新。最近は働いていました、今月もよく働きそう。。
NYは少し寒さが和らいできたかなーと思ったら、一昨日再び雪が降りfreezing to death...
日本はまだ寒い?日本の温泉へ行きたい。めっちゃ行きたい。。


先日、米国小売りセクターのアナリストの話を聞く機会がありました。
GDPとかデフレとか家計の貯蓄率とかいった分析をしていて、普段の仕事とは全く異なる視点から株価の話なんかをしていたのでふんふんと興味深く聞いていたのですが、1つ思ったこと。

株価を予測する仕事って現在手に入る情報しか使えないわけで、過去のバックテストをするときもin sampleとout of sampleを非常に注意して分析するわけですが、アナリストの人って結構同じタイミングのデータを比較してほら相関あるでしょ、みたいな説明をしているなーと。雑誌とかによく出てる著名アナリストの分析を見ていて後付解釈じゃないかな、と疑問を感じることがよくあったのですがこういうわけかな。このわずかなラグが収益にすごく影響するのですが。
まぁどっちが悪いというわけじゃなくて、トレーダーとアナリストって株価の分析っていっても全然違うんだな、と。実際アナリストのレポートでも目から鱗のものもいっぱいあって、人によって向き不向きがあると思う。多分バイサイドのアナリストとかになると、トレーダーっぽい分析(儲けるための分析)をしていると推測するわけですが。


最近VB.NETを使い始めたんだけど、使い勝手が全然わからん。。備忘録かねてブログにメモしていこうと思います。