|
@@ -0,0 +1,41 @@
|
|
|
+{ %OPT=-O2 }
|
|
|
+{$mode objfpc}
|
|
|
+
|
|
|
+Function SmartPos(Pattern:Char; const Target:AnsiString; SrchBeg,SrchEnd: LongInt): LongInt;
|
|
|
+Var
|
|
|
+ i : LongInt;
|
|
|
+ l : LongInt;
|
|
|
+ p : char;
|
|
|
+ t : char;
|
|
|
+Begin
|
|
|
+
|
|
|
+
|
|
|
+ l := Length(Target);
|
|
|
+
|
|
|
+ p := Pattern;
|
|
|
+
|
|
|
+ for i := SrchBeg To l do begin
|
|
|
+ t := Target[i];
|
|
|
+ if t = p then begin
|
|
|
+ Writeln('Exit value ', i);
|
|
|
+ Result := i;
|
|
|
+ Exit(i);
|
|
|
+ end;
|
|
|
+ end;
|
|
|
+
|
|
|
+ Writeln('Exit value 0');
|
|
|
+ Exit(0);
|
|
|
+End;
|
|
|
+
|
|
|
+var
|
|
|
+ p1 : Integer;
|
|
|
+
|
|
|
+begin
|
|
|
+
|
|
|
+ p1 := 0;
|
|
|
+ writeln(p1);
|
|
|
+ p1 := smartpos(':', '20394583245:092834523409:039485', 1, 20);
|
|
|
+ writeln(p1);
|
|
|
+ if p1<>12 then
|
|
|
+ halt(1);
|
|
|
+end.
|