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'. 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? dZ. -- 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