Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.08;
Скачать: CL | DM;

Вниз

надо нечто StrToArray   Найти похожие ветки 

 
ValeX ©   (2002-07-17 17:19) [0]

есть, например, строка str="2 8 0 99 8 "

надо получить массив чисел, с возможнотью отследить
ошибку в строке на наличие не числовых символов.
Также надо знать число полученных элементов в массиве.


 
Skier ©   (2002-07-17 17:23) [1]

>ValeX

> возможнотью отследить
> ошибку в строке на наличие не числовых символов



function IsNotADigit(const ACharToCheck : Char) : Boolean;
begin
Result := not(ACharToCheck in ["0".."9"]);
end;




 
Skier ©   (2002-07-17 17:24) [2]

>ValeX
В догонку :

> Также надо знать число полученных элементов в массиве.


High(..)


 
ValeX ©   (2002-07-17 17:27) [3]

Skier

проверить на цифры понятно,
а как проще всего получить из строки массив чисел?


 
Skier ©   (2002-07-17 17:28) [4]

>ValeX
А самому подумать !?


 
ValeX ©   (2002-07-17 17:32) [5]

Skier

влом, может есть уже готовое,
если нет тогда буду думать :))


 
Skier ©   (2002-07-17 17:34) [6]

>ValeX
Ну, ты, прост, однако. Как пять копеек... :)


 
RV ©   (2002-07-17 17:49) [7]

строка это и есть массив символов
или нет?
выкинь не нужные, делов то


 
MBo ©   (2002-07-18 06:12) [8]

AStringList.CommaText:=str;
теперь в каждой строке AStringList[i] лежит отдельное "слово"


 
Eugene Lachinov ©   (2002-07-18 08:25) [9]

Тут вроде разделено пробелами, наверно, DelimitedText и Delimiter надо установить


 
MBo ©   (2002-07-18 08:32) [10]

>Eugene Lachinov
Commatext отлично справляется


 
Eugene Lachinov ©   (2002-07-18 08:34) [11]

>MBo
Уже проверил, извини, странное название


 
Ev_genus ©   (2002-07-18 09:07) [12]


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.

Должно работать если нет пробелов в начале и конце, а также двойных пробелов. Не проверял! Будут проблемы пиши.


 
ValeX ©   (2002-07-26 15:30) [13]

> 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!


 
MBo ©   (2002-07-26 15:34) [14]

k1=2 ПРАВИЛЬНО. Запятая - разделитель
что у тебя DecimalSeparator?



 
ValeX ©   (2002-07-26 15:41) [15]

> MBo

это имхо в винде.
а как минуя?



Страницы: 1 вся ветка

Текущий архив: 2002.08.08;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.011 c
3-23961
Doctor
2002-07-19 11:27
2002.08.08
Year,Month,Day


3-23929
BJValentine
2002-07-18 12:42
2002.08.08
связаные таблицы


3-23878
PashketSiniz
2002-07-17 10:22
2002.08.08
Количество знаков после запятой


1-24018
maxim2
2002-07-28 18:10
2002.08.08
Как подключать файлы pas и dcu


1-24113
SuMaga
2002-07-26 14:24
2002.08.08
нужен пример!!!