
20.07.2011, 01:13
|
 |
.
|
|
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
|
|
Примерно так:
Код:
type
int_arr = array of Integer;
function TForm2.Parse_string_to_array(parsing_str, splitter : String) : int_arr;
var
I, Count, str_length : Integer;
generated_arr : int_arr;
temp_str : String;
v : variant;
begin
SetLength(generated_arr, 0);
Result := generated_arr;
if parsing_str = '' then
Exit;
Count := 1;
temp_str := '';
SetLength(generated_arr, Count);
str_length := Length(parsing_str);
for I := 1 to str_length + 1 do
begin
if (parsing_str[i] <> splitter) and (parsing_str[i] <> #0) then
temp_str := temp_str + parsing_str[i]
else
begin
v := temp_str;
generated_arr[Count - 1] := v;
v := '';
temp_str := '';
inc(Count);
SetLength(generated_arr, Count);
end;
end;
Result := generated_arr;
end;
procedure TForm2.Button3Click(Sender: TObject);
var
arr : int_arr;
begin
arr := Parse_string_to_array('9,6,4,12,5,2,6,5,7,5,3,11,10,5,10,7', ',');
end;
Всё работает, никаких AV я не получил.
Ааа..., так там у тебя ошибочка была при обращении к массиву, выход за пределы диапазона.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
|