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

Вниз

Работа со строками   Найти похожие ветки 

 
ghg ©   (2002-08-01 08:02) [0]

Есть строка следующего формата:
"243 3423 23423 fgergr"
И мне надо вытащить каждое из чисел и строку в отдельные переменные.
Вопрос: как это наиболее просто сделать? А то все мысли как это реализовать получаются довольно громоздкие, хотя видимо должно быть довольно просто.
Заранее благодарен.


 
MBo ©   (2002-08-01 08:03) [1]

stringlist.commatext:=s;
теперь stringlist[0] - "243" и т.д.


 
ghg ©   (2002-08-01 08:10) [2]

ОТкуда знаете? Я вроде в хелпе смотрел все что про строки и стринглисты а такй функции не видел.
Или я слепой или не все места знаю?


 
Юрий Зотов ©   (2002-08-01 08:15) [3]

Как же так? В справке все есть: TStrings, properties, CommaText.


 
Григорий Ситнин ©   (2002-08-01 09:03) [4]

MБо, Юра, извиняюсь: а CommaText разве поинмает пробелы? Я полагал, что он понимает значения, разделенный знаком ";" (вроде бы он называется "comma"...

Или я с утра дурацкий? =)


 
MBo ©   (2002-08-01 09:11) [5]

>Григорий Ситнин
CommaText умеет обрабатывать пробелы, запятые и кавычки. Пример есть в хелпе.


 
Григорий Ситнин ©   (2002-08-01 09:13) [6]

2 МБо:
Ох, сведет меня с ума пакет RationalSuite %). А еще в отпуске был... последний раз Дельфи полтора месяца назад запускал - и, вот, результат. Простейшего не помню.

2 Юрий Зотов:
Юра, не могли бы вы мне написать письмо по электронной почте? Нужно приватно побеседовать, а вашего адреса не знаю.


 
Юрий Зотов ©   (2002-08-01 09:24) [7]

> Григорий Ситнин © (01.08.02 09:13)

Попытался, но сервер не распознает Ваш адрес. Проверьте, пожалуйста.


 
Anatoly Podgoretsky ©   (2002-08-01 09:29) [8]

ghg © (01.08.02 08:10)
Не все, кроме функций, у классов могут быть еще и свойства, это такая подлая штука, выглядит как переменная, а на самом деле может быть чем угодно, даже фикцией.


 
Григорий Ситнин ©   (2002-08-01 09:34) [9]


> Юрий Зотов © (01.08.02 09:24)


Юра, попробуйте gregor@mtc.ru (блок адресов нашего провайдера попал в неофициальный спам-лист, который почему-то многие используют. С тех пор - почта к нам не от всех ходит).


 
Leran2002 ©   (2002-08-01 10:03) [10]

Держи может пойдет:

function MyGetList(Separator,S:string):string;
var
i:integer;
begin
Result:=S;
i:=Pos(Separator,Result);
while i<>0 do
begin
Delete(Result,i,Length(Separator));
Insert(#13#10,Result,i);
i:=Pos(Separator,Result);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
S:string;
MyList:TStringList;
begin
S:=Edit1.Text;
MyList:=TStringList.Create;
MyList.Text:=MyGetList(" ",S);

Memo1.Lines.Assign(MyList);

MyList.Free;
end;


 
Григорий Ситнин ©   (2002-08-01 10:10) [11]

Во! Вспомнил!

GHG, есть еще замечательная функция ExtractStrings() - тоже рекомендую посмотреть.


 
MBo ©   (2002-08-01 10:12) [12]

>Leran2002
Зачем это все???

Кстати, аналог MyGetList в Delphi есть - StringReplace


 
Leran2002 ©   (2002-08-01 10:23) [13]

> MBo © (01.08.02 10:12)

Спасибо!!! Классная функция, бля как я ее раньше то не заметил ;-))... Еще раз СПАСИБО!!!
MyList.Text:=StringReplace(S," ",#13#10,[rfReplaceAll]);


 
kva   (2002-08-01 17:54) [14]

По поводу StringReplace есть непроверенное мной сообщение
(источник неизвестен):
Q>I"ve noticed a problem when you try to use StringReplace on a string which contains NULL (#0) characters (not null terminated).
A>There is an undocumented bug in the StringReplace function. It appears that it does not handle strings with NULL (#0) characters in them. Here is a better routine which handles NULL correctly.

function customStringReplace(OriginalString, Pattern, Replace: string): string;
{-----------------------------------------------------------------------------
Procedure: customStringReplace
Date: 07-Feb-2002
Arguments: OriginalString, Pattern, Replace: string
Result: string

Description:
Replaces Pattern with Replace in string OriginalString. Taking into account NULL (#0) characters.

I cheated. This is ripped almost directly from Borland"s StringReplace Function. The bug creeps in with the ANSIPos function. (Which does not detect #0 characters)
-----------------------------------------------------------------------------}
var
SearchStr, Patt, NewStr: string;
Offset: Integer;
begin
Result := "";
SearchStr := OriginalString;
Patt := Pattern;
NewStr := OriginalString;
while SearchStr <> "" do
begin
Offset := Pos(Patt, SearchStr); // Was AnsiPos
if Offset = 0 then
begin
Result := Result + NewStr;
Break;
end;
Result := Result + Copy(NewStr, 1, Offset - 1) + Replace;
NewStr := Copy(NewStr, Offset + Length(Pattern), MaxInt);
SearchStr := Copy(SearchStr, Offset + Length(Patt), MaxInt);
end;
end;


 
ghg ©   (2002-08-02 07:59) [15]

Проблема решена с помощью Commatext, но поняного примера в хелпе я не нашел, поэтому на то чтобы понять как с ним работать потратил минут 40.

Всем спасибо.


 
987   (2002-08-02 22:18) [16]

А есть в Дельфи ещё такой класс - TPerser - очень крутой - может и числа выбирать, и символы.


 
987   (2002-08-02 22:19) [17]

А есть в Дельфи ещё такой класс - TParser - очень крутой - может и числа выбирать, и символы.


 
lak_b ©   (2002-08-03 00:58) [18]

элементарно!
просто юзайте _язык_ и все...

...буря в стакане воды...



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

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

Наверх




Память: 0.51 MB
Время: 0.011 c
4-48367
com6
2002-04-30 13:01
2002.08.15
как отследить названия запускаемых программ


1-48180
Robin
2002-08-02 15:29
2002.08.15
Обращение к компонентам формы, находящейся в Пакете


1-48154
shubin
2002-08-01 14:18
2002.08.15
Нужен компонентик


14-48284
Вадим
2002-07-20 00:35
2002.08.15
Win32.HLLM.Klez.4


3-47960
Vikuksa
2002-07-24 16:23
2002.08.15
ADO