![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
надо нечто StrToArray [D3]
ValeX © (2002-07-17 17:19:00)есть, например, строка str="2 8 0 99 8 "
надо получить массив чисел, с возможнотью отследить
ошибку в строке на наличие не числовых символов.
Также надо знать число полученных элементов в массиве.
ValeX (2002-07-26 15:41:00) [1]> MBo
это имхо в винде.
а как минуя?
MBo (2002-07-26 15:34:00) [2]k1=2 ПРАВИЛЬНО. Запятая - разделитель
что у тебя DecimalSeparator?
ValeX (2002-07-26 15:30:00) [3]> MBo
str:="2,4"
SList.CommaText:=Str;
for i:=1 to SList.Count do
Outs[i-1]:=StrToFloat(SList[i-1]);
k1:=SList.Count;
k1=2 неправильно! должно быть 1!
Ev_genus (2002-07-18 09:07:00) [4]
var
S:string;
a:array of word;//для integer нужно учитывать + и - для real E
i, l, j:byte;
begin
s:="2 8 0 99 8";
l:=length(s);
i:=1;
j:=0;
setlength(a, 1);
while i<=l do begin
if s[i] in ["0".."9"] then begin
a[j]:=a[j]*10+ord(s[i])-ord("0"); // ord(0)=43 вроде
end else begin
setlength(a, high(a)+2);
inc(j);
end;
inc(i);
end;
end.
Должно работать если нет пробелов в начале и конце, а также двойных пробелов. Не проверял! Будут проблемы пиши.
Eugene Lachinov (2002-07-18 08:34:00) [5]>MBo
Уже проверил, извини, странное название
MBo (2002-07-18 08:32:00) [6]>Eugene Lachinov
Commatext отлично справляется
Eugene Lachinov (2002-07-18 08:25:00) [7]Тут вроде разделено пробелами, наверно, DelimitedText и Delimiter надо установить
MBo (2002-07-18 06:12:00) [8]AStringList.CommaText:=str;
теперь в каждой строке AStringList[i] лежит отдельное "слово"
RV (2002-07-17 17:49:00) [9]строка это и есть массив символов
или нет?
выкинь не нужные, делов то
Skier (2002-07-17 17:34:00) [10]>ValeX
Ну, ты, прост, однако. Как пять копеек... :)
ValeX (2002-07-17 17:32:00) [11]Skier
влом, может есть уже готовое,
если нет тогда буду думать :))
Skier (2002-07-17 17:28:00) [12]>ValeX
А самому подумать !?
ValeX (2002-07-17 17:27:00) [13]Skier
проверить на цифры понятно,
а как проще всего получить из строки массив чисел?
Skier (2002-07-17 17:24:00) [14]>ValeX
В догонку :
> Также надо знать число полученных элементов в массиве.
High(..)
Skier (2002-07-17 17:23:00) [15]>ValeX
> возможнотью отследить
> ошибку в строке на наличие не числовых символов
function IsNotADigit(const ACharToCheck : Char) : Boolean;
begin
Result := not(ACharToCheck in ["0".."9"]);
end;