//////////自编某一字符串中两个子字符串出现的次数是否相等的函数(判断[ ] 是否个数一样) function CheckStrTotal(S, string1, string2: string): Boolean; var str1, str2: string; i, j, nb1, nb2, StrLen: integer; begin str1 := S; str2 := S; nb1 := 0; nb2 := 0;
i := pos(string1, str1); while i <> 0 do begin i := pos(string1, str1); if i > 0 then begin StrLen := length(string1); delete(str1, i, StrLen); nb1 := nb1 + 1; end; end;
j := pos(string2, str2); while j <> 0 do begin j := pos(string2, str2); if j > 0 then begin StrLen := length(string2); delete(str2, j, StrLen); nb2 := nb2 + 1; end; end;
if nb1 = nb2 then Result := True else Result := false; end;
//////////检查lrc文件的完整性, 防止死循环////////// function CheckLrcFile(LrcfileStr: string): Boolean; var strlist: tstringlist; str1, str2: string; i, j, mm, nn: integer; begin try strlist := tstringlist.Create; strlist.LoadFromFile(LrcfileStr); for i := 0 to strlist.Count - 1 do begin if CheckStrTotal(strlist[i], '[', ']') then Result := True else begin Result := false; break; end; end; finally strlist.Free; end; end;