Hello Francois,

I now see that there is NO bug in ICS component but there IS a bug in
the demo. Please see my messages below for StrToDateTime problem in
the httpstst demo.

Thanks,

SZ

On 5/26/09, Fastream Technologies <ga...@fastream.com> wrote:
> FYI: It does not matter if I add the day of the week as well to the date!
>
> On 5/26/09, Fastream Technologies <ga...@fastream.com> wrote:
> > Hello,
> >
> > In the demo, in the function prepareconnection, you get the
> > if-modified-since date from a text box and then supply it to
> > StrToDateTime. When I put a date like,
> >
> > 13 May 2009, 14:23:45 GMT
> >
> > or any date that is returned from last-modified header of responses
> > from the web, there is an exception raised--"cannot convert". This
> > function takes a string of the same format and returns a TDateTime
> > value of it. I am not sure if the error happens on other locales but
> > this is the case here (TR).
> >
> > Also, did you get my one previous message that contains a url to a
> > screenshot? I think that is more important right now.
> >
> > Thanks,
> >
> > SZ
> >
> > On 5/26/09, Francois Piette <francois.pie...@skynet.be> wrote:
> > > Could you produce a clear explanation of the issue you are faced with
> > > instead of publishing long code no one has time to read ?
> > > --
> > > francois.pie...@overbyte.be
> > > Author of ICS (Internet Component Suite, freeware)
> > > Author of MidWare (Multi-tier framework, freeware)
> > > http://www.overbyte.be
> > >
> > > ----- Original Message -----
> > > From: "Fastream Technologies" <ga...@fastream.com>
> > > To: "ICS support mailing" <twsocket@elists.org>
> > > Sent: Tuesday, May 26, 2009 2:15 PM
> > > Subject: Re: [twsocket] C++ THttpsTst demo code problem
> > >
> > >
> > > > Hello,
> > > >
> > > > I believe there _might_ be a problem with Httpstst/Thttpcli 304
> > > > responses with no "connection" response header. However due to the
> > > > problem below, I am unable to test with the demos. Hope somebody could
> > > > help.
> > > >
> > > > Regards,
> > > >
> > > > SZ
> > > >
> > > > On 5/25/09, Fastream Technologies <ga...@fastream.com> wrote:
> > > > > Hello,
> > > > >
> > > > > I see the code:
> > > > >
> > > > >    if(DateTimeEdit->Text != "")
> > > > >        SslHttpCli1->ModifiedSince = StrToDateTime(DateTimeEdit->Text);
> > > > >    else
> > > > >        SslHttpCli1->ModifiedSince = 0;
> > > > >
> > > > > in prepareconnection(). I am not sure what to enter to DateTimeEdit as
> > > > > it seems that what the server returns  as last-modified is not
> > > > > accepted--at least not in my locale. What do you suggest? I recall
> > > > > donating the function:
> > > > >
> > > > > function THttpMTConnection.RFCToDateTime(S:string):TDateTime;
> > > > > var
> > > > >   M,D,Y:Word;
> > > > >   H,N,Sc,T:Word;
> > > > >   Ch,CHtag:Char;
> > > > >   Ts:string;
> > > > >   PosCh:integer;
> > > > >
> > > > > begin
> > > > >   posch:=Pos(';',S);
> > > > >   if posch>0 then
> > > > >      delete(s,posCH,length(s)-posCh+1);
> > > > >   T:=0;
> > > > > try
> > > > >   Ch:=S[3];
> > > > > except
> > > > >   Result:=Now;
> > > > >   Exit;
> > > > > End;
> > > > >   S:=Uppercase(S);
> > > > >   if Ch=#32 then begin
> > > > >      Delete(S,1,4);
> > > > >      Ts:=Copy(S,1,Pos(#32,S)-1);
> > > > >      Delete(S,1,Length(TS));
> > > > >      S:=Trim(S);
> > > > >      M:=Pos(TS,#32#32'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC')div 3;
> > > > >      Ts:=Copy(S,1,Pos(#32,S)-1);
> > > > >      Delete(S,1,Length(TS)+1);
> > > > >      S:=Trim(S);
> > > > >      try
> > > > >         D:=StrToInt(TS);
> > > > >      except
> > > > >         D:=1;
> > > > >      end;
> > > > >      Ch:=S[3];
> > > > >      if Ch<>':' then begin
> > > > >         Ts:=Copy(S,1,Pos(#32,S)-1);
> > > > >         Delete(S,1,Length(TS)+1);
> > > > >         S:=Trim(S);
> > > > >         try
> > > > >            Y:=StrToInt(TS);
> > > > >         except
> > > > >            DecodeDate(Now,Y,T,T);
> > > > >            T:=0;
> > > > >         end;
> > > > >      end;
> > > > >      Ts:=Copy(S,1,Pos(':',S)-1);
> > > > >      Delete(S,1,Length(TS)+1);
> > > > >      S:=Trim(S);
> > > > >      try
> > > > >         H:=StrToInt(TS);
> > > > >      except
> > > > >         H:=0;
> > > > >      end;
> > > > >      Ts:=Copy(S,1,2);
> > > > >      Delete(S,1,Length(TS)+1);
> > > > >      S:=Trim(S);
> > > > >      try
> > > > >         N:=StrToInt(TS);
> > > > >      except
> > > > >         N:=0;
> > > > >      end;
> > > > >      Ts:=Copy(S,1,2);
> > > > >      Delete(S,1,Length(TS)+1);
> > > > >      S:=Trim(S);
> > > > >      try
> > > > >         Sc:=StrToInt(TS);
> > > > >      except
> > > > >         Sc:=0;
> > > > >      end;
> > > > >      if S<>'' then begin
> > > > >         Ch:=S[1];
> > > > >         if Ch in ['0'..'9'] then begin
> > > > >            try
> > > > >               Y:=StrToInt(S);
> > > > >            except
> > > > >               DecodeDate(Now,Y,T,T);
> > > > >               T:=0;
> > > > >            end;
> > > > >         end;
> > > > >      end;
> > > > >   end
> > > > >   else
> > > > >      if Ch=',' then begin// RFC 822 or RFC 1123
> > > > >         Delete(S,1,Pos(#32,S));
> > > > >         S:=Trim(S);
> > > > >         Ts:=Copy(S,1,Pos(#32,S)-1);
> > > > >         Delete(S,1,Length(TS)+1);
> > > > >         S:=Trim(S);
> > > > >         try
> > > > >            D:=StrToInt(TS);
> > > > >         except
> > > > >            D:=1;
> > > > >         end;
> > > > >         Ts:=Copy(S,1,Pos(#32,S)-1);
> > > > >         Delete(S,1,Length(TS)+1);
> > > > >         S:=Trim(S);
> > > > >         M:=Pos(TS,#32#32'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC')div 3;
> > > > >         Ts:=Copy(S,1,Pos(#32,S)-1);
> > > > >         Delete(S,1,Length(TS)+1);
> > > > >         S:=Trim(S);
> > > > >         try
> > > > >            Y:=StrToInt(TS);
> > > > >         except
> > > > >            DecodeDate(Now,Y,T,T);
> > > > >            T:=0;
> > > > >         end;
> > > > >         Ts:=Copy(S,1,Pos(':',S)-1);
> > > > >         Delete(S,1,Length(TS)+1);
> > > > >         S:=Trim(S);
> > > > >         try
> > > > >            H:=StrToInt(TS);
> > > > >         except
> > > > >            H:=0;
> > > > >         end;
> > > > >         Ts:=Copy(S,1,2);
> > > > >         Delete(S,1,Length(TS)+1);
> > > > >         S:=Trim(S);
> > > > >         try
> > > > >            N:=StrToInt(TS);
> > > > >         except
> > > > >            N:=0;
> > > > >         end;
> > > > >         Ts:=Copy(S,1,2);
> > > > >         Delete(S,1,Length(TS)+1);
> > > > >         S:=Trim(S);
> > > > >         try
> > > > >            Sc:=StrToInt(TS);
> > > > >         except
> > > > >            Sc:=0;
> > > > >         end;
> > > > >      end
> > > > >      else begin// RFC 850 or RFC 1036
> > > > >         Delete(S,1,Pos(#32,S));
> > > > >         S:=Trim(S);
> > > > >         chtag:='-';
> > > > >         posCh:=Pos(chtag,S);
> > > > >         if (posCH>0)and(posCh<5) then
> > > > >            chtag:='-'
> > > > >         else
> > > > >            chtag:=' ';
> > > > >         Ts:=Copy(S,1,Pos(chtag,S)-1);
> > > > >         Delete(S,1,Length(TS)+1);
> > > > >         S:=Trim(S);
> > > > >         try
> > > > >            D:=StrToInt(TS);
> > > > >         except
> > > > >            D:=1;
> > > > >         end;
> > > > >         Ts:=Copy(S,1,Pos(chtag,S)-1);
> > > > >         Delete(S,1,Length(TS)+1);
> > > > >         S:=Trim(S);
> > > > >         M:=Pos(TS,#32#32'JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC')div 3;
> > > > >         Ts:=Copy(S,1,Pos(#32,S)-1);
> > > > >         Delete(S,1,Length(TS)+1);
> > > > >         S:=Trim(S);
> > > > >         try
> > > > >            Y:=StrToInt(TS);
> > > > >         except
> > > > >            DecodeDate(Now,Y,T,T);
> > > > >            T:=0;
> > > > >         end;
> > > > >         Ts:=Copy(S,1,Pos(':',S)-1);
> > > > >         Delete(S,1,Length(TS)+1);
> > > > >         S:=Trim(S);
> > > > >         try
> > > > >            H:=StrToInt(TS);
> > > > >         except
> > > > >            H:=0;
> > > > >         end;
> > > > >         Ts:=Copy(S,1,2);
> > > > >         Delete(S,1,Length(TS)+1);
> > > > >         S:=Trim(S);
> > > > >         try
> > > > >            N:=StrToInt(TS);
> > > > >         except
> > > > >            N:=0;
> > > > >         end;
> > > > >         Ts:=Copy(S,1,2);
> > > > >         Delete(S,1,Length(TS)+1);
> > > > >         S:=Trim(S);
> > > > >         try
> > > > >            Sc:=StrToInt(TS);
> > > > >         except
> > > > >            Sc:=0;
> > > > >         end;
> > > > >      end;
> > > > >   if Y<100 then begin
> > > > >      DecodeDate(Now,Y,T,T);
> > > > >   end;
> > > > >   try
> > > > >      Result:=EncodeDate(Y,M,D) + EncodeTime(H,N,Sc,T);
> > > > >   except
> > > > >      result:=now;
> > > > >   end;
> > > > > end;
> > > > >
> > > > > Why don't you use it?
> > > > >
> > > > > Regards,
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to