Hỏi đáp Lập trình tháng 12
23/12
HOI: tieubao07@yahoo.com
Cac ban lam on giup minh giai bai toan nay, viet theo C. Minh dang can gap,
cam on nhieu nhe'. Bai giai hay thuat toan cung duoc.
Nhap mang 1 chieu
Sap xep theo yeu cau sau:
- Cac phan tu am giam
- Cac phan tu duong tang
- Vi tri cac phan tu duong am khong doi
Vi du: -1 2 -3 1 4 2 -2 3 5
-1 1 -2 2 2 -3 3 4 5
DAP:
letanphuoc@dme.hcmut.edu.vn
Gia su mang cua ban la mang cac so nguyen, co n phan tu
for (int i=0;i<n-1;i++)
for (int j=i+1;j<n;j++)
if (a[i]*a[j]>0)
if (((a[i]>0) && (a[i]>a[j])) || ((a[i]<0) &&
(a[i]<a[j])))
{
int tmp;
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
DAP2:
victoriay@freesurf.fr
Giải quyết vấn đề này cũng rất đơn giản. Bạn viết như sau:
for(i=0;i<max-1;i++)
for(j=i+1;i<max;j++)
if( (a[j]<a[i]) && (a[i]*a[j]>0) )
swap(a[i],a[j]);
Nếu bạn để ý thì thấy điều kiện a[i]*a[j]>0 là để đảm bảo a[i] và a[j] cùng
dấu(tức là cùng âm hay cùng dương). Chúc bạn thành công
DAP3:
victoriay@freesurf.fr
Thành thật xin lỗi bạn, do tôi không đọc kĩ đề nên mới làm lộn. Nay tôi xin điều
chỉnh lại (thêm hàm abs() để lấy giá trị tuyệt đối của số trước khi so sánh)
for(i=0;i<max-1;i++)
for(j=i+1;i<max;j++)
if( (abs(a[j])<abs(a[i])) && (a[i]*a[j]>0) )
swap(a[i],a[j]);
DAP4: nq_huy@fptnet.com
Y tuong cua minh la duyet hai lan cung mot mang ban dau.
Buoc thu 1:Ban xem phan tu dau tien la am hay duong?
Buoc thu 2:Neu phan tu dau la am thi ban duyet het mang do theo dieu kien cac
phan tu deu la am va su dung thuat toan sap xep thong thuong thoi.Chang han nhu
noi bot hay la doi cho truc tiep hay la gi gi do...
minh khong nho het nua!
Buoc thu 3:Neu o buoc 2 ban duyet theo phan tu am thi bay gio ban duoc mot mang
ket qua moi dung khong nao?The thi ban hay duyet mang moi nay theo cac phan tu
duong thi ban se duoc mang ket qua nhu mong muon thoi.Con neu nhu o buoc 2 ma
ban duyet theo cac phan tu duong thi bay gio lam nguoc lai.
Minh hy vong ban the hien duoc y tuong nay.Minh dam chac la duoc vi minh thay
la vay ma.
------------------------------------
15/12
From: hungother@yahoo.com
Chao cac ban. Minh xin gioi thieu voi cac ban mot ngon ngu lap trinh moi (doi
voi minh). Do la HLA (High Level Assembly), mot ngon ngu ma theo minh rat phu
hop voi nhung ai dang cam thay kho khan voi Assembly va nhung ai dang bat dau
hoc Assembly (minh cung vay). Neu ban nao biet ngon ngu nay roi thi xin dung doc
buc thu nay.
Tac gia cua HLA la giao su Randall Hyde, University of California. Khong phai la
minh muon quang cao cho HLA, boi vi minh cung chi biet ve no duoc "vai ngay" nen
cung khong hieu nhieu ve no lam. Tuy nhien minh thay no hay va kha moi me muon
gioi thieu voi cac ban, ma cai gi moi me thi cung nen thu tim hieu phai khong
cac ban, hon nua no lai hoan toan "free", cac ban chi viec d'np (down and play),
cai nay thi co ve tat ca cac ban deu thich ca :-)).
Sau day la nhung cau hoi thuong gap (FAQ) ve HLA ma minh dich khi download
chuong trinh nay tu Internet ve. Cac ban thong cam vi minh dich khong duoc hay
lam, voi lai minh cung khong phai la dan tin hoc. Neu co gi sai sot trong ban
dich, rat mong nhan duoc gop y cua cac cao thu :-) Ban nao muon biet ve HLA xin
hay doc:
************************************
Nhung cau hoi thuong gap ve HLA :
1: q. HLA la gi ?
a. HLA la ngon ngu Assembly bac cao (High Level Assembly language). No su dung
cac cu phap giong nhu mot ngon ngu bac cao (tuong tu nhu Pascal, C/C++, va cac
HLL khac) cho viec khai bao bien, khai bao va goi cac chuong trinh con. No su
dung cac cu phap da duoc sua doi cho cac lenh may chuan (standard machine
instructions) cua Assembly. No cung cung cap mot vai cau truc dieu khien co dang
giong ngon ngu bac cao (HLL) (if, while, repeat..until, ...) de giup cac ban
viet nhung ma lenh de doc hon (more readable code).
2: q. Toi co the lay mot ban sao cua HLA o dau ?
a. http://webster.cs.ucr.edu. Version moi nhat cua no la 1.30.
3: q. Ve mat ky thuat ma noi, su hien dien cua cac cau truc
dieu khien khong lam cho HLA tro thanh mot ngon ngu bac cao hay sao ?
a. Nhung cau truc dieu khien nay tuong tu voi nhung cau truc dieu khien cung cap
boi MASM (Microsoft's Macro Assembler ) va TASM (Turbo Assembler), thuc ra HLA
co yeu hon o vai diem. Tru khi ban bang long goi MASM va TASM la ngon ngu bac
cao (HLL), con khong thi chang co nghia gi khi goi HLA la mot HLL. Mac du ro
rang rang HLA cung cap mot cu phap lenh o "muc cao hon" so nhung nhung gi duoc
cung cap boi MASM hay TASM. (tham chi o trong ca che do IDEAL cua TASM - xin loi
thuat ngu nay minh khong hieu).
4: q. Cac chuong trinh HLA trong giong nhu Pascal. The sao
ban khong lam cho chung giong C/C++ hon ?
a. Thuc ra thi chung giong Ada hay Modula-2 hon la giong Pascal, nhung de tra
loi dung cau hoi, thi Pascal la mot ngon ngu trong sang va de doc hon C/C++. Muc
dich cua toi la tao ra mot ngon ngu Assembly cho phep tao ra nhung chuong trinh
co the doc duoc. Nhanh ngon ngu Pascal/Modula-2/Ada (The Pascal/Modula-2/Ada
branch) cua cay ngon ngu lap trinh duoc thua nhan rong rai vi tao ra nhung
chuong trinh de doc hon nhanh ngon ngu C/C++ (C/C++ branch).
5: q. Nhung ngay nay nhung nguoi lap trinh bang C/C++ nhieu
hon nhung nguoi lap trinh bang Pascal. Chang le ban khong nghi rang su dung mot
cu phap giong C/C++ se lam cho HLA de hoc hon doi voi nhieu nguoi ?
a. Khong. HLA chi giong Pascal o ve ngoai. Trong khi nhung lap trinh vien Pascal
co the chi co mot chut thuan loi khi hoc HLA, thi viec hoc tap lai chu yeu ve
nhung chu de khac (hoc ngon ngu may chang han) hon la chi hoc nhung cu phap khai
bao thu tuc cua Pascal.
6: q. Tai sao lai can HLA ? Cac trinh bien dich MASM, TASM,
GAS (xin loi minh khong biet), hay NASM (xinloi minh khong biet) co van de chang
? Lieu chung ta co thuc su can mot trinh bien dich hop ngu khong tuong thich
khac ngoai nhung thu tren chang ?
a. HLA duoc viet voi hai muc dich : thu nhat la cung cap mot cong cu de cho viec
giang day lap trinh bang ngon ngu Assembly cho sinh vien Dai hoc tro nen rat de
dang (hay it nhat thi cung de hon), thu hai la cung cap mot cong cu cho nhung
lap trinh vien nghiem tuc can cac ma chuong trinh chat luong muon viet ra nhung
ung dung manh me voi ngon ngu Assembly.
MASM, TASM, GAS, va NASM co van de chang ?
(a) Nhung cu phap rieng cua chung lam cho nguoi ta viet ra nhung chuong trinh
that la kho hieu (neu ban khong tin toi, hay xem doan ma ben duoi)
(b) Chung khong co cac thao tac lam don gian viec tao cac macro. Vi du, chung
khong ho tro tot lam viec tao ra cac DSELs (domain specific embedded languges -
xin loi day la mot thuat ngu minh chua biet, mong cac ban giai thich ho).
Lieu rang mot trinh bien dich assembly khong tuong thich nua thi tot hay do. Nuoc da tran khoi coc thi khong the nao lay lai duoc nua. Neu ban da co hai trinh bien dich hop ngu khong tuong thich, thi ban cung co the co ba hay bon cac chuong trinh khac nua. Chac chan, se la khong hay de co lam cho HLA tuong thich voi mot san pham dang ton tai. Quan diem o day la HLA duoc bat dau hoan toan moi me, chu khong phai la ke thua ca mot dong nhung sai sot tu cuoi nhung nam 70 (thoi diem ma nhung trinh bien dich hop ngu dau tien cua Microsoft bat dau xuat hien).
7: q. Co ve la HLA duoc danh cho nhung lap trinh vien bang
ngon ngu bac cao ?
a. Chi dung theo nghia rang mot lap trinh vien bang HLL khong he biet ve
Assembly se co the de dang hon khi hoc HLA hon la hoc MASM chang han. Mat khac,
HLA khong phai hoan toan la chi danh cho HLL. Trong khi ban hoan toan co the
viet cac module bang ngon assembly voi HLA de lien ket voi cac HLL khac, thi HLA
duoc thiet ke mot cac rieng biet de cho phep ban viet nhung ung dung doc lap
bang ngon ngu assembly trong moi truong Win32.
8: q. Cac sinh vien viet chuong trinh voi cac lenh IF, WHILE,
va FOR tuc la ho khong viet nhung ma lenh ngon ngu Assembly thuc su. Roi ho se
quen mat nhieu dieu ve assembly. Nhu vay thi dau co phai la day ho assembly, do
la day ho mot ngon ngu bac trung (mid-level language) giong nhu C day chu ?
a. Dung vay. Mot giao vien gioi la mot nguoi se khong cho phep cac sinh vien cua
minh tiep tuc su dung cac cau truc dieu khien ngon ngu bac cao cua HLA trong
suot thoi gian hoc. Tuy nhien, se la can thiet khi moi bat dau hoc, boi vi chung
cho phep cac sinh vien viet nhung chuong trinh co nghia voi viec su dung cac
kieu mo hinh chuong trinh ma ho da hieu truoc khi ho co thoi gian de nam bat
toan bo cac tap lenh.
9: q. HLA co chay trong DOS khong ?
a. Khong, no chi chay voi Win32.
10: q. HLA co chay voi Win 3.x khong ?
a. Khong, no chi chay voi Win32, tuc la Windows 95, 98, ME, NT, va 2000.
11: q. Tai sao ban khong viet de HLA co the chay trong DOS ?
a. Bay gio khong con phai la thoi dai cua DOS nua. Hau het cac lap trinh vien
assembly bao thu (die-hard) van tiep tuc lam viec voi DOS boi vi DOS de dang cho
viec lap trinh assembly va ngoai ra cung con mot luong thong tin lon ve lap
trinh voi DOS. Diem chu yeu cua HLA la no co xu huong lam cho viec lap trinh
assembly voi Windows cung de nhu la voi DOS.
12: q. HLA co ho tro lap trinh ung dung dieu khien (console
application programming) khong ?
a. Co. Module dieu khien (console module) trong HLA Standard Library rat manh
me.
13: q. HLA co ho tro lap trinh ung dung do hoa/ giao dien
nguoi dung Windows (GUI Windows) khong ?
a. Khong co gi trong ngon ngu nay ngan can ban viet cac ung dung do hoa. Tuy
nhien hien tai, HLA Standard Library khong ho tro nhieu lam cho cac ung dung
GUI. Tuy nhien dieu nay se thay doi trong thoi gian toi.
14: q. HLA co phai la phan mem shareware khong ?
a. Khong. HLA hoan toan mien phi (freeware). Toi (Randall Hyde) giu ban quyen.
Tuy nhien toi co the cho phep ban co the duoc phan phat chuong trinh nay.
15: q. Da co ma nguon cua chuong trinh hay chua ?
a. Van chua co. Toi dang tap hop mot bo test chinh thuc cho HLA, va toi chua
muon cong khai ma nguon cho den khi san pham duoc thu nghiem tot hon.
16: q. Sao ban khong dung cac dich vu cua tat ca cac lap
trinh vien tren mang de kiem tra (test) va go loi (debug) chuong trinh cua ban
nhu la da tung voi LINUX, NASM, va voi cac chuong trinh ma nguon mo khac.
a. He thong HLA hien tai vuot qua 100.000 dong lenh. No van dang con dang do va
chua co trat tu. Ma lenh khong phai de gi nam bat duoc va co the de dang lam
hong neu ai do khong can than. Toi da mat ba nam de tao ra cai mo hon don nay,
va toi khong the tin rang co ai do chi trong 1 nam co the hieu duoc toi da lam
gi (dung phien neu toi noi vay). Truoc khi ma ai do co the thuc su cung cap
nhung giup do huu ich, toi se tu hoan thanh cong viec kiem tra va sau do se cong
khai ma nguon.
17: q. Luc truoc ban noi ve viec viet cac ma sao cho de doc.
The sao ban khong lam nhu vay voi ma nguon cua HLA ?
a. HLA hien tai chi la mo hinh tho so ban dau, tuc la mot chuong trinh ban viet
ra de thu ap dung nhung y tuong. Toi da va dang thu nghiem nhieu y tuong trong 3
nam qua. Nhieu cai da thanh cong, song cung nhieu cai that bai, mot vai cai thi
phai dung ap luc manh me moi thanh cong. Tuy nhien, ket qua cuoi cung cua thu
nghiem nay la mot loi giai nhanh nhung cong kenh. Mo hinh ban dau cua toi chi la
phien ban dau tien cua chuong trinh. Phien ban 2.0 se phai duoc viet lai hoan
toan, ap dung nhung gi toi da hoc.
18: q. Ban cu goi HLA la mot trinh bien dich (compiler). The
cac trinh thong dich (translator) cho assembly khong duoc goi la cac trinh bien
dich hop ngu (assembler) hay sao ?
a. Noi chung dung la vay; Nen goi HLA la mot trinh dich hop ngu (assembler). Tuy
nhien, thiet ke ben trong la thiet ke cua mot trinh bien dich hon la cua mot
trinh dich hop ngu. Cung voi viec la HLA tao ra cac ma assembly, chu khong phai
cac ma object, thi ten goi "trinh bien dich" co ve phu hop hon.
19: q. Can nhung gi de su dung HLA ?
a. Ban can phai co mot he dieu hanh Win32. Ban can cac chuong trinh cua HLA, can
MASM va mot phien ban 32bit cua MS-link. Ban cung can mot vai file thu vien DLL
cua Windows nhu kernel32.lib. Tat ca cac file nay deu san co va mien phi tren
Internet.
20: q. MASM la mot trinh dich hop ngu khong thu vi lam. Tai
sao ban bat chung toi phai dung no ?
a. MASM, NASM, GAS, hay TASM. Su lua chon khong co lien quan gi o day do HLA tu
dong sinh ra ma MASM, chay MASM, va lien ket ma MASM de tao ra chuong trinh chay
duoc. Ban khong viet cac ma MASM va khong phai chay MASM. Ban khong phai lo lang
ve trinh dich hop ngu nao minh dang dung tru khi don gian la ban ghet Microsoft
va khong muon chay cac chuong trinh ma ho cung cap mien phi cho ban.
21: q. Cac phan mem cua Microsoft thuong cong kenh va cham
chap. Tai sao lai bat chung toi su dung chung de chay HLA ? Chung toi thich cac
ma co hieu qua hon.
a. Neu ban khong thich MASM va LINK, ban se thuc su cam thay ghet HLA. MASM va
LINK nhanh hon HLA. Nho rang HLA la mot chuong trinh ban dau. Khong co co gang
nao duoc thuc hien de lam cho no hieu qua.
22: q. Ban co the cho mot vi du don gian ve mot chuong trinh
HLA ?
a. Day la chuong trinh HelloWorld:
program HelloWorld;
#include ("stdlib.hhf");
begin HelloWorld;
stdout.put("Hello World", nl);
end HelloWorld;
23: q. Cho mot chut ! Day khong phai la nhung lenh may, khong phai la ngon ngu
assembly.
a. Duoc thoi, duoi day la phien ban ma may "thuc su", van su dung HLA:
program HelloWorld;
#include ("stdlib.hhf");
static
hw: string:= "Hello World",nl;
begin HelloWorld;
push(hw);
call stdout.puts;
end HelloWorld;
HLA cho phep ban chi dinh cac loi goi thu tuc giong HLL va no se tu dong push
cac tham so vao stack cho ban. Dieu nay cung giong nhu lenh "invoke" trong MASM
va TASM (mac du ca nhan toi (Randall Hyde) cam thay rang cu phap cua HLA trong
sang hon, ro rang hon, va de doc hon). Neu ban thuc su thich, ban luon co the tu
minh viet cac ma lenh assembly. Tuy nhien se it co loi khi lam nhu vay.
******************************
Minh chi dich nhung cau hoi minh cam thay la can thiet. Neu
ban nao muon biet chi tiet hon thi hay vao
http://webster.cs.ucr.edu.
Cac ban nao muon hoc HLA co the download sach day hoc aoa.pdf (The Art of
Assembly language), va download cac chuong trinh HLA ve. xin luu y voi cac ban
la quyen sach day HLA kha la day, khi minh down no ve xem thi thay no day toi
hon 1500 trang (choang). Co le day la mot quyen sach kha hay va day du ve
Assembly. Tuy nhien, cac ban cung chi can doc nhung phan quan trong cua no ma
thoi, con cac phan nang cao cua no thi neu thich thi cu tu nhien, khong ai cam
ban, tuy nhien se hoi met va nhuc dau day. Ngoai ban .pdf ra con co ban .htm,
tuy nhien day la ban khong day du va da cu, no day Assembly for DOS, neu ban nao
quan tam co the down ve.
Viec cai dat HLA cung khong phuc tap neu nhu ban co du cac file no yeu cau:
- ml.err, ml.exe, link.exe
- hla.exe, hlaparse.exe
- mspdb50.dll hay mspdb60.dll, kernel32.lib
Hau het cac file deu co du trong cac tep nen .zip ban down ve. Neu ban nao con
thieu co the mail cho minh.
Cam on cac ban da doc. Hy vong cac ban se tim thay nhieu dieu thu vi va bo ich.
---------------------------------------------
10/12
HOI: huy@rock.com
CO AI BIET CACH VIET LAM SAO DE MOT HAM C++ TRA VE NHIEU GIA TRI KHONG?
DAP:
letanphuoc@dme.hcmut.edu.vn
Mot ham trong C++ hay ngon ngu lap trinh nao khac moi lan goi co the tra ve mot
gia tri khac nhau chu mot luc khong the tra ve nhieu gia tri duoc
DAP2:
mrbigaus@hotmail.com
No'i tha^.t cha(.t che~ thi` function chi? co' the^? tra? ve^` mo^.t gia' tri.
nhu*ng ta co' the^? su*? du.ng struct / object / pointer dde^? tra? ve^` nhie^`u
ho*n mo^.t gia' tri.
vi' du.
struct a { int i; std::string s }
a func1() {
a a1;
a1.i = 1;
a1.s="a";
return a1;
}//tra? ve^` 1 integer va` 1 string
Good luck :)
-------------------------------------
HOI: huytq1@yahoo.com
ban nao biet cach doc tung hang trong Rich TextBox chi giup toi voi.
Xin cam on.
DAP:
letanphuoc@dme.hcmut.edu.vn
Gia su ten Rich TextBox cua ban la rtbData, doan chuong trinh con duoi day se
doc noi dung cua rtbData va xuat MessageBox noi dung cua tung hang ra man hinh
Private Sub Test_rtb()
Dim pos As Long, st As String
st = rtbData.Text
Do
pos = InStr(1, st, Chr(13) & Chr(10))
If pos > 1 Then
MsgBox "<" & Left(st, pos - 1) & ">"
st = Right(st, Len(st) - pos - 1)
Else
MsgBox "<" & st & ">"
st = ""
End If
Loop Until pos = 0
End Sub
-----------------------------------
06/12
HOI: ddvdanh@yahoo.com
Toi viet 1 chuong trinh bang JSP de kiem tra username va password cua user
nhu sau:
<%@ page import="java.sql.*" %>
<html>
<head><title>Username - password</title></html>
<body>
<%
String user = request.getParameter("username");
String pwd = request.getParameter("pwd");
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con =
DriverManager.getConnection("jdbc:odbc:CheckUser","123","123");
Statement stmt = con.createStatement();
String query = "SELECT Username, Passwd
FROM Admin WHERE Username = '" + pwd + "';";
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
String u = rs.getString("Username");
String p = rs.getString("Passwd");
if (p != pwd) { %>
<p> Password sai </p>
<% } else if (p == pwd) { %>
<p> Password dung </p>
<% }
}
}
catch (Exception e) {}
%>
</body>
</html>
DAP: genhitsuu@yahoo.com
Java khong dung toan tu != hay == de so sanh chuoi, ban phai dung method
equal cua doi tuong String de lam cong viec nay, nghia la
if (!p.equal(pwd)) { %>
<p> Password sai </p>
<% } else if (p.equal(pwd)) { %>
<p> Password dung </p>
<% }
----------------------------------------
HOI: htleeus@yahoo.com
Chao cac bac! co bac nao biet Delphi khong ? help me!! tui muon dung registry
nhung khong biet, nho cac bac cho vay cai example tui lam thu Cam on cac bac!
DAP:
letanphuoc@dme.hcmut.edu.vn
De lam viec voi Registry, trong Delphi ban co the goi truc tiep cac ham API sau
:
RegOpenKeyEx
RegSetValueEx
RegCloseKey
RegQueryValueEx
RegCreateKeyEx
RegEnumKeyEx
RegEnumValue
RegDeleteKey
RegDeleteValue
Gia tri cua cac flags:
NOOPERATION = 0
DELETEREGVALUE = 1
DELETEREGKEY = 2
GETREGVALUEDATA = 3
SETREGVALUEDATA = 4
Gia tri cua cac types:
REG_NONE = 0
REG_SZ = 1
REG_EXPAND_SZ = 2
REG_BINARY = 3
REG_DWORD = 4
REG_DWORD_LITTLE_ENDIAN = 4
REG_DWORD_BIG_ENDIAN = 5
REG_LINK = 6
REG_MULTI_SZ = 7
REG_RESOURCE_LIST = 8
REG_FULL_RESOURCE_DESCRIPTOR = 9
REG_RESOURCE_REQUIREMENTS_LIST = 10
Cach dung cu the nhu the nao thi ban co the tham khao trong MSDN, neu ban khong
su dung duoc thi mail cho toi voi yeu cau cu the, toi se viet cho ban mot sample
code.
---------------------------------
From:
letanphuoc@dme.hcmut.edu.vn
1. De thuc hien yeu cau goi la "Run" cua ban, ban co the lam theo cac buoc sau:
_ Chon thuoc tinh "Title bar" cua Dialog properties la false
_ Lay do phan giai(resolution) hien thoi cua man hinh, sau do cho kich
thuoc form cun ban full screen
Duoi day la sample code :
CRect r ;
GetDesktopWindow()->GetWindowRect(r);
SetWindowPos(NULL,r.left,r.top,r.right,r.bottom,SWP_SHOWWINDOW);
Con neu muon form cua ban always on top thi tuy ban
Ve van de thoi gian, khi nao ban muon bo^ timer hoat dong thi goi
SetTimer(x,y,z) de qui dinh thoi gian goi ham OnTimer cua chuong trinh.
Trong ham OnTimer(UINT nIDEvent) ban co the dat counter hay lam cac tac vu gi
do.
2. Trong VC lam viec voi database qua ADO kha phuc tap, toi huong dan ban mot
trong cac cach tuong tac voi database don gian thong qua ODBC, de doc lap toi se
minh hoa tuong tac database voi Single Dialog (con voi Single Document thi da ho
tro kha nhieu cho ban roi).
_ Mo Control Panel, vao ODBC Setting dang ky file Access cua ban, lay ten la
"Example1" chang han.
_ Ban co the tham khao doan code sau:
#include "afxdb.h"
...
CDatabase dbExample;
CString SQL;
dbExample.OpenEx(_T("DSN=Example1"));
SQL.Format(Mot cau SQL tuy y);
dbHDGT.ExecuteSQL(SQL);*/
De doc,ghi,xoa,sua ban co the dung cac cau SQL nhu:SELECT,INSERT,DELETE,MODIFY
-------------------------------------
01/12
HOI: bighorsevn@yahoo.com
Chao cac ban! Minh dang hoc ngon ngu lap trinh Visual Basic 6. Hien nay, minh
dang co mot so vuong mac:
+ Minh khong biet lam the nao de lay duoc tat ca cac Tittle cua cac form hien
dang hoat dong trong Win9x
+ Co cach nao de Close mot ung dung cu the (VD: Nodepad) tu trong chuong trinh
cua minh khong ?
Ban nao biet xin chi gium voi.
Minh cam on nhieu.
DAP:
letanphuoc@dme.hcmut.edu.vn
1) De lay duoc title cua cac application, ban co the dung cac ham API duoc khai
bao nhu sau :
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd
As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA"
(ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function GetWindowTextLength Lib "user32" Alias
"GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Const GW_HWNDFIRST = 0
Const GW_HWNDNEXT = 2
Doan chuong trinh con duoi day dua cac Title vao ComboBox :
Private Sub LoadTitle(cboLItem As ComboBox)
Dim CurrWnd As Long, Length As Long, lReturn As Long
Dim lItem As String
cboLItem.Clear
CurrWnd = GetWindow(Me.hwnd, GW_HWNDFIRST)
While CurrWnd <> 0
Length = GetWindowTextLength(CurrWnd)
lItem = Space$(Length + 1)
Length = GetWindowText(CurrWnd, lItem, Length + 1)
If Length > 0 Then
cboLItem.AddItem lItem
End If
CurrWnd = GetWindow(CurrWnd, GW_HWNDNEXT)
lReturn = DoEvents()
Wend
End Sub
2) De ket thuc ung dung tu chuong trinh cua ban, cu the nhu notepad chang han,
co the su dung vi du sau :
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam
As Long) As Long
Dim lsTitle As String, lHwnd As Long,lReturn As Long
lsTitle = "Untitled - Notepad"
lHwnd = FindWindow(0&, lsTitle)
lReturn = PostMessage(lHwnd, &H12, 0&, 0&)
PcLeHoan
1996 - 2002
Mirror :
http://www.pclehoan.com
Mirror :
http://www.lehoanpc.net
Mirror :
http://www.ktlehoan.com