Форум: "Основная";
Текущий архив: 2002.08.15;
Скачать: [xml.tar.bz2];
ВнизРабота со строками Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.007 c