var
Wave1ReceBuf:array[0..30000]of word;
Wave2ReceBuf:array[0..30000]of word;
.
.
procedure TForm1.Button1Click(Sender: TObject);
var
MyFile:TMemoryStream;
iLen:Int64;
Begin
If savedialog1.Execute then
begin
iLen:=0;
MyFile:=TMemoryStream.Create;
MyFile.SavetoFile(opendialog1.FileName);
iLen:=MyFile.Size;//获得指定TXT文件的大小
SetLength(FileBuf,iLen);//设置动态数组的长度为TXT文件的大小
MyFile.writeBuffer(Wave1ReceBuf[0],iLen);//写入TXT文件全部数据
MyFile.writeBuffer(Wave2ReceBuf[0],iLen);//写入TXT文件全部数据
FreeAndNil(MyFile);
end;
end; procedure TForm1.Button2Click(Sender: TObject);
var
MyFile:TMemoryStream;
iLen:Int64;
Begin
If opendialog1.Execute then
begin
iLen:=0;
MyFile:=TMemoryStream.Create;
MyFile.LoadFromFile(opendialog1.FileName);
iLen:=MyFile.Size;//获得指定TXT文件的大小
SetLength(FileBuf,iLen);//设置动态数组的长度为TXT文件的大小
MyFile.ReadBuffer(Wave1ReceBuf[0],iLen);//读取TXT文件全部数据
MyFile.ReadBuffer(Wave2ReceBuf[0],iLen);//读取TXT文件全部数据
FreeAndNil(MyFile);
end;
end;
总感觉不对,如果我想保存为txt文件,然后读出数据后,还要转换,strtoint().比如两个缓冲,怎么识别呢?
Wave1ReceBuf:array[0..30000]of word;
Wave2ReceBuf:array[0..30000]of word;
.
.
procedure TForm1.Button1Click(Sender: TObject);
var
MyFile:TMemoryStream;
iLen:Int64;
Begin
If savedialog1.Execute then
begin
iLen:=0;
MyFile:=TMemoryStream.Create;
MyFile.SavetoFile(opendialog1.FileName);
iLen:=MyFile.Size;//获得指定TXT文件的大小
SetLength(FileBuf,iLen);//设置动态数组的长度为TXT文件的大小
MyFile.writeBuffer(Wave1ReceBuf[0],iLen);//写入TXT文件全部数据
MyFile.writeBuffer(Wave2ReceBuf[0],iLen);//写入TXT文件全部数据
FreeAndNil(MyFile);
end;
end; procedure TForm1.Button2Click(Sender: TObject);
var
MyFile:TMemoryStream;
iLen:Int64;
Begin
If opendialog1.Execute then
begin
iLen:=0;
MyFile:=TMemoryStream.Create;
MyFile.LoadFromFile(opendialog1.FileName);
iLen:=MyFile.Size;//获得指定TXT文件的大小
SetLength(FileBuf,iLen);//设置动态数组的长度为TXT文件的大小
MyFile.ReadBuffer(Wave1ReceBuf[0],iLen);//读取TXT文件全部数据
MyFile.ReadBuffer(Wave2ReceBuf[0],iLen);//读取TXT文件全部数据
FreeAndNil(MyFile);
end;
end;
总感觉不对,如果我想保存为txt文件,然后读出数据后,还要转换,strtoint().比如两个缓冲,怎么识别呢?
TStrItem=Record
index:integer;//索引,相当于等号前面的1
Length:integer;//内容长度,相当于6422*17014的字符串长度
str:string;//字符串的内容
end;TStr=Record
StrItemCount:integer;//数组的数量
item:array of TStrItem;
end;
在使用的时候,创建这个结构,然后进行读写操作,具体方法如下:
写入流:
1,先写入StrItemCount;
2,然后使用循环写入item内容,每个item内容,先写index,在写Length,最后写str。
读取的时候是关键,这样读取:
1,先读入sizeof(integer)长度的流数据,这个就是StrItemCount的数值,根据这个数值循环读取item内容;
2,每个item内容这样读取:(1)先读取sizeof(integer)长度的数据,为index的内容;(2)再读取sizeof (integer)长度的数据,为后面真正字符串的内容长度;(3)最后根据长度,读取这个长度的数据,就是str的内容了;
3,通过循环,数据就读出来了。别的结构,你根据这个思路,自己组织了