 |
|
Hello World Biokeys & void Threading & more Hello World |
|
 |
|
|
 |
 |
|
อุปสรรคของผม มักจะเริ่มต้นด้วย Hello World
และความสำเร็จของผมมันก็จบลงด้วย Hello World เช่นเดียวกัน
VB TO VFP With (BioKey.ocx/เครื่องแสกนลายนิ้วเมือ)
x?
ถ้า VB เขียนแบบนี้ เราจะแปลงเป็น VFP ยังไงครับ
Code (VB.NET)
'ถ้า VB เขียนแบบนี้ เี่ราจะแปลงเป็น VFP ยังไงครับ
Dim fAtemplate As Variant
Dim sTemp As String
Dim strDataSourcePath As String
strDataSourcePath = App.Path
'ติดต่อฐานข้อมูล Access 2000
connFP.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDataSourcePath & "\test.mdb;Persist Security Info=False"
FingerCount = 0 'กำหนดนิ้วเริ่มต้นของนิ้วที่จะเก็บลงไปใน Memory
fpcHandle = ZKFPEngX1.CreateFPCacheDB 'ประกาศให้มีการสร้าง Cache ฐานข้อมูลใน Memory
recFP.Open "select * from fptable", connFP, adOpenKeyset, adLockOptimistic
recFP.MoveFirst
While Not recFP.EOF ' ทำการ Loop ลายนิ้วมือที่เก็บไว้ในฐานข้อมูลมาสร้าง Cache
sTemp = recFP.Fields("fpstring") 'ฐานข้อมูลนิ้วเก็บในตรงนี้
ZKFPEngX1.AddRegTemplateStrToFPCacheDB fpcHandle, FingerCount, sTemp 'เพิ่ม ลายนิ้วมือเข้าไป โดยมี FingerCount เป็นตัวนับนิ้ว และเรียกเข้าในระบบ String ซึ่งอยู่ในตัวแปร sTemp
ReDim Preserve FFingerNames(FingerCount + 1) 'สร้าง Array ของตัวแปร เพื่อเก็บชื่อ ของนิ้ว เอาไว้เรียกมาแสดงตอนแสดงผล
FFingerNames(FingerCount) = recFP.Fields("name") 'เอาข้อมูลเข้า
FingerCount = FingerCount + 1
recFP.MoveNext
Wend
recFP.Close
VFP
*VFP/SQLLite is Better than MS Access.
SET DEFAULT TO "C:\yourWorkFolder"
nTemp = SYS(3)
USE fpTable SHARED IN 0 ALIAS (nTemp + "FingerPrint")
SELECT nTemp
DIMENSION FFingerNames[BiokeyFingerPrint.RECCOUNT()]
lnRecCount = 1 && Thread.Reset()
SCAN
---ZKFPEngX1.AddRegTemplateStrToFPCacheDB(fpcHandle, lnRecCount, nTemp.fpString)
---FFingerNames[lnRecCount] = nTemp.Name
---lnRecCount = lnRecCount + 1
ENDSCAN
USE IN fpTable
Tag : .NET, Web (ASP.NET), Win (Windows App), VB.NET, C#
|
|
 |
 |
 |
 |
Date :
2013-05-11 21:18:31 |
By :
ผ่านมา |
View :
1540 |
Reply :
5 |
|
 |
 |
 |
 |
|
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
C#/VB .NET (ตัวอย่าง/ถูกใช้โดยโปรแกรมเมอร์) ผมเห็นแบบนี้จนชินซ้ำซาก ผมได้แต่เก็บความสงสัยเอาไว้
Code (VB.NET)
Private Sub UpdateText(ByVal s As String)
If Me.txtOutput.InvokeRequired Then
Dim x As New SetTextCallBack(AddressOf ReceivedText)
Me.Invoke(x, New Object() {(Text)})
Else
Me.txtOutput.AppendText(s & vbCrLf)
End If
End Sub
มันไม่มีวิธีอื่่นอีกแล้วหรือที่ดีกว่านี้ ณ. ปัจจุบัน (DateTime.Now.Ticks) และตามสถานะการณ์
|
 |
 |
 |
 |
Date :
2013-05-11 21:30:29 |
By :
ผ่านมา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
#095041 แก้ไขเป็น
VFP
*VFP/SQLLite is Better than MS Access.
SET DEFAULT TO "C:\yourWorkFolder"
nTemp = SYS(3)
USE fpTable SHARED IN 0 ALIAS (nTemp + "FingerPrint")
SELECT nTemp
DIMENSION FFingerNames[nTemp.RECCOUNT()]
lnRecCount = 1 && Thread.Reset()
SCAN
---ZKFPEngX1.AddRegTemplateStrToFPCacheDB(fpcHandle, lnRecCount, nTemp.fpString)
---FFingerNames[lnRecCount] = nTemp.Name
---lnRecCount = lnRecCount + 1
ENDSCAN
USE IN fpTable
|
 |
 |
 |
 |
