怎么读取列表控件中的数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么读取列表控件中的数据相关的知识,希望对你有一定的参考价值。

在列表空间中输入一些数据,保存成二进制文件。重新运行程序,读取上次保存的数据并在列表框中显示,保存和读取程序该怎么写?

下面的代码示例演示如何从文件中读取二进制数据。使用了 System.IO 命名空间中的两个类:FileStream 和 BinaryReader。FileStream 表示实际的文件。BinaryReader 为允许二进制访问的流提供接口。

下面的代码示例使用由如何:编写二进制文件中的代码创建的称为 data.bin 的文件。
示例

// binary_read.cpp
// compile with: /clr
#using<system.dll>
using namespace System;
using namespace System::IO;

int main()

String^ fileName = "data.bin";
try

FileStream^ fs = gcnew FileStream(fileName, FileMode::Open);
BinaryReader^ br = gcnew BinaryReader(fs);

Console::WriteLine("contents of 0:", fileName);
while (br->BaseStream->Position < br->BaseStream->Length)
Console::WriteLine(br->ReadInt32().ToString());

fs->Close( );

catch (Exception^ e)

if (dynamic_cast<FileNotFoundException^>(e))
Console::WriteLine("File '0' not found", fileName);
else
Console::WriteLine("Exception: (0)", e);
return -1;

return 0;


★★补充★★
手上的一个VB项目(过程中发现,.Net果然是好啊),需要在一个ActiveX中实现HTTP下载功能,我是采用InternetreadFile这个API来实现,一开始的代码我是这么写的

Function Gethttpdownload(sUrl As String) As boolen

Dim s As String
Dim hOpen As Long
Dim hOpenUrl As Long
Dim bDoLoop As Boolean
Dim bRet As Boolean
Dim sReadBuffer As String * 2048
Dim lNumberOfBytesRead As Long
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
bDoLoop = True
Do While bDoLoop
sReadBuffer = vbNullString
bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
s = s & Left$(sReadBuffer, lNumberOfBytesRead)
If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
Loop
FileName = "E:\BitSpirit\Torrent\121212.torrent"
F1 = FreeFile
Open FileName For Binary As F1
Put F1, , s
Close F1
If hOpen <> 0 Then InternetCloseHandle (hOpen)
Gethttpdownload = true
End Function

或者//读串口函数如下
void com::readEasyCom()
int i;
QByteArray temp= easyCom->readAll();
i=temp.size();
QString num=QString::number(i);
//读取串口缓冲区的所有数据给临时变量temp
ui->receiveNumEdit->setText(num);
ui->textBrowser->insertPlainText(temp.toHex());
//将串口的数据显示在窗口的文本浏览器中


程序能正常收到串口数据,并在textBrowser中显示,但是receiveNumEdit总是显示0

如何将temp中的值保存到文件中?
参考技术A m 控件

MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。

语法

MSComm

说明

MSComm 控件提供下列两种处理通讯的方式:

事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。

在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。
每个使用的 MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。可以在 Windows“控制面板”中改变端口地址和中断地址。

尽管 MSComm 控件有很多重要的属性,但首先必须熟悉几个属性。

属性 描述
CommPort 设置并返回通讯端口号。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen 设置并返回通讯端口的状态。也可以打开和关闭端口。
Input 从接收缓冲区返回和删除字符。
Output 向传输缓冲区写一个字符串。

触发事件 OnComm

多看 msdn
祝你顺利

以上是关于怎么读取列表控件中的数据的主要内容,如果未能解决你的问题,请参考以下文章

mfc如何用txt保存下拉框控件的内容?下拉框如何读入TXT中的内容到属性-数据中?

VB里如何逐行读取listbox中的数据

iOS项目开发实战——学会使用TableView列表控件plist读取与Section显示

mfc中如何读取combobox控件中的内容

comboBox控件怎么清空下拉列表中的项啊

MFC 读取http文件服务器上的文件列表,并选择文件进行下载