- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在包含大量数据的 RawByteString 上运行 AnsiStrings.StringReplace,其中一些数据需要替换。它会起作用,除了在 StringReplace 内部它将我的字符串转换为 PAnsiChar,因此搜索一旦到达 blob 内的第一个 #0 字节就会结束。
我正在寻找一个与 StringReplace 类似的例程,但可以安全地在可能包含空字节的 blob 上使用。有谁知道吗?
最佳答案
我猜 StringReplace 中的“违规”函数是 AnsiPos->AnsiStrPos
所以...我想缺少一个已经有效的解决方案,我会复制/粘贴 StringReplace 代码并将 AnsiPos 更改为其他内容。 (即 AnsiStrings.PosEx)
function RawByteStringReplace(const S, OldPattern, NewPattern: AnsiString;
Flags: TReplaceFlags): AnsiString;
var
SearchStr, Patt, NewStr: AnsiString;
Offset: Integer;
begin
//Removed the uppercase part...
SearchStr := S;
Patt := OldPattern;
NewStr := S;
Result := '';
while SearchStr <> '' do
begin
Offset := AnsiStrings.PosEx(Patt, SearchStr);
if Offset = 0 then
begin
Result := Result + NewStr;
Break;
end;
Result := Result + Copy(NewStr, 1, Offset - 1) + NewPattern;
NewStr := Copy(NewStr, Offset + Length(OldPattern), MaxInt);
if not (rfReplaceAll in Flags) then
begin
Result := Result + NewStr;
Break;
end;
SearchStr := Copy(SearchStr, Offset + Length(Patt), MaxInt);
end;
end;
关于delphi - StringReplace 的二进制版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3106139/
我正在尝试在包含大量数据的 RawByteString 上运行 AnsiStrings.StringReplace,其中一些数据需要替换。它会起作用,除了在 StringReplace 内部它将我的字
Dephi 7 帮助手册提到了 StringReplace... Returns a string with occurrences of one substring replaced by anot
我使用 StringReplace 在生成的 XML 中用 char 本身替换 > 和 ',[rfReplaceAll]) ; StringReplace(xml.Text,'<',' 需要太长
我从客户那里读取文件,我需要处理读取的数据并删除一些不需要的字符。我的函数有效,但我正在尝试改进 FixData 函数以提高速度/性能和可维护性。 是否可以将多个 StringReplace 调用替换
我创建了一个 schematron 规则,以不区分大小写的方式搜索由变量给出的特定文本(由“i”标志提供): ... 哪里 $phrase = '(phrase)' 我希望用户能够使用快速修复并替换文
我正在开发一个小项目,该项目需要我解析 JSON 文件并将结果放入数据库中。我正在使用 SuperOjbect 解析文件并生成结果,但我遇到了一些障碍,需要一些帮助。 这是我需要解析的 JSON 文件
这个问题已经有答案了: DecimalSeparator in SysUtils and System.SysUtils (2 个回答) 已关闭 8 年前。 您好,我一直在编码,到目前为止,在WinX
我是一名优秀的程序员,十分优秀!