"Ove Kjeldgaard" <ok@newmail.dk> skrev i en meddelelse
news:r40fmv0tn2s3d2d48pl2cvlak03dm42o7v@4ax.com...
> "Harald" <news@kroning.dk> wrote:
>
> >
> >"Thor" <thr@image.danmark> skrev i en meddelelse
> >news:bk7nb0$1bvh$1@news.cybercity.dk...
> >> Og hvis det skal være helt vildt:
> >>
> >> > function FillStreng(Antal : integer) : string;
> >> > var
> >> >
> >> > begin
> >> setlength(result, antal);
> >> fillchar(result, sizeof(result), ord('X'));
> >> > end;
> >
> >Jeg får en Access violation hvis jeg prøver det.
> >
>
> Hvad så med:
>
> function FillStreng(Antal : integer) : string;
> begin
> setlength(result, antal);
> fillchar(result[1], sizeof(result)-1, ord('X'));
> end;
Sizeof vil altid give 4 som er størrelsen på result der jo bare er en
pointer, length giver længden af strengen. Men jeg har jo parameteren Antal
så dette her virker:
fillchar(result[1], Antal, 'x');
og det er _betydelig_ hurtigere end en for-next lykke, så jeg takker for
ideen
/HK