[Lazarus-es] uso de SetLength
Jesus Reyes A.
jesusrmx en gmail.com
Mie Jul 20 21:08:35 CEST 2016
En Wed, 20 Jul 2016 14:02:05 -0500, Jesus Reyes A. <jesusrmx en gmail.com>
escribió:
> 1 function vbSplit(S: string; Delimiter: char): TStrArray;
> 2 var
> 3 C: integer;
> 4 begin
> 5 repeat
> 6 SetLength(Result, Length(Result) + 1);
> 7 C := Pos(Delimiter, S);
> 8 if C = 0 then
> 9 C := Length(S) + 1;
> 10 Result[Length(Result) - 1] := Copy(S, 1, C - 1);
> 11 Delete(S, 1, C);
> 12 until Length(S) = 0;
> 13 end;
>
> Según lo anterior, la línea 6 Length(Result) es indefinido (para todo
> propósito "indefinido" aquí se >refiere a un detalle interno que depende
> de la implementación actual en el compilador). En mi opinión >SetLength
> se esta utilizando correctamente solo que antes que nada el resultado
> debe ser inicializado >y para ello basta insertar entre las lineas 5 y 6
> un SetLength(Result, 0); y listo.
Perdón, obviamente me he equivocado, no es entre las líneas 5 y 6 sino
entre las líneas 4 y 5.
Jesus Reyes A.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus-ide.org/pipermail/lazarus-es/attachments/20160720/514d3e11/attachment.html>
More information about the Lazarus-es
mailing list