I agree. I also find that adding spaces in the right place can help when
scanning over code looking for problems.

Eg

Result := format( '%s%s%s%s%s', [ Result, Sep, Quote, Item[I], Quote ] )

is easier to read than

Result := format('%s%s%s%s%s',[Result,Sep,Quote,Item[I],Quote])

----- Original Message -----
From: Neven MacEwan <[EMAIL PROTECTED]>
To: Multiple recipients of list delphi <[EMAIL PROTECTED]>
Sent: Friday, November 01, 2002 10:58 AM
Subject: Re: [DUG]: Friday Challange


> Tracey
>
> Stylistic really I also finding typing pred(Count) is less error
> prone the - 1 sometimes gets lost
>
> N
>
> ----- Original Message -----
> From: "Tracey Maule" <[EMAIL PROTECTED]>
> To: "Multiple recipients of list delphi" <[EMAIL PROTECTED]>
> Sent: Friday, November 01, 2002 10:48 AM
> Subject: Re: [DUG]: Friday Challange
>
>
> Just as an aside, could u tell me why u are all using pred(itemcount)
> instead of (itemcount - 1)????
>
>
> ----- Original Message -----
> From: Stephen Bertram
> To: Multiple recipients of list delphi
> Sent: Friday, November 01, 2002 9:38 AM
> Subject: RE: [DUG]: Friday Challange
>
>
> I've done this in 5 different ways.  One of the more flexible is
>
> function statement(Sep, Quote: String): string;
> var
>   I: integer;
> begin
>   Result := Sep;
>   for I := 0 to pred(ItemCount) do
>     Result := format('%s%s%s%s%s',[Result,Sep,Quote,Item[I],Quote])
>   Delete(Result, 1, Length(Sep);
> end;
>
> The main advantage of this is speed where the list is large - the
> conditional is removed from the iteration.
> (Note that many variants of SQL limit the number of parameters in a list
to
> 255 and the length of the list to 2000 or 4000.)
>
> One of our standard method for comma separated lists is to use a
stringlist
> (not efficient but simple and avoids empty lists):
>
> function statement(FieldName, EmptyCondition: String; Quote: Boolean):
> string;
> var
>   i integer;
>   ResList : TStringList;
> begin
>   ResList := TStringList.Create;
>   for I := 0 to pred(ItemCount) do
>     if Quote
>       ResList.Add(Format('''%s''',[Item[i]]))
>     else
>       ResList.Add(Item[i]);
>   if ResList.Count > 0 then
>     Result := Format('%s in (%s)',[FieldName, ResList.CommaText]
>   else
>     Result := EmptyCondition;
>   ResList.Free;
> end;
>
> Result := $0.02;
>
> Stephen
>
>   -----Original Message-----
>   From: Neven MacEwan [mailto:neven@;mwk.co.nz]
>   Sent: Friday, 1 November 2002 12:28 a.m.
>   To: Multiple recipients of list delphi
>   Subject: [DUG]: Friday Challange
>
>
>   Hi all,
>
>   Further to my enpty string question, I'm writing a lot of
>   functions that return a set of strings joined by a separator
>   ie 'col1, col2,...' or 'col1 = 'a' and colb = 'b'' (as you may guess
>   these are all parts of SQL Statements)
>
>   given a function 'Itemcount' that returns the number of items
>   and item(i) that returns the item string, and function sep what is the
>   best form of such a function
>
>   to seed the duscussion I'll give you one of my variants
>
>   function statement: string;
>   var
>     I: integer;
>   begin
>     Result := '';
>     for I := 0 to pred(ItemCount) do
>       if I = 0 then Result := Item(I)
>       else Result := format('%s%s%s',[Result,Sep,Item(I)])
>   end;
>
>   Variants and explainations pls
>
>   Neven
>
>
> --------------------------------------------------------------------------
-
>     New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
>                   Website: http://www.delphi.org.nz
> To UnSub, send email to: [EMAIL PROTECTED]
> with body of "unsubscribe delphi"
> Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/

---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz
To UnSub, send email to: [EMAIL PROTECTED] 
with body of "unsubscribe delphi"
Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/

Reply via email to