Date :
2013-05-11 21:44:37 |
By :
ผ่านมา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
#No 2 Thread.Reset()
Code (VB.NET)
Imports System.Threading
Public Class frmThreadDelegate02
Private Delegate Sub DialogCallBack(ByVal msg As String)
Private Delegate Sub ThreadFinishedCallBack()
Private _DialogCallBack As DialogCallBack
Private _DialogCallBack2 As DialogCallBack
Private _threadFinishedCallBack As ThreadFinishedCallBack
Private _IsThreadRunning As Boolean = False
Private _ManualResetEvent As ManualResetEvent
Public Sub New()
InitializeComponent()
_DialogCallBack = New DialogCallBack(AddressOf WriteCountLog)
_DialogCallBack2 = New DialogCallBack(AddressOf WriteStatusLog)
_threadFinishedCallBack = New ThreadFinishedCallBack(AddressOf ThreadFinished)
_ManualResetEvent = New ManualResetEvent(False)
End Sub
Private Sub frmThreadDelegate02_FormClosed(sender As Object, e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
ThreadFinished()
End Sub
Private Sub frmThreadDelegate02_FormClosing(sender As Object, e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
ThreadFinished()
End Sub
Private Sub frmThreadDelegate01_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
CheckForIllegalCrossThreadCalls = False
End Sub
Private Sub btnCounter_Click(sender As System.Object, e As System.EventArgs) Handles btnCounter.Click
If _IsThreadRunning Then
_IsThreadRunning = False
_ManualResetEvent.Set()
btnCounter.Text = "Start/Stop/Pause"
Else
lblCounter.Text = "0"
_IsThreadRunning = True
btnCounter.Text = "Pause/Stop"
_ManualResetEvent.Reset()
ThreadPool.QueueUserWorkItem(New WaitCallback(AddressOf Test_ThreadProc), New Object())
End If
End Sub
Private Sub WriteCountLog(ByVal msg1 As Integer)
lblCounter.Text = msg1
End Sub
Private Sub WriteStatusLog(ByVal msg1 As String)
lblThreadStatus.Text = msg1
End Sub
Private Sub ThreadFinished()
Control.CheckForIllegalCrossThreadCalls = False
btnCounter.Text = "Start/Pause/Stop"
_IsThreadRunning = False
WriteCountLog(0)
WriteStatusLog("Thread Status : Stop")
End Sub
Private Sub Test_ThreadProc(ByVal stateInfo As Object)
lblThreadStatus.Invoke(_DialogCallBack2, New Object() {"Thread Status : Started"})
Try
Dim i As Integer = 0
While (i < 1000001) AndAlso Not _ManualResetEvent.WaitOne(0) 'For Start/Pause/Stop
WriteCountLog(i)
Thread.Sleep(123)
i += 1
End While
Catch exp As Exception
lblThreadStatus.Invoke(_DialogCallBack2, New Object() {"Exception caught:" & exp.Message})
Finally
ThreadFinished()
End Try
End Sub
End Class
|
 |
 |
 |
 |
Date :
2013-05-11 21:46:27 |
By :
ผ่านมา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เสียดาย ผมอายุสั้นไม่ยืนยาว (ไกล้ตายห่าแล้ว)
พึ่งจะ Hello World C++
Code (C#)
#include <iostream>
using namespace std;
// main() is where program execution begins.
int main()
{
cout << "Hello World C++"; //print Hello World C++
return 0;
}
//punctuation = วรรคตอน
//Thus = ดังนั้น
//ManPower = แข็งแรง
|
 |
 |
 |
 |
Date :
2013-05-11 22:04:07 |
By :
ผ่านมา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เชื่อหรือไม่ว่า คนเงินเดือนเป็นแสน (หรือมากกว่า 100,000 บาท/เดือน)
วันฯ หนึ่ง คิด/ทำ อะ ไร อยู่?
---1.
......
--- ไม่มีนอกเหนือจากนี้ (08.00 - 17.00 น.)
------- ตอนนี้ ไม่ใช่เวลาทำงาน
|
 |
 |
 |
 |
Date :
2013-05-11 22:29:33 |
By :
ผ่านมา |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|