Главная страница
    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.47 MB
Время: 0.006 c
4-24274
ДимкаН
2002-06-03 11:19
2002.08.08
Как получить иконку для заданного приложения?


3-23872
Alexandrda
2002-07-17 10:06
2002.08.08
Смена кодовой страницы у существующей базы программным способом


1-23974
tttt_tttt
2002-07-26 20:58
2002.08.08
Эксперт: кол-во строк в проекте


1-24114
xyz
2002-07-25 00:32
2002.08.08
динамические массивы и переменные


6-24150
Mir
2002-05-23 03:38
2002.08.08
функция accept() в WinSock Api





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский