1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57:
| function Getpos (Filestring:String;Beginp:integer;Searchstr:String):integer; var tempstring:String;
begin tempstring := copy(Filestring,Beginp,Length(Filestring)-Beginp); unit3.Form3.Memo1.Lines.Add(tempstring);
Getpos := pos(Searchstr,tempstring) + Beginp; end;
function Getbeginofep (Filestr:String;Episodenr:integer):integer; var epipos,begpos,returnpos,nrpos,number,code:integer; ThisLine:String; begin epipos:=0; begpos:=1; while epipos=0 do begin begpos:=Getpos(Filestr,begpos,'"Start of'); returnpos:=Getpos(Filestr,begpos,Chr(13)); ThisLine:= Midstr(Filestr,begpos,returnpos-begpos); nrpos:=pos('Episode",',ThisLine);
if nrpos>0 then begin val(midstr(ThisLine,nrpos+1,length(ThisLine)-nrpos-1),Number,Code); if Number = Episodenr then begin Getbeginofep:=begpos; epipos:=1; end else begpos:=begpos+1; end else begpos:=begpos+1; end; end;
procedure Seekepisodestring(Episodenr:integer;Episodestring:String);
var beginpos,endpos:integer; Filestr:String;
begin Filestr:=unit4.Filestring;
beginpos:= Getbeginofep(Filestr,Episodenr); endpos:= Getpos(Filestr,beginpos,'End of Episode"');
Episodestring:=Copy(Filestr,beginpos,endpos-beginpos); end; |