USE [OSStockDataSys] GO ALTER DATABASE [OSStockDataSys] SET RECOVERY SIMPLE WITH NO_WAIT DBCC SHRINKFILE(OSStockDataSys_log, 1) ALTER DATABASE [OSStockDataSys] SET RECOVERY FULL WITH NO_WAIT GO
SmileLight
2014年3月7日 星期五
2011年5月25日 星期三
用Python實作簡單的網路通訊
這次就來講解一下用 Python 來實作 TCP/IP 的通訊
程式碼不長, 說明全寫在註解中
Server Side Source Code
可以直接執行, 先執行 Server, 再執行 Client
程式碼不長, 說明全寫在註解中
Server Side Source Code
# -*- coding: utf-8 -*-
import socket
import threading
HOST = ''
# 設定 Server Port
PORT = 50008
# 紀錄 Client 傳送資料的 Thread
threads = []
# 紀錄 Client 連線資訊
socketConn = {}
global s
# Receive Data From Client
def thread_socket_conn_recv(connObj, addrObj):
while True:
# 等待接收 Client 傳送的資料
data = connObj.recv(1024)
if not data: break
msg = addrObj[0] + ':' + data
print msg
# Send To All Client This Message
for key in socketConn:
socketConn[key].send(msg)
# Receive Client Connection
def thread_socket_conn_accept(socketObj):
while True:
# 等待接收 Client 連線需求
conn, addr = socketObj.accept()
print "Connected ", addr
# 透過 Thread 收接 Client 傳送資料
t = threading.Thread(target=thread_socket_conn_recv, args=(conn, addr))
t.start()
threads.append (t)
socketConn[addr] = conn
# Send To All Client This New Client Connect Alert
for key in socketConn:
msg = 'Welcome ' + addr[0]
socketConn[key].send(msg)
def main():
global s
# socket.socket 有二個參數
# 第一個參數定義 socket 是屬於 Internet 還是 local
# 分別為 socket.AF_INET(預設), socket.AF_INET6 與 socket.AF_UNIX(本機)
# 第二個參數定義資料流通常只用 socket.SOCK_STREAM 或 socket.SOCK_DGRAM
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 挷定 address 跟 port
s.bind((HOST, PORT))
# 設定 socket 最大連線佇列(Queue)數, 數值上限是與系統主機有關, 通常為 5
s.listen(0)
# 透過 Thread 收接 Client 連線需求
mainT = threading.Thread (target=thread_socket_conn_accept, args=(s,))
mainT.start()
if __name__ == '__main__':
main()
Client Side Source Code# -*- coding: utf-8 -*-
import socket
import threading
# 設定 Server IP
HOST = '127.0.0.1'
# 設定 Server Port
PORT = 50008
global s
def thread_socket_conn_recv(connObj):
while True:
# 等待接收 Server 傳送的資料
data = connObj.recv(1024)
if not data: break
print data
def main():
global s
# socket.socket 有二個參數
# 第一個參數定義 socket 是屬於 Internet 還是 local
# 分別為 socket.AF_INET(預設), socket.AF_INET6 與 socket.AF_UNIX(本機)
# 第二個參數定義資料流通常只用 socket.SOCK_STREAM 或 socket.SOCK_DGRAM
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 向 Server 請求連線
s.connect((HOST, PORT))
# 透過 Thread 收接 Server 傳送資料
recvT = threading.Thread (target=thread_socket_conn_recv, args=(s,))
recvT.start()
if __name__ == '__main__':
main()
可以直接執行, 先執行 Server, 再執行 Client
2011年5月23日 星期一
C 語言隨機產生浮點數值
C 語言的 Rand() 所產生的是整數值, 想產生浮點數就得自己寫了
隨著 compiler 的不同而所產生出來的最大值(RAND_MAX)也有所變化
通常常見的值為
215-1=32767
而另一個常見的值為
231-1=2147483647
寫法可參考以下 Source Code
參考網站
casting Rand () to generate double, float
隨著 compiler 的不同而所產生出來的最大值(RAND_MAX)也有所變化
通常常見的值為
215-1=32767
而另一個常見的值為
231-1=2147483647
寫法可參考以下 Source Code
/************************************************************************/
/* 隨機產生亂數 (Double) */
/************************************************************************/
double randDouble(double lower, double upper)
{
int range; /* 想要產生亂數的區間值 */
double randomValue; /* 記錄隨機產生的數值 */
range = upper - lower;
randomValue = (double) rand(); /* 取得隨機值 */
randomValue = randomValue / RAND_MAX; /* 轉換成介於 0 與 1 之間 */
randomValue = randomValue * range; /* 調整至要產生的區間值 */
randomValue = randomValue + lower; /* 調整至正確對應的值 */
return randomValue;
}
參考網站
casting Rand () to generate double, float
C# 讀取 CSV 檔
直接將 Source Code 貼出來給你們參考
做法跟使用 ADO 方式一樣
說明請參考 Source Code 的註解就會明白了
不過當你的系統是 64 位元時, 會發生以下問題
因為Jet不支援 64 位元, 所以必需編譯成 32 位元
請修改建置-->平台目標-->選擇 x86
再執行程式
做法跟使用 ADO 方式一樣
說明請參考 Source Code 的註解就會明白了
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.OleDb;
namespace LoadCSVDemo
{
class Program
{
static void Main(string[] args)
{
OleDbConnection conn = null;
OleDbCommand comm = null;
OleDbDataReader dr = null;
string sql = "select * from [TestData.csv]"; // TestData.csv <-- 想要載入的 CSV 檔檔名
// Data Source 的參數表示想載入的 CSV 檔的路徑位置
// Extended Properties 中
// --> Text 表示要載入的檔案屬性屬於文字檔
// --> HDR = NO 表示第一行的資料非標頭欄位
// --> HDR = YES 表示第一行的資料為標頭欄位
string connectString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\;Extended Properties='Text;HDR=NO'";
try
{
conn = new OleDbConnection(connectString);
conn.Open();
comm = conn.CreateCommand();
comm.CommandText = sql;
dr = comm.ExecuteReader();
while (dr.Read())
{
Console.WriteLine("{0}\t\t{1}\t\t{2}", dr[0], dr[1], dr[0]);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
if (conn != null && conn.State == ConnectionState.Open)
conn.Close();
}
Console.Read();
}
}
}
不過當你的系統是 64 位元時, 會發生以下問題
因為Jet不支援 64 位元, 所以必需編譯成 32 位元
請修改建置-->平台目標-->選擇 x86
再執行程式
2011年5月18日 星期三
C# 產生不重覆的隨機數值
要產生隨機而不重覆的數值可以參考以下語法
參考網站 : 不同的Random物件給予不同的亂數種子
... Random Counter = new Random(Guid.NewGuid().GetHashCode()); ...
參考網站 : 不同的Random物件給予不同的亂數種子
2011年3月23日 星期三
Spring MVC View 中文亂碼問題
最近在學習 Spring MVC 的過程中, 發現前端顯示中文會亂碼,
後來找到了解決的方式,
1. 就是在 web.xml 檔中, 新增 filter 機制
2. JSP 網頁也必須設定 contentType
<%@page contentType="text/html; charset=UTF-8" %>
這樣子就可以解決中文亂碼的問題!!!
後來找到了解決的方式,
1. 就是在 web.xml 檔中, 新增 filter 機制
... <filter> <filter-name>SetCharacterEncoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>SetCharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ...
2. JSP 網頁也必須設定 contentType
<%@page contentType="text/html; charset=UTF-8" %>
這樣子就可以解決中文亂碼的問題!!!
2011年2月28日 星期一
Linq to Sql 使用類似 NewID 方法
Linq to Sql 本身沒有支援 newid() 方法
不過我們可以透過以下方法達到相同的效果
參考網站 : Linq To Sql 如何替代 newid()
不過我們可以透過以下方法達到相同的效果
...
var obj = from t in ctx.test_T
orderby Guid.NewGuild()
select t
...
參考網站 : Linq To Sql 如何替代 newid()
訂閱:
意見 (Atom)


