Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Войти
 
Страницы: 1
RSS
Чтение числового массива из поля edit
 
Добрый день всем...Возможно тема достойна находиться в разделе для новичков. Вопрос к программистам делфи
Есть проблема чтения числового одномерного массива из компоненты Edit..  :oops:  
Числа вводятся через пробел, нужно их внести в массив для дальнейшей обработки(сортировки)
Всем спасибо
 
Ну можно перефразировать..как прочитать из обычной строки типа стринг числаЮ разделенные пробелом
в массив )
 
С дельфи не работал, но подозреваю что функции преобразования строки в массив там нет. Зато должна быть функция поиска индекса символа по значению, выделение подстроки и конвертации символьной строки в число. Вот ими то и можно воспользоваться: в цикле проходим строку выделяя с помощью поиска пробела очередную подстроку и преобразуем её в число, которое и добавляем в массив.
 
uses SysUtils;
type TARR = array of integer;
function GetArray:TARR;
var S:string; A:TARR; P0,P1,I,L:Integer; V:Integer;
begin
 S:=Edit1.Text;
 I:=0; L:=Length(S);
 P0:=0; P1:=1;
 repeat
   // Пропускаем пробелы
   while P1<=L do if S[P1]=' ' then inc(P1) else break;
   P0:=P1;
   // Ищем пробелы
   while P1<=L do if S[P1]<>' ' then inc(P1) else break;
   if P0<>P1 then try
     V:=StrToInt(Copy(S,P0,P1-P0));
     inc(I);
     SetLength(A,I);
     A[I-1]:=V;
   except
   // Попалось не-число
   end;
 until P0>L;
 Result:=A;
end;
Изменено: Александр Златокрылец - 06.01.2009 15:38:32
Страницы: 1
Читают тему