banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Messages posted by: 4hfoo  XML
Profile for 4hfoo Messages posted by 4hfoo [ number of posts not being displayed on this page: 3 ]
 
Bạn thử làm theo hướng dẫn trong trang web sau để xóa nó bằng tay xem có hiệu quả không ...
http://www.xp-vista.com/spyware-removal/ieav-ieavexe-removal-instructions

Ngoài ra bạn có thể kiếm phần mềm diệt spyware, ví dụ Spyware Doctor, Spybot S&D về để quét và diệt.

Thân
Bạn tham khảo đoạn code của mình, hi vọng sẽ giúp bạn giải quyết vấn đề.

Trong đoạn code này, dataGrid1 có data source là DataTable.
Mình dùng event CurrentCellChanged của datagrid.
Khi sự kiện này xảy ra (có nghĩa là người dùng di chuyển đến một ô mới), mình sẽ kiểm tra người dùng đã nhập một số vào vị trí ô cũ (ô vừa ngay trước đó).
- Nếu người dùng đã nhập một số thì OK.
- Nếu người dùng đã không nhập số, mình sẽ quay lại vị trí đó để người dùng có thể nhập số vào.

Code:
int oRow = -1, oCol = -1;
private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e)
{
DataGrid dg = (DataGrid)sender;
DataGridCell dgcell = dg.CurrentCell;
if (oRow == -1)
{
oRow = dgcell.RowNumber;
oCol = dgcell.ColumnNumber;
return;
}
DataTable tbl = (DataTable)dg.DataSource;
int i = 0;
try
{
string s = tbl.Rows[oRow][oCol].ToString();
i = Convert.ToInt32(s); // thử chuyển đổi giá trị nhập sang số
oRow = dgcell.RowNumber; //cập nhật vị trí mới
oCol = dgcell.ColumnNumber;
}
catch (Exception) // chuyển thành số không được
{
dg.CurrentCell = new DataGridCell(oRow, oCol); // quay lại vị trí cũ
}
}
1/ Bạn thử dùng lệnh CDate để chuyển dữ liệu thành kiểu ngày tháng, trước khi gán vào dũ liệu:

Code:
sNgaysinh = cboNgay.Text &"/" & cboThang.Text & "/" & cboNam.Text
Fields("ngaysinh") = CDate(sNgaysinh)


2/ Để khắc phục tình trạng kết quả tìm kiếm chỉ trả về kết quả đầu tiên, bạn có thể có một biến tạm (một mảng) để lưu kết quả tìm kiếm. Khi kiếm được giá trị đúng, bạn lưu vào mảng này và tiếp tục, chứ không nên dùng lệnh Exit do để thoát khỏi vòng lặp.

Thân
Tiếc là mình hông có tài liệu tiếng Việt.

Vài ý chính để bảo mật web service:
- Dùng authentication và authorization để chỉ những người được cho phép mới gọi web service được.
- Dùng SSL để tạo kênh bảo mật (secure channel), channel này sẽ bao bên ngoài các message của web service.
- Dùng WS-Security
- ...

Nếu bạn dùng .NET để tạo web service thì có thể tham khảo cái này
http://www.15seconds.com/issue/020312.htm

Ngoài ra, bạn có thể tìm hiểu về WS-Security, một chuẩn về bảo mật web service dùng digital certificate.
http://www.oracle.com/technology/tech/java/newsletter/articles/wsaudit/ws_audit.html
http://msdn.microsoft.com/en-us/library/ms977327.aspx
http://www.onjava.com/pub/a/onjava/2005/03/30/wssecurity2.html?page=1
...

Vài ý kiến nhỏ, hi vọng có thể giúp ích cho bạn ...
bạn dùng ngôn ngữ lập trình nào vậy?
cái này thì đơn giản lắm, bạn chỉ cần tạo một chuối là kết hợp từ dữ liệu của 3 combo box lại.
Sau đó dùng giá trị chuỗi đó cho field ngaysinh.

Ví dụ:

Code:
sNgaysinh = cboNgay.Text + "/" + cboThang.Text + "/" + cboNam.Text
(tùy định dạng ngày tháng trên máy của bạn, có thể dùng '/' hay '-' ...)
...


