Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];

Вниз

надо нечто 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.58 MB
Время: 0.043 c
14-24191
Lola
2002-07-12 13:29
2002.08.08
---|Ветка была без названия|---


1-24024
Olorin
2002-07-24 11:06
2002.08.08
Клавиатурные комбинации в НЕАКТИВНОЕ окно...


14-24168
[NIKEL]
2002-07-11 17:14
2002.08.08
Реальные требования к программистам


3-23953
the-best-officeman
2002-07-18 21:06
2002.08.08
for i := 0 to table1.RecordCount-1 do begin


1-24006
Faun
2002-07-28 07:09
2002.08.08
CreateParented и скроллинг





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский