ReadFields

By matsuyama - Last updated: 水曜日, 3月 10, 2010
 String[] strCSV = parser.ReadFields(); // 1行読み込み
                         Double[] DouAry = Array.ConvertAll(strCSV, delegate(string value)
                         {
                             return Double.Parse(value);
                         });
                         for (int i = 0; 0 < DouAry.Length; i++)
                         {
                             if (DouAry[i] == ' ')
                             {
                                 Double byAry = DouAry[i].ReadByte();
                                 if (byAry < '0' || byAry > '9')
                                 {
                                     break;//0~9以外なら抜ける
                                 }
                                 if (byAry != -1)
                                 {
                                     aryList.Add((byte)nret);
                                 }
                             }
                         }

                             ////CSVarylist = (Convert.ToInt32(strCSV[i]));

                         //int intCSV = int.Parse(strCSV, NumberStyles.AllowThousands);
                         // 受信文字列の取得
Filed in ファイル読み込み

stringをboolに変換

By matsuyama - Last updated: 水曜日, 3月 10, 2010

String strbool = “true”;
bool sbol = System.Convert.ToBoolean(strbool);

Filed in 置換

テキストファイルの中身を1行ずつ読み込んで表示する

By matsuyama - Last updated: 水曜日, 3月 10, 2010

System.IO.StreamReader text_reader = null;

text_reader = new System.IO.StreamReader( @”c:\test.txt”, System.Text.Encoding.Default );

// 1行ずつ読み込んでリストボックスに追加
while( text_reader.Peek() >= 0 )
listBox1.Items.Add(text_reader.ReadLine());

text_reader.Close();

※Peek()で事前に読取可能かどうか調べてから
実際にReadLine()で1行ずつ読み込む。

1文字ずつ読み込みたい場合は
ReadLine()の替わりにRead()を使用する。

なお、Peek()しただけでは
現在のファイルポインターの位置は変わらない。
Peek()の戻り値が-1の場合
それ以上読み込めるデータが無いことを示す。

string s = “テスト 確認  チェック 再チェック”

char[ ] delimiter = new char[ ] { ‘ ‘ };
string[ ] sub = s.Split(delimiter);

// string配列に分割した文字列が入ってます

Filed in StreamReader

Replaceを使用して置換する

By matsuyama - Last updated: 水曜日, 3月 10, 2010

string mozi = “ABCD”;

// 文字列 “ABC” を “1234” に置き換える
mozi= mozi.Replace(“ABC”, “1234”);

// 1 文字だけを置き換える場合は char 型を使用する
mozi= mozi.Replace(‘D’, ‘5’);

Filed in 置換

DataTableからCSV形式のファイルに保存する

By matsuyama - Last updated: 火曜日, 3月 2, 2010

【DataTableをCSV形式のファイルに保存するサンプルコード】

//CSVで保存するDataTable

DataTable dt = (DataTable) dataGrid1.DataSource;

//保存先のCSVファイルのパス

string csvPath = “C:¥¥”;

//CSVファイルに書き込むときに使うEncoding

System.Text.Encoding enc_jis = System.Text.Encoding.GetEncoding(“Shift_JIS”);

//開く

System.IO.StreamWriter sr = new System.IO.StreamWriter(csvPath, false,enc_jis);

int colCount = dt.Columns.Count; int lastColIndex = colCount – 1;

//ヘッダを書き込む

for (int i =  0; i  < colCount;  i++)