Như bạn babywolf đã nói, mình phải biết bạn dùng ngôn ngữ lập trình nào thì mới có hướng dẫn cụ thể được.
Thường các ngôn ngữ lập trình (Java, .NET, javascript ...) có những phần mềm gọi là obfuscator tương ứng, dùng để biến đổi mã chương trình, sao cho nó vẫn hoạt động bình thường, nhưng sẽ làm cho việc xem code hoặc reverse engineer khó khăn hơn.
Có thể FPT kiểm tra MAC address của modem, chỉ modem nào đăng ký với FPT thì mới dùng được.
Bạn thử gọi điện lên hỏi xem sao, và hỏi xem có thể chuyển sang đăng ký modem của VNPT không...
Thân
bạn kiểm tra lại xem đã cài đặt font đúng cho cái datacombo chưa ...
Không biết bạn dùng lệnh 'net use' trong service của bạn để tạo mapping thì có được hông ...
Delphi đúng là mạnh và code nhanh gọn, nhưng mức độ phổ biến theo mình nghĩ thì Java và .NET sẽ chiếm ưu thế hơn (một thằng là M$, 1 thằng là open-source).
Delphi hồi đó ăn đứt VB6.0, M$ chơi ko lại nên mới dụ ông Anders Hejlsberg (một trong những người phát minh ra Delphi) gia nhập và thiết kế cho C# và .NET. Bởi vậy nên .NET và M$ mới khá lên, VB.NET là một bước nhảy vọt so với VB6.

Hiện tại đa số các ứng dụng trong doanh nghiệp, ngân hàng, người ta dùng .NET và Java nhiều, lý do có thể là thời gian phát triển ứng dụng nhanh do có nhiều thư viện hỗ trợ sẵn.

Những ngôn ngữ như Python, Ruby ... là ngôn ngữ mới sau này, mình nghĩ sẽ cần thêm nhiều thời gian để trở nên phổ biến ...

Native app và system coding đâu có thể nào chết được smilie Có điều số lượng người theo sẽ ko bằng so với những ngôn ngữ cấp cao. Chắc tại vì code trâu, khó mà lương hổng biết có khá hơn không smilie
@gacon_chip:

1/ Cái exit sub bạn làm đúng rồi

gacon_chip wrote:

2/ Về việc tìm kiếm, mình có đề nghị này.
Trước khi tìm kiếm (so sánh chuỗi), bạn có thể tạo một query tạm. Query này sẽ kết hợp 2 field socmnd và hoten lại.
Sau khi chạy query rồi, bạn kiểm tra giá trị nhập vào có nằm trong field kết hợp này không.
Như vậy thì bạn chỉ cần kiếm 1 lần là ok.
 

Cái này bạn giúp mình code với.
 


2/ Cái phần này hôm qua đầu óc lu bu nên chỉ bạn cách tầm bậy smilie
Nếu bạn chỉ muốn so sánh field socmnd và hoten thì có thể sửa code của bạn như sau:

Code:
adoCMND.Recordset.MoveFirst
Do while Not adoCMND.Recordset.EOF
If adoCMND.Recordset.Fields("socmnd") = ch [color=green]OR adoCMND.Recordset.Fields("hoten") = ch[/color] Then 'để tìm theo hoten mình lại thay socmnd bằng hoten,còn cả hai mình chưa làm được.
thongbao = True
DTgridtimkiem.SelBookmarks.Add (DTgridtimkiem.Bookmark)
Exit do
End if
adoCMND.Recordset.MoveNext


Tuy nhiên, bạn có thể thay đổi, không dùng so sánh =, vì nếu vậy người dùng phải nhập đúng 100% thì mới tìm thấy kết quả.
Mới bắt đầu thì bạn có thể học Java, sau đó thì chuyển sang C và C++ ...
Nếu biết Java, bạn có thể chuyển sang C# khá nhanh, vì cách viết ct và câu lệnh của C# rất giống với Java.

Thân
Chào bạn,

1/ Để sửa lỗi treo máy khi người dùng chưa nhập dũ liệu mà đã nhấn nút tìm kiếm, bạn phải thêm phần

Code:
exit sub


ngay sau khi hiển thị Msgbox. Nếu không, mặc dù đã hiển thị rồi, chương trình vẫn chạy tiếp.

2/ Về việc tìm kiếm, mình có đề nghị này.
Trước khi tìm kiếm (so sánh chuỗi), bạn có thể tạo một query tạm. Query này sẽ kết hợp 2 field socmnd hoten lại.
Sau khi chạy query rồi, bạn kiểm tra giá trị nhập vào có nằm trong field kết hợp này không.
Như vậy thì bạn chỉ cần kiếm 1 lần là ok.

Thân
Mình có một số ý kiến sau hi vọng có thể giúp bạn:

