In case you want to use an array containing String's, you can also use it in the following way, if you want:
Type
aStrings = Array Of String; // Utilize um Tipo de Matriz para Parâmetros de Rotinas
...
Procedure Quebra( Input: String; Separador: Char; Var ListString: AStrings );
Var
Resultado: TStringList;
idLst: Integer;
Begin
// Previne que exista elementos maiores que Resultado.Count
// uma vez que se trata de variável externa.
SetLength( ListString, 0 );
Resultado := TStringList.Create;
Try
// Utilizada apenas um caractere como delimitador
Resultado.Delimiter := Separador;
Resultado.DelimitedText := Input;
// Define novo tamanho para a matriz
SetLength( ListString, Resultado.Count );
For idLst := 0 To Pred( Resultado.Count ) Do
ListString[ idLst ] := Resultado[ idLst ];
Finally
Resultado.Free;
End;
End;
OR
Procedure Quebra( Input: String; Separador: String; Var ListString: AStrings );
Var
Resultado: TStringList;
idLst: Integer;
Begin
// Previne que exista elementos maiores que Resultado.Count
// uma vez que se trata de variável externa.
SetLength( ListString, 0 );
Resultado := TStringList.Create;
Try
// Possibilita que seja utilizada uma sequencia de caracteres como delimitador
Resultado.Text := StringReplace( Input, Separador, #13#10, [ rfReplaceAll ] );
// Define novo tamanho para a matriz
SetLength( ListString, Resultado.Count );
For idLst := 0 To Pred( Resultado.Count ) Do
ListString[ idLst ] := Resultado[ idLst ];
Finally
Resultado.Free;
End;
End;
As for the usage, it looks like this:
Var
aTexto: aStrings;
Begin
Quebra( 'Como quebrar uma string', ' ', aTexto );
//aTexto[ 0 ] = 'Como'
//aTexto[ 1 ] = 'quebrar'
//aTexto[ 2 ] = 'uma'
//aTexto[ 3 ] = 'string'
End;