永发信息网

delphi 相同字符 出现的次数计算 高分

答案:2  悬赏:0  手机版
解决时间 2021-02-07 04:58
  • 提问者网友:做自己de王妃
  • 2021-02-06 21:44
判断memo内字符出现了几次
可不可以大小写(如下)混合-也视为一样。
内容-
---------------
woki小写
12
Woki大小
22

--------------------

woki小写
12
Woki大小
22
Woki
woki

就需单纯计算几次就可
最佳答案
  • 五星知识达人网友:荒野風
  • 2021-02-06 22:10
请看如下函数,在字符串中搜索相应字符,你可以定义一个变量来存储字符出现的次数,代码如下
首部 function SearchBuf(Buf: PChar; BufLen: Integer; SelStart, SelLength:
Integer; SearchString: String; Options: TStringSearchOptions = [soDown]):
PChar; $[StrUtils.pas
功能 返回第一个搜索到的指针位置
说明 这函数常用于文本中搜索字符串
参考
例子
///////Begin SearchBuf
function SearchEdit(EditControl: TCustomEdit; const SearchString: String;
SearchOptions: TStringSearchOptions; FindFirst: Boolean = False): Boolean;
var
Buffer, P: PChar;
Size: Word;
begin
Result := False;
if (Length(SearchString) = 0) then Exit;
Size := EditControl.GetTextLen;
if (Size = 0) then Exit;
Buffer := StrAlloc(Size + 1);
try
EditControl.GetTextBuf(Buffer, Size + 1);
P := SearchBuf(Buffer, Size, EditControl.SelStart, EditControl.SelLength,
SearchString, SearchOptions);
if P <> nil then begin
EditControl.SelStart := P - Buffer;
EditControl.SelLength := Length(SearchString);
Result := True;
end;
finally
StrDispose(Buffer);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
SearchOptions: TStringSearchOptions;
begin
SearchOptions := [];
if CheckBox1.Checked then
Include(SearchOptions, soDown);
if CheckBox2.Checked then
Include(SearchOptions, soMatchCase);
if CheckBox3.Checked then
Include(SearchOptions, soWholeWord);
SearchEdit(Memo1, Edit1.Text, SearchOptions);
Memo1.SetFocus;//定位到那个字符,如果只纯粹为了统计想去掉也可以,
end;
///////End SearchBuf
通过循环调用,最终列举出所有相同字符
全部回答
  • 1楼网友:想偏头吻你
  • 2021-02-06 23:48
function stringn(s1,s2:string):integer begin result:=0; while pos(s1,s2)>=0 do begin s2:=copy(s2,pos(s1,s2)+1,9999); //假设s2最大长度为9999个字符 result:=result+1 ; end; end;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