1- Việc hiện giá trị hiển thị bị đan xen với các giá trị sai, bạn có thể viết lại chương trình, sao cho khi đã nhận đầy đủ giá trị Latitude và Longitude thì mới chuyển đổi giá trị và hiển thị giá trị đó lên màn hình.

2- Việc ghi dữ liệu vào file, hiện tại mỗi lần bạn nhận được thì liền ghi giá trị vào file (mở file, ghi dữ liệu, rồi đóng file -> việc đóng mở file liên tục sẽ làm hao tốn tài nguyên). Bạn có thể mở file duy nhất một lần, sau đó cứ liên tục ghi vào file, sau đó trước khi bạn đóng chương trình hay cần lưu file thì bạn đóng nó lại.

Một cách khác là bạn có thể lưu dữ liệu tạm vào một mảng, khi đã tương đối nhiều thì mới bắt đầu ghi vào file. Tuy nhiên bạn cần chú ý tới điểm là trong khi bạn lưu dữ liệu vào file, dữ liệu từ cổng COM vẫn được truyền vào. Bạn cần cẩn thận trong việc xử lý để tránh dữ liệu bị đè lên nhau.

3- Nếu hiển thị dữ liệu trên màn hình bị nhấp nháy vì việc cập nhật quá nhanh, bạn có thể kiếm tài liệu về double-buffering để tìm hiểu thêm.

Thân

//doi ra Degree cho Longtitude va Latitude
//Latitude 1045.8067 ddmm.mmmm
CString dd = Latitude.Left(1);
CString mm = Latitude.Right(Latitude.GetLength()-1);
double e = _wtof(dd); //đổi giá trị dd thành số thực tại đây:
double f = _wtof(Latitude.Left(1))+ _wtof(Latitude.Right(Latitude.GetLength()-1))/60;
double g = e + f; // tính tổng 2 cái
//bỏ cái này - Latitude.Format(_T("%s%f"),dd,f);
Latitude.Format(_T("%f"),g); //hiển thị kết quả
//...
 


Bạn có thể dùng lệnh cũ bạn đã sử dụng, thử xem được hông smilie
Code:
Latitude.Format(_T("%f"),g);


Thân

//doi ra Degree cho Longtitude va Latitude
//Latitude 1045.8067 ddmm.mmmm
CString dd = Latitude.Left(1);
CString mm = Latitude.Right(Latitude.GetLength()-1);
double e = _wtof(dd); //đổi giá trị dd thành số thực tại đây:
double f = _wtof(Latitude.Left(1))+ _wtof(Latitude.Right(Latitude.GetLength()-1))/60;
double g = e + f; // tính tổng 2 cái
//bỏ cái này - Latitude.Format(_T("%s%f"),dd,f);
// đổi giá trị tổng g thành chuỗi rồi hiển thị lên màn hình...
//Longtude 10640.0508 dddmm.mmmm
dd = Longitude.Left(2);
mm = Longitude.Right(Latitude.GetLength()-2);
double g = _wtof(Latitude.Left(2))+_wtof(Latitude.Right(Latitude.GetLength()-2))/60;
Longitude.Format(_T("%s%f"),dd,g);
 


Bạn xem phần chú thích của mình để biết bị sai chỗ nào.
Bạn cần sửa tương trị cho phần longtitude.

Thân
Bạn thử thay đổi tốc độ cổng nối tiếp xem nó có nhanh hơn không (baud rate cho lên 115200)
Còn lệnh AT để chuyển GSM modem lên cấp server chắc là hổng có smilie
Bạn có thể download chương trình Sisulizer về xài thử
http://www.sisulizer.com/
Đây là một chương trình khá mạnh, dùng để bản địa hóa cho nhiều ngôn ngữ.
Bạn dial từ modem nào vậy? Khi bạn dial thì bên phía bên kia có xuất hiện tín hiệu rung chuông hông? (RING)
Bạn thử thiết lập chế độ tự động trả lời sau bao nhiêu tiếng chuông (ví dụ 3 lần), khi đó thì không cần dùng lệnh ATA.
Bạn có thể dùng lệnh AT (AT commands - kiếm trên Google) để gọi từ máy này đến máy kia thông qua modem. (lệnh ATD - dial)
Bên phía máy nhận, bạn có thể cài đặt chế độ tự động trả lời sau bao nhiêu lần đổ chuông.
Khi 2 bên đã nối được rồi, bạn có thể gửi dữ liệu bình thường.

Bạn có thể dùng trình Hyper Terminal và gõ lệnh AT để test trước.
Khi đã hiểu rõ về cách thức hoạt động, bạn có thể tiến hành lập trình.
 
Go to Page:  First Page 1 2 3

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|