
2使用 GetDlgItemText 函数获取文本框的内容。
3使用 GetDlgItemInt来直接获取数值内容。
4第四种方法在类的定义 变量 来关联 控件
5第五种使用SendMessage获取编辑框内容。
1GetDlgItem获取文本编辑框的指针来获取内容
先使用 GetDlgItem(编辑框的ID)获取编辑框的指针。再指向编辑框的GetWindowText函数将获取内容保存至指定的字符数组里。
下面是代码。
int num1,num2,num3;
char char1[10],char2[10],char3[10];
GetDlgItem(IDC_EDIT1)->GetWindowText(char1,10);
GetDlgItem(IDC_EDIT2)->GetWindowText(char2,10);
num1=atoi(char1);
num2=atoi(char2);
num3=num2+num1;
itoa(num3,char3,10);
GetDlgItem(IDC_EDIT3)->SetWindowText(char3);
2使用 GetDlgItemText 函数获取文本框的内容。
GetDlgItemText 函数 从代码分析上来看,GetDlgItemText 函数是第一种方法的简写版。
int num1,num2,num3;
char char1[10],char2[10],char3[10];
GetDlgItemText(IDC_EDIT1,char1,10);
GetDlgItemText(IDC_EDIT2,char2,10);
num1=atoi(char1);
num2=atoi(char2);
num3=num2+num1;
itoa(num3,char3,10);
SetDlgItemText(IDC_EDIT3,char3);
3,使用 GetDlgItemInt来直接获取数值内容。
第二个例子是获取的文本内容,转成数值内容的话,就得使用atoi函数比较麻烦 就可以使用GetDlgItemInt来直接获取数值内容。
代码如下
int num1,num2,num3;
char char1[10],char2[10],char3[10];
num1=GetDlgItemInt(IDC_EDIT1);
num2=GetDlgItemInt(IDC_EDIT2);
num3=num1+num2;
SetDlgItemInt(IDC_EDIT3,num3);
4第四种方法在类的定义 变量 来关联 控件
单击 查看—建立类向导—Member Variables选项卡 单击对应的Control Ids的名称
在Member variable name填入 一个变量名即可。
如果想直接取值的话 ,在category中选择Value,那么这个变量名就是对应的值
UpdateData();
m_edit3=m_edit1+m_edit2;
UpdateData(false);
可以选择数据类型,来定义变量的数据类型。
如果是文本型的。
就在Category中选择 control,那么,这个变量名,就对应这个控件。就利用这个变量名进行 *** 作。
int num1,num2,num3;
char char1[10],char2[10],char3[10];
m_the_edit1GetWindowText(char1,10);
m_the_edit2GetWindowText(char2,10);
num1=atoi(char1);
num2=atoi(char2);
num3=num1+num2;
itoa(num3,char3,10);
m_the_edit3SetWindowText(char3);
5第五种使用SendMessage获取编辑框内容。
使用发送消息的方式。
(1)。采用全局类的SendMessage来发送获取消息内容的。
注意 第一个参数是目标窗口控件的句柄,第二个参数是固定的表示符,第三个是第四个字符变量的大小,第四个是字符变量数组的指针。
::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT,10,(LPARAM)char1);
也可以这要获取句柄。
::SendMessage(m_the_edit1m_hWnd,WM_GETTEXT,10,(LPARAM)char1);
(2)。在窗口类中也有SendMessage函数。
GetDlgItem(IDC_EDIT1)->SendMessage(WM_GETTEXT,10,(LPARAM)char1);
或者这样
m_the_edit1SendMessage(WM_GETTEXT,10,(LPARAM)char1);
也有省事的SendDlgItemMessage 函数,可以直接发送获取文本的消息指指定控件的ID。
SendDlgItemMessage(IDC_EDIT2,WM_GETTEXT,(LPARAM)char2);
1:读入txt文本的内容
2:分割文本 分割参数为换行符(也可以用其他,这个主要看txt文本里面怎么写 一行一个账号信息就用换行符 用其他字符也可以)
3:计次循环 循环里面 用----分割 然后分别加入列表框!
祝你愉快,哦
一、建立一个模块,复制下面代码
Option Explicit
Private PlatformKnown As Boolean
Private NTflag As Boolean
Private fpHandle As Long
Private Type OSVERSIONINFO
dwOSVersionInfoSize As Long
dwMajorVersion As Long
dwMinorVersion As Long
dwBuildNumber As Long
dwPlatformId As Long
szCSDVersion As String 128
End Type
Private WIN As OSVERSIONINFO
Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" (LpVersionInformation As OSVERSIONINFO) As Long
'
'================== Win95/98 Process Memory functions
Private Declare Function CreateFileMapping Lib "kernel32" Alias "CreateFileMappingA" (ByVal hFile As Long, ByVal lpFileMappigAttributes As Long, ByVal flProtect As Long, ByVal dwMaximumSizeHigh As Long, ByVal dwMaximumSizeLow As Long, ByVal lpName As String) As Long
Private Declare Function MapViewOfFile Lib "kernel32" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long) As Long
Private Declare Function UnmapViewOfFile Lib "kernel32" (lpBaseAddress As Any) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
'
'================== WinNT/2000 Process Memory functions
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcId As Long) As Long
Private Declare Function VirtualAllocEx Lib "kernel32" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal flAllocationType As Long, ByVal flProtect As Long) As Long
Private Declare Function VirtualFreeEx Lib "kernel32" (ByVal hProcess As Long, ByVal lpAddress As Long, ByVal dwSize As Long, ByVal dwFreeType As Long) As Long
Private Declare Function WriteProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, ByVal lpBuffer As Long, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
Private Declare Function ReadProcessMemory Lib "kernel32" (ByVal hProcess As Long, ByVal lpBaseAddress As Long, ByVal lpBuffer As Long, ByVal nSize As Long, lpNumberOfBytesWritten As Long) As Long
'
'
'================== Common Platform
'
Private Declare Function GetWindowThreadProcessId Lib "user32" (ByVal hwnd As Long, lpdwProcessId As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal lpDest As Long, ByVal lpSource As Long, ByVal cBytes As Long)
Private Declare Function lstrlenA Lib "kernel32" (ByVal lpsz As Long) As Long
Private Declare Function lstrlenW Lib "kernel32" (ByVal lpString As Long) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As Long
' ----------
Private Const PAGE_READWRITE = &H4
Private Const MEM_RESERVE = &H2000&
Private Const MEM_RELEASE = &H8000&
Private Const MEM_COMMIT = &H1000&
Private Const PROCESS_VM_OPERATION = &H8
Private Const PROCESS_VM_READ = &H10
Private Const PROCESS_VM_WRITE = &H20
Private Const STANDARD_RIGHTS_REQUIRED = &HF0000
Private Const SECTION_QUERY = &H1
Private Const SECTION_MAP_WRITE = &H2
Private Const SECTION_MAP_READ = &H4
Private Const SECTION_MAP_EXECUTE = &H8
Private Const SECTION_EXTEND_SIZE = &H10
Private Const SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED Or SECTION_QUERY Or SECTION_MAP_WRITE Or SECTION_MAP_READ Or SECTION_MAP_EXECUTE Or SECTION_EXTEND_SIZE
Private Const FILE_MAP_ALL_ACCESS = SECTION_ALL_ACCESS
'==================Findwindow
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As Long
Private Const WM_USER = &H400&
Private Const SB_GETTEXTLENGTH = (WM_USER + 3)
Private Const SB_GETPARTS = (WM_USER + 6)
Private Const SB_GETTEXT = (WM_USER + 2)
Private Const SB_ISSIMPLE = (WM_USER + 14)
Function GetStatusBarText(ByVal hStatusbar As Long, ByVal panel_Number As Long) As String
Dim xpBuffer As Long ' address of cross-process buffer
Dim myBuffer(255) As Byte
Dim xpWindow As Long, lRet As Long, bText As String
xpWindow = GetParent(hStatusbar)
If xpWindow = 0 Then Exit Function
xpBuffer = drMemoryAlloc(xpWindow, 255)
lRet = SendMessage(hStatusbar, SB_GETTEXT, panel_Number - 1, xpBuffer)
drMemoryRead xpBuffer, VarPtr(myBuffer(0)), 255
drMemoryFree xpBuffer
If lRet > 0 Then
bText = StrConv(myBuffer, vbUnicode)
bText = Left(bText, lRet)
GetStatusBarText = bText
End If
End Function
Private Function drMemoryAlloc(ByVal xpWindow As Long, ByVal nBytes As Long) As Long
Dim xpThread As Long
Dim xpID As Long
If WindowsNT Then
xpThread = GetWindowThreadProcessId(xpWindow, xpID)
drMemoryAlloc = VirtualAllocNT(xpID, nBytes)
Else
drMemoryAlloc = VirtualAlloc9X(nBytes)
End If
End Function
Private Sub drMemoryFree(ByVal mPointer As Long)
If WindowsNT Then
VirtualFreeNT mPointer
Else
VirtualFree9X mPointer
End If
End Sub
Private Sub drMemoryRead(ByVal xpBuffer As Long, ByVal myBuffer As Long, ByVal nBytes As Long)
If WindowsNT Then
ReadProcessMemory fpHandle, xpBuffer, myBuffer, nBytes, 0
Else
CopyMemory myBuffer, xpBuffer, nBytes
End If
End Sub
Private Sub drMemoryWrite(ByVal xpBuffer As Long, ByVal myBuffer As Long, ByVal nBytes As Long)
If WindowsNT Then
WriteProcessMemory fpHandle, xpBuffer, myBuffer, nBytes, 0
Else
CopyMemory xpBuffer, myBuffer, nBytes
End If
End Sub
Private Function WindowsNT() As Boolean
If Not PlatformKnown Then GetWindowsVersion
WindowsNT = NTflag
End Function
Private Function WindowsXP() As Boolean
If Not PlatformKnown Then GetWindowsVersion
WindowsXP = NTflag And (WINdwMinorVersion <> 0)
End Function
Private Sub GetWindowsVersion()
WINdwOSVersionInfoSize = Len(WIN)
If (GetVersionEx(WIN)) = 0 Then Exit Sub ' in deep doo if this fails
NTflag = (WINdwPlatformId = 2)
PlatformKnown = True
End Sub
Private Function VirtualAllocNT(ByVal fpID As Long, ByVal memSize As Long) As Long
fpHandle = OpenProcess(PROCESS_VM_OPERATION Or PROCESS_VM_READ Or PROCESS_VM_WRITE, False, fpID)
VirtualAllocNT = VirtualAllocEx(fpHandle, ByVal 0&, ByVal memSize, MEM_RESERVE Or MEM_COMMIT, PAGE_READWRITE)
End Function
Private Sub VirtualFreeNT(ByVal MemAddress As Long)
Call VirtualFreeEx(fpHandle, ByVal MemAddress, 0&, MEM_RELEASE)
CloseHandle fpHandle
End Sub
Private Function VirtualAlloc9X(ByVal memSize As Long) As Long
fpHandle = CreateFileMapping(&HFFFFFFFF, 0, PAGE_READWRITE, 0, memSize, vbNullString)
VirtualAlloc9X = MapViewOfFile(fpHandle, FILE_MAP_ALL_ACCESS, 0, 0, 0)
End Function
Private Sub VirtualFree9X(ByVal lpMem As Long)
UnmapViewOfFile lpMem
CloseHandle fpHandle
End Sub
Private Function dmWindowClass(ByVal hWindow As Long) As String
Dim className As String, cLen As Long
className = String(64, 0)
cLen = GetClassName(hWindow, className, 63)
If cLen > 0 Then className = Left(className, cLen)
dmWindowClass = className
End Function
二、程序调用举例:
msgbox "状态栏文本是:" & GetStatusBarText(12356,1)
表示获取句柄为12356的状态栏的第1项内的文本。
三、类似于lable的文本由于没有句柄,所以无法获取
可用函数有RIGHT() LEFT() MID()
1993/3/3是日期型先用YEAR()提出年份,再RIGHT()取后两位
设1993/3/3在B2格
函数:
=RIGHT(YEAR(B2),2)
RIGHT()和YEAR()函数的用法如下
RIGHT
也应用于:
RIGHTB
RIGHT 根据所指定的字符数返回文本字符串中最后一个或多个字符。
RIGHTB 根据所指定的字符数返回文本字符串中最后一个或多个字符。此函数用于双字节字符。
语法
RIGHT(text,num_chars)
RIGHTB(text,num_bytes)
Text 是包含要提取字符的文本字符串。
Num_chars 指定希望 RIGHT 提取的字符数。
Num_bytes 指定希望 RIGHTB 根据字节所提取的字符数。
说明
Num_chars 必须大于或等于 0。
如果 num_chars 大于文本长度,则 RIGHT 返回所有文本。
如果忽略 num_chars,则假定其为 1。
YEAR
返回某日期对应的年份。返回值为 1900 到 9999 之间的整数。
语法
YEAR(serial_number)
Serial_number 为一个日期值,其中包含要查找年份的日期。应使用 DATE
函数来输入日期,或者将日期作为其他公式或函数的结果输入。例如,使用 DATE(2008,5,23) 输入 2008 年 5 月 23 日。如果日期以文本的形式输入,则会出现问题。
说明
Microsoft Excel 可将日期存储为可用于计算的序列号。默认情况下,1900 年 1 月 1 日的序列号是 1 而 2008 年 1 月 1
日的序列号是 39448,这是因为它距 1900 年 1 月 1 日有 39448 天。Microsoft Excel for the Macintosh
使用另外一个默认日期系统。
由 YEAR、MONTH 和 DAY 函数返回的值是 Gregorian 值,不管所提供的日期值是怎样的显示格式。例如,如果所提供的日期值显示格式是 Hijri,YEAR、MONTH 和 DAY
函数返回的值将是对应 Gregorian 日期的值。
首先,定义全局变量 CDatabase db;然后在WM_CREATE中或其他合适地方,打开数据库dbOpen(数据库名,false,false,ODBC;UID=Admin);在你需要的地方,读取字段内容CRecordset rs(&db);CString strNum;int num;rsOpen(CRecordset::forwardOnly,select NUMBER1 from NUM where );if(!rsIsEOF()){rsGetFieldValue(REMARK,strNum);rsClose();num=atoi(strNum);//即将数据库中的数据NUMBER1读取并放到num中了}最后,你用读取出的这个数据和输入的数进行运算就可以了多注意下数据库中的字段类型,要正确读取。程序读取的数据库字段的数据类型是文本的。
如果直接使用file_get_contents来读取文件,那么在文件很大的时候会很占内容,比如这个文件有1GB的时候。
这个时候使用传统的文件 *** 作方式就好的多,因为是查找嘛,逐行读取匹配应该也是可以的,下面是我的一个建议,不知道是否满足你的要求,可以看下:
//
需要查找的内容
$search
=
'bcd';
//
打开文件
$res
=
fopen('atxt',
'r');
while
($line
=
fgets($res,
1024))
{
//
根据规则查找
if
(strpos($line,
$search)
===
0)
{
//
根据既定规则取得需要的数据
echo
substr($line,
4,
-1);
//
这里就是你想得到的
break;
}
}
//
关闭文件
fclose($res);
1、新建一个标准的VB EXE工程,只有一个Form,Form上有两个按钮:Command1和Command2。
2、双击Command1添加如下代码
Private Sub Command1_Click()
Dim strFile As String
Dim intFile As Integer
Dim strData As String
strFile = "c:\学生成绩txt"
intFile = FreeFile
Open strFile For Input As intFile
strData = StrConv(InputB(FileLen(strFile), intFile), vbUnicode)
DebugPrint strData
Close intFile
End Sub
3、按F8开始单步调试代码,点击Command1,进入单步调试功能,
4、多次按下F8或直接按下F5运行完成,就完成了读取文本文件内容并输出到立即窗口。
以上就是关于如何获取文本框内容全部的内容,包括:如何获取文本框内容、如何让超级列表框 获取TXT文本的数据、如何获取状态栏里的文本数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)