在所涉及接收通過串行鏈路串最近的應用德爾福功能,我發現自己寫的代碼,如:爲了檢查某個特定子是在乞討對於目前測試字符串的位置x的
if (pos('needle', haystack) = 1) then ...
一個字符串。
我猛然意識到POS機的功能是不理想的這個,因爲它根本不知道我在找哪個位置的子要英寸
是否有一個很好的功能,這是否?
是否有更通用的功能,如IsSubStringAt(needle, haystack, position)
?
我沒想到用這樣的事情的:
function IsSubstrAt(const needle, haystack: string; position: Integer): Boolean;
var
ii: integer;
begin
result := true;
for ii := 1 to length(needle) de begin
if (haystack[poition + ii -1] <> needle[ii]) then begin
result := false;
break;
end;
end;
end;
一些錯誤檢查。
我希望找到一個準備好的滾動答案。
如果針提前到達了鏈接數據的知,你可能會讓自己一點狀態機監聽出來針的陸續到達的人物:我通過修改原德爾福
Pos
功能使它。 – MartynA 2014-10-29 15:56:13@Martyn針是已知的,還有99種不同長度的其他針。你會做100個不同的狀態機,還是1個處理全部100個針? – 2014-10-29 16:28:59
好吧,叫我雞先生,但如果只有一根針,我只能真正考慮自己實施一個S-M。 OTOH,肯定會有一些庫代碼在做一個多針,速度優化的代碼。 ISTR早期(我的意思是互聯網前)的站點到站點通信包(可能是串擾)之一就是這樣 - 我在典型的調制解調器固件中找到一個用於識別「At」命令等順便說一句,+1爲非常有趣的q。 – MartynA 2014-10-29 16:42:15