| 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;
 |