DZ-Jay wrote:
> Arno Garrels wrote:
>>> From: Vander Clock Stephane
>> 
>> [..]
>> 
>>> I think you must replace
>>>        S := Copy(S, 5, Length(S));
>>> 
>>> by
>>>        S := Copy(S, 6, Length(S));
>> 
>> 
>> I don't know why,  length of both strings is 5 not 6.
>> 
>> Typically the lines in question of a EHLO response look like
>> 250-AUTH=LOGIN CRAM-MD5 PLAIN
>> 250-AUTH CRAM-MD5 LOGIN PLAIN
> 
> It depends on whether the Index argument (the second argument to Copy)
> is zero-based or not, and for that matter, Delete() also.
> 
>      Delete(S, 1, 4);
>      if (CompareText(Copy(S, 1, 5), 'AUTH ') = 0) or
>         (CompareText(Copy(S, 1, 5), 'AUTH=') = 0) then begin
>          S := Copy(S, 5, Length(S));
>      {...}
> 
> If the Index is not zero-based (starts with 1), then it should be 6,
> otherwise you'd get '=AUTH' or ' AUTH'.  

But S is _not_ an array, it is a String type.
At index 0 of a String you have the length. 

---
Arno Garrels [TeamICS]




If it is zero-based, then there
> is another problem, since the CompareText calls Copy() with an Index of
> 1, which means that it starts to delete at the second character, not to
> mention the call to Delete() uses an Index of 1 also.
> 
> I cannot confirm right now (I do not have Delphi installed on this
> computer) which it is.  Arno, can you verify?

 
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to