|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Чтение числового массива из поля edit
Добрый день всем...
Есть проблема чтения числового одномерного массива из компоненты Edit.. Числа вводятся через пробел, нужно их внести в массив для дальнейшей обработки(сортировки) Всем спасибо |
#2
|
||||
|
||||
тебе надо бежать по пробелам и копировать значения между ними
Код:
function FillArrayFromString(Text:String;Buff:array of Integer):Boolean; var _pos:Word; _text:String; index:word; BuffPos:Integer; begin Result:=False; _text:=text; BuffPos:=0; If _Text[Length(_Text)]<>' ' Then _Text:=_Text+' '; For Index:=0 To Length(_text) Do Begin If _text[Index]<>' ' Then Continue; Try Buff[BuffPos]:=StrToInt(Copy(_text,1,Index)); Delete(_text,1,index); Exscept Result:=False; Exit; End; Inc(BuffPos); End; end; — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
|||
|
|||
Все сделал как написано...но при использовании этой функции возникает шибка. Например после ввода
12 4 5 6 EConvertMessage with error "12'is not valid integer value'. |
#4
|
||||
|
||||
Код:
function FillArrayFromString(Text:String;Buff:array of Integer):Boolean; var _pos:Word; _text:String; index:word; BuffPos:Integer; begin Result:=False; _text:=text; BuffPos:=0; If _Text[Length(_Text)]<>' ' Then _Text:=_Text+' '; Index:=0; While Index<Length(_text) Do Begin Inc(Index); If _text[Index]<>' ' Then Continue; Try Buff[BuffPos]:=StrToInt(Copy(_text,1,Index-1)); Delete(_text,1,index); Index:=0; Except Result:=False; Exit; End; Inc(BuffPos); End; end; — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#5
|
|||
|
|||
Код:
function StrToMas(const Source: String; var Buf: array of Integer): Boolean; var i, iPos: Integer; Dest: String; begin Result := False; Dest := Trim(Source) + ' '; iPos := Pos(' ', Dest); i := Low(Buf); while iPos <> 0 do begin if not TryStrToInt(Trim(Copy(Dest, 1, iPos-1)), Buf[i]) then Exit; Delete(Dest, 1, iPos); iPos := Pos(' ', Dest); Inc(i); end; Result := True; end; |