{

//ヘッダの取得

    string field = dt.Columns[i].Caption;

 //"で囲む必要があるか調べる

if (field.IndexOf('"') > -1 ||

field.IndexOf(',') > -1 ||

field.IndexOf('¥r') > -1 ||

field.IndexOf('¥n') > -1 ||

field.StartsWith(" ") || field.StartsWith("¥t") ||

field.EndsWith(" ") || field.EndsWith("¥t"))

{

if (field.IndexOf('"') > -1)

{

//"を""とする

field = field.Replace("¥"", "¥"¥"");

}

field = "¥"" + field + "¥"";

}

//フィールドを書き込む

sr.Write(field);

//カンマを書き込む

if (lastColIndex > i)

{

sr.Write(',');

}

}

//改行する

sr.Write("¥r¥n");

//レコードを書き込む

foreach (DataRow row in dt.Rows)

{

for (int i = 0; i < colCount; i++)

{

//フィールドの取得

string field = row[i].ToString();

//"で囲む必要があるか調べる

if (field.IndexOf('"') > -1 ||

field.IndexOf(',') > -1 ||

field.IndexOf('¥r') > -1 ||

field.IndexOf('¥n') > -1 ||

field.StartsWith(" ") || field.StartsWith("¥t") ||

field.EndsWith(" ") || field.EndsWith("¥t"))

{

if (field.IndexOf('"') > -1)

{

//"を""とする

field = field.Replace("¥"", "¥"¥"");

}

field = "¥"" + field + "¥"";

}

//フィールドを書き込む

sr.Write(field);

//カンマを書き込む

if (lastColIndex > i)

{

sr.Write(',');

}

}

//改行する

sr.Write("¥r¥n");

}

//閉じる

sr.Close();
Filed in CSV保存

日付フォーマット

By matsuyama - Last updated: 火曜日, 3月 2, 2010

[日付フォーマット]

DateTime.Now.ToString(“yyyy/MM/dd”)

=2010/03/03

DateTime.Now.ToString(“yyyy年MM月dd日”)
=2010年03月03日

Filed in C#, 日付

先頭に「.」途中に「-」がある場合Break!!

By matsuyama - Last updated: 火曜日, 2月 16, 2010

数値配列を1byteずつ読み、かつ先頭に「.」途中に「-」空白がある場合に抜ける。

if(nret==’.’)
{
if(count==0)
{
break;
}
}
else if(nret==’-‘)
{
if(count>0)
{
break;
}
}
else if(nret < ‘0’ || nret > ‘9’)
{
break;
}

Filed in C#

CPU買ってBIOS UPDATE

By matsuyama - Last updated: 金曜日, 2月 12, 2010

職場みんなからPCがうるさいとの声が上がり、今まであまり意識していなかったが

確かに気になるレベルだった・・。とりあえず春まで放置!・・・・・・・・・・・・・・・・・

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・。

せわしぃ・・とりあえず本でケースを押しつけ固定・・。もやかましぃ・・。

テープでケースを固定・・・うるさい・・。

時間が経つにつれて大きくなっている気がする。

(´Д`)ハァ…やっぱり交換だねぇ~

さっそくCPUを買いに近くの店へ行きお目当てのCore 2 Duoを購入!!

(財布の残金87円今月生きて行けるだろうか( ;∀;) )

期待を胸に会社に帰ってCPUを載せ替えてスイッチON!!・・??・・スイッチON・・?・・?

起動しない・・。

上司に相談すると「この豚やろう!」もとい「BIOS UPDATEが必要だ」ということらしいが?

どうやらマザーが発売された時以降にでた新しいCPUはそのマザーに対応していないので

BIOSのバージョンを上げる必要があるらしい。

本来は新しいCPUに変える前に最新の状態にしておき、それからCPUを交換するのが

本来の流れらしい。

仕方ないので今回は、起動ディスクを作成しBIOS UPDATEをする。

ASUSのホームページからBIOSユーティリティをダウンロード

その後BIOS設定で起動優先順位を設定

再起動して[dir c:] Enter その後ファイルパスを指定してEnterで

BIOS UPDATEスタート~!この時失敗するとすべてが終わるらしい・・。

後はBIOS設定がリセットされているので、再設定で終了。

さっそく起動してみると早い早い!音も静かでいい感じです(^.^)v

Filed in その日の出来事

SerialPortクラス

By matsuyama - Last updated: 日曜日, 2月 7, 2010

comポートからデータを1Byteずつ取得する・・。

参考書からWebからと参考になるものをさがしているがわからない。

たぶん「serialPort1.BytesToRead」を使用すると思うのだが、デバックして取得した

値を見てみると「49 49 32 49 54 51」となった。(入力した値:11 163)

たぶん49は1をあらわし32がスペースを表していると思うが・・。どないやねん!!

文字コードは送信側・受信側ともに同じUTF-8なのになぜこうなるのか??

だれか教えてください( ;∀;)

Filed in C#

SerialPortクラス

By matsuyama - Last updated: 水曜日, 2月 3, 2010

SerialPortクラスのメソッド [受信]

SerialPortクラスのメソッドにはRead・ReadByte・ReadChar・ReadExisting・ReadLine・ReadTo・などがあり

主な内容は↓

Read・・SerialPort の入力バッファから読み取る

ReadByte・・SerialPort の入力バッファから、同期で 1 バイトを読み取る

ReadChar・・SerialPort の入力バッファから、同期で 1 文字を読み取る

ReadExisting・・ストリームと SerialPort オブジェクトの入力バッファの両方で、
エンコーディングに基づいて、即座に使用できるすべてのバイトを読み取る

ReadLine・・入力バッファ内の NewLine 値まで読み取る

ReadTo・・入力バッファ内の指定した value まで文字列を読み取る

です!

Readは2つのオーバーロードを持っていてバイト配列と、文字配列の引数を読みとる。

SerialPort.Read(Byte[],Int32,Int32)

SerialPort.Read(Char[],Int32,Int32)

ReadByte、ReadCharはそれぞれ入力バッファから1Byteと1文字を取得するが、短い受信データで無い

限り処理が間に合わなくなる可能性がある。

Filed in VB.NET ~復習~