ReadFields
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); // 受信文字列の取得
stringをboolに変換
String strbool = “true”;
bool sbol = System.Convert.ToBoolean(strbool);
テキストファイルの中身を1行ずつ読み込んで表示する
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配列に分割した文字列が入ってます
Replaceを使用して置換する
string mozi = “ABCD”;
// 文字列 “ABC” を “1234” に置き換える
mozi= mozi.Replace(“ABC”, “1234”);
// 1 文字だけを置き換える場合は char 型を使用する
mozi= mozi.Replace(‘D’, ‘5’);
DataTableからCSV形式のファイルに保存する
【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();
日付フォーマット
[日付フォーマット]
DateTime.Now.ToString(“yyyy/MM/dd”)
=2010/03/03
DateTime.Now.ToString(“yyyy年MM月dd日”)
=2010年03月03日
先頭に「.」途中に「-」がある場合Break!!
数値配列を1byteずつ読み、かつ先頭に「.」途中に「-」空白がある場合に抜ける。
if(nret==’.’)
{
if(count==0)
{
break;
}
}
else if(nret==’-‘)
{
if(count>0)
{
break;
}
}
else if(nret < ‘0’ || nret > ‘9’)
{
break;
}
CPU買ってBIOS UPDATE
職場みんなから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
SerialPortクラス
comポートからデータを1Byteずつ取得する・・。
参考書からWebからと参考になるものをさがしているがわからない。
たぶん「serialPort1.BytesToRead」を使用すると思うのだが、デバックして取得した
値を見てみると「49 49 32 49 54 51」となった。(入力した値:11 163)
たぶん49は1をあらわし32がスペースを表していると思うが・・。どないやねん!!
文字コードは送信側・受信側ともに同じUTF-8なのになぜこうなるのか??
だれか教えてください( ;∀;)
SerialPortクラス
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文字を取得するが、短い受信データで無い
限り処理が間に合わなくなる可能性がある。