I won't answer everything but just on this one question:

On 23 November 2010 11:04, John Bird <johnkb...@paradise.net.nz> wrote:

> Extra question:
>
> It looks like code like
>
>    for i:=1 to length(string1) do
>    begin
>            DoSomethingWithOneChar(string1[i]);
>    end;
>
> cannot be used reliably.   The problems are that length(string1) looks like
> it cannot be safely used - as unicode characters may include 2 codepoints
> and length(string1) highlights that there is a difference between the
> number
> of unicode characters in a string and the number of codepoints.   Still
> figuring out what is the best practice here, as I have quite a lot of
> string
> routines.   Should be be OK as long as the unicode text actually is ASCII.
>
>
you can use something like this:

var
  C: Char;
...
  for C in String1 do
  begin
    DoSomethingWithOneChar(C);
  end;

In this case you don't need to know the index of each character, you just
get the char using the for..in..do loop.
_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: delphi@delphi.org.nz
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to delphi-requ...@delphi.org.nz with Subject: 
unsubscribe

Reply via email to