问个弱弱的问题~~~ TMemoryStream中可不可以搜索指定字串?谢谢啦 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 顶!!请问TMemoryStream中怎样搜索指定字串?哪个方法? procedure TForm1.Button3Click(Sender: TObject);var Str: string; Ret: string; EndChar: Char; Stream: TMemoryStream;begin Str := 'Test Str'; EndChar := #0; Stream := TMemoryStream.Create; Stream.Write(Str[1], Length(Str)); Stream.Write(EndChar, 1); Stream.Position := 0; Ret := StrPos(PChar(Stream.Memory), PChar('Str')); ShowMessage(Ret); Stream.Free;end;千万要记住:流的结尾要用#0作结尾,否则内存会益出。 上述改成:procedure TForm1.Button3Click(Sender: TObject);var Str: string; Ret: string; EndChar: Char; Stream: TMemoryStream;begin Str := 'Test Str'+#0; Stream := TMemoryStream.Create; Stream.Write(Str[1], Length(Str)); Stream.Position := 0; Ret := StrPos(PChar(Stream.Memory), PChar('Str')); ShowMessage(Ret); Stream.Free;end;不行吗? 有问题啊,无论搜索是否成功,ret都为空 UP!!!能在memorystream的指定位置取出一个字符或替换一个字符吗? var LoadStream: TMemoryStream; SaveStream: TMemoryStream; MemStr: string; FindStr: string; ReplaceStr: string;begin LoadStream := TMemoryStream.Create; LoadStream.LoadFromFile('C:\123.txt'); // 打开文件 123.txt SetLength(MemStr, LoadStream.Size); CopyMemory(Pointer(MemStr), LoadStream.Memory, LoadStream.Size); FindStr := '7'; // 查找 7 ReplaceStr := '9'; // 替换为 9 MemStr := StringReplace(MemStr, FindStr, ReplaceStr, [rfReplaceAll]); // 替换 SaveStream := TMemoryStream.Create; SaveStream.Write(MemStr[1], Length(MemStr)); SaveStream.SaveToFile('C:\123S.txt'); // 保存文件到 123S.txt SaveStream.Free; LoadStream.Free;end; 关于canvas.copyrect问题,dest变了后出错 动态添加listview节点问题 求助,有关(dbgrideh) 从文件读入数据,写入数据库的问题。 如何禁mediaplayer中的声音? 关于initialization和finalization DrawGrid是否可以自动重画Canvas.TextOut上去的内容?应怎样实现? 请教?Tquery中修改完的记录为什么不能在TDBgrid中及时更新! 大家快请进!!!!!!!! 为什么吃内存,请各位指点! fastreport里的表格如何设置斜线............. 向高手请教(有关自定义打印)
var
Str: string;
Ret: string;
EndChar: Char;
Stream: TMemoryStream;
begin
Str := 'Test Str';
EndChar := #0; Stream := TMemoryStream.Create;
Stream.Write(Str[1], Length(Str));
Stream.Write(EndChar, 1); Stream.Position := 0;
Ret := StrPos(PChar(Stream.Memory), PChar('Str'));
ShowMessage(Ret);
Stream.Free;
end;千万要记住:流的结尾要用#0作结尾,否则内存会益出。
procedure TForm1.Button3Click(Sender: TObject);
var
Str: string;
Ret: string;
EndChar: Char;
Stream: TMemoryStream;
begin
Str := 'Test Str'+#0; Stream := TMemoryStream.Create;
Stream.Write(Str[1], Length(Str)); Stream.Position := 0;
Ret := StrPos(PChar(Stream.Memory), PChar('Str'));
ShowMessage(Ret);
Stream.Free;
end;
不行吗?
LoadStream: TMemoryStream;
SaveStream: TMemoryStream;
MemStr: string;
FindStr: string;
ReplaceStr: string;
begin
LoadStream := TMemoryStream.Create;
LoadStream.LoadFromFile('C:\123.txt'); // 打开文件 123.txt
SetLength(MemStr, LoadStream.Size);
CopyMemory(Pointer(MemStr), LoadStream.Memory, LoadStream.Size);
FindStr := '7'; // 查找 7
ReplaceStr := '9'; // 替换为 9
MemStr := StringReplace(MemStr, FindStr, ReplaceStr, [rfReplaceAll]); // 替换
SaveStream := TMemoryStream.Create;
SaveStream.Write(MemStr[1], Length(MemStr));
SaveStream.SaveToFile('C:\123S.txt'); // 保存文件到 123S.txt
SaveStream.Free;
LoadStream.Free;
end;