2010年12月14日 星期二
[Excel] 格式化條件 設定文字變色 判斷日期是否到期
主要是利用 下次送校日 與 本日 做判斷 來計算出 日期
#這是完成後的效果
#完整的設定 如下圖 請參考
當然,如果使用 VBA 是比較簡潔,且變化性更好,只是VBA 對於某些人
比較難理解 及 靈活的運用。
2010年12月10日 星期五
[C#] UNC 網路芳鄰連接 含帳號密碼
private WshNetwork _networkShell = new WshNetwork();
private void MapDrive(string driveLetter, string UNC, bool isPersistent, string userName, string password)
{
if (driveLetter != "")
{
DisconnectDrive(driveLetter, true, true);
}
else
{
DisconnectDrive(UNC, true, true);
}
object persistent = isPersistent;
object user = userName;
object pwd = password;
_networkShell.MapNetworkDrive(driveLetter, UNC, ref persistent, ref user, ref pwd);
}
private void DisconnectDrive(string UNC_or_DriveName, bool willForce, bool isPersistent)
{
try
{
object force = willForce;
object updateProfile = isPersistent;
_networkShell.RemoveNetworkDrive(UNC_or_DriveName, ref force, ref updateProfile);
}
catch
{
//
}
}
//使用方式 Mount
private void MAP_DRIVER_Y()
{
string sour_path = @"file://123.456.789.123/qq";
MapDrive("Y:", sour_path, false, "user_id", "password");
}
// Umount
private void DIS_MAP_DRIVER_Y()
{
DisconnectDrive("Y:", true, true);
}
不想使用 命令模式 ,這是另一個選擇
2010年10月7日 星期四
[Firefox] 除了擋廣告,還可以擋網址
可以直接把 Site 網址 直接擋掉。
先看一下套件 Adblock Plus 是主套件 ,一定要安裝
再來就是這次推薦的 Adblock Plus Pop-up Addon
裝完了之後,進入 Ablock plus pop-up addon 的選項裡面。
將 Always show context menu item 打勾。
使用方法很簡單,只要針對要檔的網頁 按滑鼠右鍵
選擇 Block This Window ,下次這個網址就不會被開啟。
2010年10月6日 星期三
[WCF] 解決 DataTable 的使用
竟然只要指定 DataTable Name 就可以使用 DataTable 了。
真是太好了。
2010年9月29日 星期三
[C#] 監控USB插拔
// 常數宣告
//USB
public const int WM_DEVICECHANGE = 0x219;
public const int DBT_DEVICEARRIVAL = 0x8000;
public const int DBT_CONFIGCHANGECANCELED = 0x0019;
public const int DBT_CONFIGCHANGED = 0x0018;
public const int DBT_CUSTOMEVENT = 0x8006;
public const int DBT_DEVICEQUERYREMOVE = 0x8001;
public const int DBT_DEVICEQUERYREMOVEFAILED = 0x8002;
public const int DBT_DEVICEREMOVECOMPLETE = 0x8004;
public const int DBT_DEVICEREMOVEPENDING = 0x8003;
public const int DBT_DEVICETYPESPECIFIC = 0x8005;
public const int DBT_DEVNODES_CHANGED = 0x0007;
public const int DBT_QUERYCHANGECONFIG = 0x0017;
public const int DBT_USERDEFINED = 0xFFFF;
//雙擊滑鼠左鍵
public const int WM_MOUSE_DOUBLE_CHICK = 0x0203;
//USB 監控
protected override void WndProc(ref System.Windows.Forms.Message m)
{
try
{
if (m.Msg == WM_DEVICECHANGE)
{
switch (m.WParam.ToInt32())
{
case WM_DEVICECHANGE:
break;
case DBT_DEVICEARRIVAL://USB IN
DriveInfo[] s = DriveInfo.GetDrives();
foreach (DriveInfo drive in s)
{
if (drive.DriveType == DriveType.Removable)
{
MessageBox.Show("U盤已插入,盤符為:" + drive.Name.ToString());
break;
}
}
break;
case DBT_CONFIGCHANGECANCELED:
break;
case DBT_CONFIGCHANGED:
break;
case DBT_CUSTOMEVENT:
break;
case DBT_DEVICEQUERYREMOVE:
break;
case DBT_DEVICEQUERYREMOVEFAILED:
break;
case DBT_DEVICEREMOVECOMPLETE: //USB OUT
MessageBox.Show("You Flash ....Bye");
break;
case DBT_DEVICEREMOVEPENDING:
break;
case DBT_DEVICETYPESPECIFIC:
break;
case DBT_DEVNODES_CHANGED:
break;
case DBT_QUERYCHANGECONFIG:
break;
case DBT_USERDEFINED:
break;
default:
break;
}
}
//Mouse
if (m.Msg == WM_MOUSE_DOUBLE_CHICK)
{
MessageBox.Show("別在雙擊滑鼠左鍵了!");
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
base.WndProc(ref m);
}
2010年9月28日 星期二
[C#] enum 列舉 補充 - 與 Switch 結合用法
enum enum_FUNCTION
{
CES,
AOI,
FET,
FVT,
OQC,
PAK
}
2.) 然後 new 起來
enum_FUNCTION FC_Function =new enum_FUNCTION();
3.) 然後在 Visual Studio 裡面,按右鍵 選擇 插入程式碼片段 選擇 switch ,
這時候會顯示下面畫面。
switch (switch_on)
{
default:
}
4.) 在 switch_on 的地方 ,打入 New 起來的 enum 就會自動展開喔。
switch (FC_Function)
{
case enum_FUNCTION.CES:
break;
case enum_FUNCTION.AOI:
break;
case enum_FUNCTION.FET:
break;
case enum_FUNCTION.FVT:
break;
case enum_FUNCTION.OQC:
break;
case enum_FUNCTION.PAK:
break;
default:
break;
}
2010年9月20日 星期一
[WCF] 使用說明
在 IService1.cs 裡面
public interface IService1
{
[OperationContract]
string KM_GetData(int value);
[OperationContract]
string KM_EMP(string ID);
}
在 Service1.cs 裡面
public class Service1 : IService1
{
public string KM_GetData(int value)
{
return string.Format("You entered: {0}", value);
}
public string KM_EMP(string ID)
{
string a = ID.ToString().Trim();
return "HI, IAM KUoming -"+a;
}
}
發佈到 IIS 以後,就可以使用了,在 使用專案裡面,先加入 服務參考
private void button1_Click(object sender, EventArgs e)
{
KM_WCF.Service1Client WCF = new WindowsFormsApplication1.KM_WCF.Service1Client();
MessageBox.Show(WCF.KM_GetData(9999));
MessageBox.Show(WCF.KM_EMP("zxcvbnm,"));
WCF.Close();
}
2010年9月15日 星期三
[Silverlight] 畫面佈局
- Grid - 基本上是一種表格,用以將物件放置在資料列和資料行中。
- StackPanel - 用以將物件放置在另一個物件的旁邊,或是放在另一個物件的上方。
- Canvas - 用於絕對位置 (而且從 Silverlight 1.0 開始就未變更)
<Grid.RowDefinitions>
<RowDefinition Height="450"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="500"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Canvas Grid.Column="0" Grid.Row="0">
<TextBox x:Name="mytextbox" FontSize="20" Text="Hello World" Height="120"
Width="200" Canvas.Left="50" Canvas.Top="10"></TextBox>
<Button Click="Button_Click" Content="按我!" Height="120" Width="200"
FontSize="26" Canvas.Left="50" Canvas.Top="150"></Button>
<ToggleButton x:Name="bt1" Content="QQ" Height="120" Width="200" Canvas.Left="50"
Canvas.Top="300" Click="bt1_Click" IsThreeState="True"></ToggleButton>
<ScrollViewer Background="Blue" Height="120" Width="300"
HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Visible"
Canvas.Left="280" Canvas.Top="10">
<TextBlock TextWrapping="Wrap" Text="1234567890 嘿嘿!! 測試!!"
FontSize="20" FontWeight="light" HorizontalAlignment="Right" IsHitTestVisible="True"
LineStackingStrategy="MaxHeight"></TextBlock>
</ScrollViewer>
<Rectangle Fill="AliceBlue" Height="60" Width="60" Canvas.Left="280"
Canvas.Top="150"></Rectangle>
<Rectangle Fill="BurlyWood" Height="60" Width="60" Canvas.Left="360"
Canvas.Top="200"></Rectangle>
</Canvas>
<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="0">
<TextBlock Text="UserName:" VerticalAlignment="Center" Foreground="White"></TextBlock>
<TextBox Width="200" Height="30" HorizontalAlignment="Left"></TextBox>
</StackPanel>
<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="1">
<TextBlock Text="Password:" VerticalAlignment="Center" Foreground="White"></TextBlock>
<TextBox Width="200" Height="30" HorizontalAlignment="Left"></TextBox>
</StackPanel>
<Canvas Grid.Column="1" Grid.Row="0">
<Button x:Name="bt2" Click="bt2_Click" Content="全螢幕" Height="30" Width="150" Canvas.Left="50" Canvas.Top="10"></Button>
</Canvas>
</Grid>
[C#] 查詢 IP 資訊
{
listBox1.Items.Clear();
IPHostEntry hostInfo;
hostInfo = Dns.Resolve(textBox1.Text);
listBox1.Items.Add("Host Name:" + hostInfo.HostName.ToString());
foreach (IPAddress ipaddr in hostInfo.AddressList)
{
listBox1.Items.Add("IP Address:" + ipaddr.ToString());
}
foreach (String alias in hostInfo.Aliases)
{
listBox1.Items.Add("Alias:" + alias.ToString());
}
}
寫真:
2010年9月14日 星期二
[Auto Macro Recorder] Auto Macro Recorder 基本用法
然後重複執行,下面這套還蠻方便的。
//Auto Macro Recoder , 副檔名用 scp
//註解
/* xxxxxxx
//延遲(ms)
delay(0)
//按按鍵(KEY)
KB_CLK(win)
//移動滑鼠到(x,y)
M_MV(514,431)
//開啟檔案(檔按名稱 文字檔檔名) , 可以不要檔名
RUN(notepad tp1.txt)
//開啟檔案
OPEN(notepad)
//功能組合按鍵 shift - p
KD(shift)
delay(100)
KD(p)
delay(100)
KU(p)
delay(100)
KU(shift)
delay(100)
//輸入 string
Input(today is )
//得到日期 並輸入
GetDate()
delay(1000)
Input(VARSTR)
delay(1000)
//得到時間
GetTime()
//從暫存貼上
paste()
2010年9月10日 星期五
[SQL] 字串多行..
原本寫法:
SQL="SELECT "+
"* "+
"FROM TABLE ";
發現只要加上 @
SQL = @"SELECT
*
FROM TABLE";
真是太神奇了!
[C#] HASHTABLE
System.Collections.Hashtable HT = new System.Collections.Hashtable();
資料
HT.Add(101, "CM4021-1-1-L");
HT.Add(102, "CM4021-1-1-R");
HT.Add(103, "CM4021-1-2-L");
HT.Add(104, "CM4021-1-2-R");
實做
string SLOT = "";
foreach (DictionaryEntry KK in HT)
{
if (KK.Value.ToString() == MC + "-" + L1[0] + "-" + L1[2] + "-" + L1[5].Trim())
{
SLOT = KK.Key.ToString();
}
}
排序
//Sort
ArrayList sorter = new ArrayList();
sorter.AddRange(PDLINE1.Keys);
sorter.Sort();
[SQL] 尋找前100筆資料
- 在 SQL 裡面,找前 100 筆資料:
- 在 ORACLE 是這樣
2010年9月9日 星期四
[SQL] 查詢TOP 100 最差的指令
這是從書上看來的,主要 是要查詢 SQL Server 最花費時間的指令, 用來做效率改善的參考。 SELECT TOP 20 TOTAL_WORKER_TIME,PH.text FROM sys.dm_exec_query_stats AS QS CROSS APPLY sys.dm_exec_sql_text(QS.PLAN_HANDLE) AS PH ORDER BY 1 DESC; GO
2010年7月6日 星期二
[C#] 自動登入/控制網頁
這是工作上所要用到的一個功能,第一次實做 IE 的自動登入。
string IE_ID = "guest"; //帳號部分
string IE_PW = "qkqk"; //密碼
mshtml.IHTMLDocument2 IE__DOC; //網頁內容
mshtml.HTMLInputElementClass IE_INPUT; //輸入 Tag
SHDocVw.InternetExplorer IE_AUTO_OPEN_IE = null; //IE 視窗
object missing = null; //開起IE navigate用
if (IE_AUTO_OPEN_IE == null)
{
IE_AUTO_OPEN_IE = new SHDocVw.InternetExplorer();
IE_AUTO_OPEN_IE.Visible = true;
IE_AUTO_OPEN_IE.Navigate("http://www.kimo.com.tw", ref missing, ref missing, ref missing, ref missing);
while (IE_AUTO_OPEN_IE.StatusText.IndexOf("完成") == -1)
{
Application.DoEvents();
}
//開始處理
IE__DOC = (mshtml.IHTMLDocument2)IE_AUTO_OPEN_IE.Document;
foreach (mshtml.IHTMLElement MyElement in IE__DOC.all)
{
if (MyElement.tagName == "INPUT")
{
//轉型
IE_INPUT = ((mshtml.HTMLInputElementClass)MyElement);
//帳號
if (IE_INPUT.name == "UserID")
{
IE_INPUT.value = IE_ID;
}
//密碼
if (IE_INPUT.name == "UserPass")
{
IE_INPUT.value = IE_PW;
}
//登入
if (IE_INPUT.value == "Login")
{
IE_INPUT.click();
}
}
}
while (true)
{
if (IE_AUTO_OPEN_IE.Busy == false && IE_AUTO_OPEN_IE.ReadyState == SHDocVw.tagREADYSTATE.READYSTATE_COMPLETE)
{
break;
}
System.Threading.Thread.Sleep(500);
}
if (true)
{
Application.DoEvents();
IE__DOC = (mshtml.IHTMLDocument2)IE_AUTO_OPEN_IE.Document;
foreach (mshtml.IHTMLElement MyElement in IE__DOC.all)
{
if (MyElement.tagName == "INPUT")
{
//轉型
IE_INPUT = ((mshtml.HTMLInputElementClass)MyElement);
if (IE_INPUT.name == "UnitNo")
{
IE_INPUT.value = textBox3.Text.Trim();
}
}
}
2010年6月22日 星期二
[Other] 嚇一跳阿
昨天內人打了一通電話過來,說是 帶小朋友去醫院 看醫生,可能是醫院生意太好了 ..
所以要等很久。。
於是跑到附近 M 用餐(主要是為了 萬惡的溜滑梯),突然 一下子小孩不見了!!
各個地方都找過了,就是找不到 寶貝兒子。。
最後經過附近的店家告知,有個小孩子過馬路 跑回去醫院了。
!!天阿!!
見到面的第一句話是 『媽媽 我在等你喔』 。 真是嚇死人了。
2010年6月17日 星期四
[C#] DateTime 加一天, String to DateTime
--
private string GET_ADD1_DAY(string DT)
{
DateTime BF = new DateTime();
BF = (DateTime.Parse(DT)).AddDays(1);
string NEW_DATE = BF.ToString("yyyy-MM-dd");
return NEW_DATE;
}
--
--
2010年6月15日 星期二
[C# ASP.NET] LABEL To PH
lb.Text = "請正確輸入日期格式 Example:2010-05-01";
lb.Font.Size = 20;
lb.ForeColor = System.Drawing.Color.Yellow;
lb.BackColor = System.Drawing.Color.Black;
PlaceHolder1.Controls.Add(lb);
2010年6月11日 星期五
[C# ASP.NET] DataTABLE TO CSV
2.)CLASS
public static class DataTABLE_TO_CSV_CLASS
{
public static string DT_TO_CSV(this DataTable dt)
{
StringBuilder sb = new StringBuilder();
for (int x = 0; x < dt.Columns.Count; x++)
{
if (x != 0)
sb.Append(",");
sb.Append(dt.Columns[x].ColumnName);
}
sb.AppendLine();
foreach (DataRow row in dt.Rows)
{
for (int x = 0; x < dt.Columns.Count; x++)
{
if (x != 0)
sb.Append(",");
sb.Append(row[dt.Columns[x]].ToString());
}
sb.AppendLine();
}
return sb.ToString();
}
}
使用時:
//將 Datatable 存成 CSV
string ds_string = DataTABLE_TO_CSV_CLASS.DT_TO_CSV(ds._DT_ReturnValue);
ds_string = ds_string.Replace("\r\n","\n").Trim();
string[] ds_string_array=ds_string.Split(new char[] { '\n'});
File.WriteAllLines(System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory).ToString()+"\\"+txtStartDate.Text+"-OQC.csv", ds_string_array, Encoding.Default);
[C# ASP.NET] Web DataTABLE to TABLE
{
Table tb = new Table(); //主表
TableRow tr = null; //列
TableCell tc = null; //行
Label lb = null;
HyperLink lk = null;
//=========================================================設定 Table 參數
tb = new Table();
//tb.Width = 1000;
tb.Font.Name = "Courier New";
tb.CellPadding = 1;
tb.CellSpacing = 1;
tb.BorderStyle = BorderStyle.Solid;
tb.BorderWidth = 0;
tb.BorderColor = System.Drawing.Color.FromName("#C0C0C0");
//tb.GridLines = GridLines.Both;
//=========================================================設定 標題
tr = new TableRow();
lb = new Label();
tb.Rows.Add(tr);
tc = new TableCell();
tc.Attributes.Add("Style", "border-width:1px;border-color:#006699;border-style:solid");
tc.ColumnSpan = ds.Columns.Count + 1; //合併儲存格
tc.HorizontalAlign = HorizontalAlign.Center;
//lb.Width = ds.Columns.Count * 70 + 140;
lb.Text = "Raw Data";
lb.BackColor = System.Drawing.Color.FromName("#17375D");
lb.ForeColor = System.Drawing.Color.FromName("#FFFFFF");
tc.BackColor = lb.BackColor;
tc.Controls.Add(lb);
tr.Cells.Add(tc);
//=========================================================
tr = new TableRow();
for (int i = 0; i < ds.Columns.Count; i++)
{
lb = new Label();
tb.Rows.Add(tr);
tc = new TableCell();
tc.Attributes.Add("Style", "border-width:1px;border-color:#006699;border-style:solid");
tc.HorizontalAlign = HorizontalAlign.Center;
//lb.Width = ds.Columns.Count * 70 + 140;
lb.Text = ds.Columns[i].ColumnName;
lb.BackColor = System.Drawing.Color.FromName("#F5FF8E");
lb.ForeColor = System.Drawing.Color.FromName("#000000");
tc.BackColor = lb.BackColor;
tc.Controls.Add(lb);
tr.Cells.Add(tc);
}
//========================================================
for (int j = 0; j < ds.Rows.Count; j++)
{
if (cmbFunction.SelectedValue != "SELECT")
{
if (cmbFunction.SelectedValue == ds.Rows[j].ItemArray[3].ToString())
{
tr = new TableRow();
tb.Rows.Add(tr);
for (int i = 0; i < ds.Columns.Count; i++)
{
lb = new Label();
tc = new TableCell();
tc.Attributes.Add("Style", "border-width:1px;border-color:#006699;border-style:solid");
tc.HorizontalAlign = HorizontalAlign.Center;
//lb.Width = ds.Columns.Count * 70 + 140;
lb.Text = ds.Rows[j].ItemArray[i].ToString();
lb.BackColor = System.Drawing.Color.FromName("#FFFFFF");
lb.ForeColor = System.Drawing.Color.FromName("#000000");
tc.BackColor = lb.BackColor;
tc.Controls.Add(lb);
tr.Cells.Add(tc);
}
}
}
else
{
tr = new TableRow();
tb.Rows.Add(tr);
for (int i = 0; i < ds.Columns.Count; i++)
{
if (ds.Columns[i].ColumnName == "FAIL" & int.Parse(ds.Rows[j].ItemArray[7].ToString ())>0)
{
lk = new HyperLink();
tc = new TableCell();
tc.Attributes.Add("Style", "border-width:1px;border-color:#006699;border-style:solid");
tc.HorizontalAlign = HorizontalAlign.Center;
lk.Text = ds.Rows[j].ItemArray[i].ToString();
lk.NavigateUrl = "DefectDetail.aspx?date=" + ds.Rows[j].ItemArray[4].ToString() + "&" +
"fc=" + ds.Rows[j].ItemArray[3].ToString() + "&" +
"model=" + ds.Rows[j].ItemArray[2].ToString();
lk.Target = "_blank";
lk.BackColor = System.Drawing.Color.FromName("#FFFFFF");
lk.ForeColor = System.Drawing.Color.FromName("#0000FF");
tc.BackColor = lk.BackColor;
tc.Controls.Add(lk);
tr.Cells.Add(tc);
}
else
{
lb = new Label();
tc = new TableCell();
tc.Attributes.Add("Style", "border-width:1px;border-color:#006699;border-style:solid");
tc.HorizontalAlign = HorizontalAlign.Center;
//lb.Width = ds.Columns.Count * 70 + 140;
lb.Text = ds.Rows[j].ItemArray[i].ToString();
lb.BackColor = System.Drawing.Color.FromName("#FFFFFF");
lb.ForeColor = System.Drawing.Color.FromName("#000000");
tc.BackColor = lb.BackColor;
tc.Controls.Add(lb);
tr.Cells.Add(tc);
}
}
}
}
return tb;
}
2010年3月30日 星期二
[Oracle] 資料表的關連方式
A.SERIAL_NUMBER "Barcode",
B.PART_NO "Model Name",
C.PDLINE_NAME "Line",
C.PDLINE_DESC "Line DESC",
A.STAGE_ID,
A.PROCESS_ID,
A.TERMINAL_ID,
A.OUT_PROCESS_TIME,
A.EMP_ID
FROM G_SN_TRAVEL A,
SYS_PART B,
SYS_PDLINE C
WHERE
A.MODEL_ID=B.PART_ID(+) AND
A.PDLINE_ID=C.PDLINE_ID(+) AND
TRUNC(A.OUT_PROCESS_TIME)=TO_DATE('2008-12-29','yyyy-mm-dd')
ORDER BY OUT_PROCESS_TIME
2010年3月24日 星期三
[C#] 動態產生物件 RadioButton 後,自訂事件
{
string[] KK = new string[3];
KK[0] = "Yes";
KK[1] = "No";
KK[2] = "Maybe";
System.Windows.Forms.RadioButton[] radioButtons = new System.Windows.Forms.RadioButton[3];
for (int i = 0; i < 3; ++i)
{
radioButtons[i] = new RadioButton();
radioButtons[i].Text = KK[i];
radioButtons[i].Location = new System.Drawing.Point(10, 10 + i * 20);
this.Controls.Add(radioButtons[i]);
}
radioButtons[0].Click += new System.EventHandler(this.OhYa_Click1);
radioButtons[1].Click += new System.EventHandler(this.OhYa_Click2);
radioButtons[2].Click += new System.EventHandler(this.OhYa_Click3);
}
private void OhYa_Click1(object sender, EventArgs e)
{
MessageBox.Show("1");
}
private void OhYa_Click2(object sender, EventArgs e)
{
MessageBox.Show("2");
}
private void OhYa_Click3(object sender, EventArgs e)
{
MessageBox.Show("3");
}
[C#] TreeView 用法
node.Nodes.Add("1");
node.Nodes.Add("2");
node.Nodes.Add("3");
SO,
[C#] 將Datatable 與 DataGridView 綁在一起
dt.Columns.Add(new DataColumn("Item", typeof(string)));
dt.Columns.Add(new DataColumn("Color", typeof(string)));
dt.Rows.Add(new string[] { "table", "brown" });
dt.Rows.Add(new string[] { "chair", "white" });
dataGridView1.DataSource = dt;
操作的部分
DataView view = new DataView(this._Table);
view.RowFilter = "Item='" + "table" + "'";
DataTable table = view.ToTable();
dataGridView3.DataSource = table;
2010年3月2日 星期二
[Oracle] 日期的比對、搜尋 語法
試了好久,跟 SQL 真的差好多阿!!
SELECT * FROM 資料表
WHERE TRUNC(欄位名)=(SELECT TO_DATE('2008-9-20', 'yyyy-mm-dd') from dual)
2010年2月26日 星期五
[C#] 方法的使用
private void Form1_Load(object sender, EventArgs e)private void CALL_BG()
{
CALL_BG();
}
{
//這裡寫上要做的事情第二種 呼叫方法同時將值 傳給副程式執行
}
第三種 傳入 、處理後 傳出private void Form1_Load(object sender, EventArgs e)
{
string aa = "abc";
CALL_BG(aa);
}
private void CALL_BG(string aa)
{
aa = aa + "12345";
MessageBox.Show(aa);
}
private void Form1_Load(object sender, EventArgs e)
{
string aa = "abc";
string bb=CALL_BG(aa);
MessageBox.Show(bb);
}
private string CALL_BG(string aa)
{
string CALL_BG_FB = aa + "12345";
return CALL_BG_FB;
}
2010年2月19日 星期五
2010年2月11日 星期四
2010年2月3日 星期三
[C#] FTP 下載單一檔案(WebClient)
目前自己測試 16MB 單檔是沒有問題。
using System.Net;
using System.IO;
----------------------------------
WebClient RMS = new WebClient();
RMS.Credentials = new NetworkCredential("ubuntu", "zzzzzz");
string FILE_NAME = "新增文字文件.txt";
byte[] fildData = RMS.DownloadData("ftp://10.1.1.195/tools/"+FILE_NAME);
FileStream file = File.Create(@"C:\Users\kuoming\Desktop\" + FILE_NAME);
file.Write(fildData, 0, fildData.Length);
file.Close();
listBox1.Items.Add(FILE_NAME);
完整程式碼:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.IO;
namespace _20100203_FTP_Client_test
{
public partial class Form1 : Form
{
string FILE_NAME = "";
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.Text= "目前目錄 為 10.1.1.195 / TOOLS ";
button1.Text = "Download";
listBox1.Items.AddRange(GetFileList());
listBox1.Sorted = true;
}
private void GET_FILE()
{
try
{
WebClient RMS = new WebClient();
RMS.Credentials = new NetworkCredential("ubuntu", "zzzzzz");
byte[] fildData = RMS.DownloadData("ftp://10.1.1.195/tools/" + FILE_NAME);
FileStream file = File.Create(@"C:\Users\kuoming\Desktop\" + FILE_NAME);
file.Write(fildData, 0, fildData.Length);
file.Close();
MessageBox.Show("OK");
}
catch (Exception QQ)
{
MessageBox.Show("目前不支援目錄下載...");
}
}
public string[] GetFileList()
{
string[] downloadFiles;
StringBuilder result = new StringBuilder();
FtpWebRequest reqFTP;
try
{
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + "10.1.1.195" + "/tools/"));
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential("ubuntu", "zzzzzz");
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
WebResponse response = reqFTP.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string line = reader.ReadLine();
while (line != null)
{
result.Append(line);
result.Append("\n");
line = reader.ReadLine();
}
result.Remove(result.ToString().LastIndexOf('\n'), 1);
reader.Close();
response.Close();
return result.ToString().Split('\n');
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
downloadFiles = null;
return downloadFiles;
}
}
private void button1_Click(object sender, EventArgs e)
{
FILE_NAME = listBox1.SelectedItem.ToString();
GET_FILE();
}
}
}
2010年1月26日 星期二
[Other] Firefox Javascript 可以只顯示文字的語法
可以存成『我的最愛』連結,當按下連結就可以套用了。
javascript:(function(){var%20newSS,%20styles='*%20{%20background:%20white%20!%20important;%20color:%20black%20!important;%20line-height:%20160%%20!important;%20font-size:%2018pt%20!important%20}%20:link,%20:link%20*%20{%20color:%20#0000EE%20!important%20}%20:visited,%20:visited%20*%20{%20color:%20#551A8B%20!important%20}';%20if(document.createStyleSheet)%20{%20document.createStyleSheet(%22javascript:'%22+styles+%22'%22);%20}%20else%20{%20newSS=document.createElement('link');%20newSS.rel='stylesheet';%20newSS.href='data:text/css,'+escape(styles);%20document.getElementsByTagName(%22head%22)[0].appendChild(newSS);%20}%20})();
原本樣式
2010年1月23日 星期六
[C#] Listview
Listview 是很好用,之前一直都用 Listbox 來做,最近才開始接觸。。
1: listView1.Clear(); //清空 listview
2: listView1.View = View.Details; //設定模式為 清單模式
3: listView1.GridLines = true; //繪製 格線
4: listView1.FullRowSelect=true; //ture 一次選擇一行 ; false 一次選一格
5: listView1.MultiSelect = false; //不可選多行
6: listView1.Scrollable = true; //需要的時候 自動顯示 滾動條
7: listView1.HeaderStyle = ColumnHeaderStyle.Nonclickable; //設定點選 標題項目不動作
8: listView1.Columns.Add("機種",150,HorizontalAlignment.Left); //設定標題,寬度,位置
9: listView1.Columns.Add("55階",180,HorizontalAlignment.Left);
10:
11: for (int i = 0; i < 1; i++)
12: {
13: ListViewItem LM = new ListViewItem(comboBox1.Text.ToString());
14:
15: LM.SubItems.Add("1");
16:
17: listView1.Items.AddRange(new ListViewItem[] { LM });
18: }
排序的部分(CLASS)
1: class ListViewItemComparer : IComparer
2: {
3: private int col;
4: public ListViewItemComparer()
5: {
6: col = 0;
7: }
8: public ListViewItemComparer(int column)
9: {
10: col = column;
11: }
12: public int Compare(object x, object y)
13: {
14: return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
15: }
16: }
用法
1: //排序 Listiew 4
2: this.listView4.ListViewItemSorter = new ListViewItemComparer(listView4.Columns[5].Index);
3: listView4.Sort();