Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.009 c
14-48301
Igorek
2002-07-19 00:07
2002.08.15
Нужен исходник компилятора ObjectPascal


1-48022
Коля
2002-08-03 12:10
2002.08.15
Картинки для ToolBox a


1-48191
Sedunov Vitaly
2002-08-02 18:41
2002.08.15
OnActivate


14-48257
Владик_1
2002-07-19 10:38
2002.08.15
расширение sit. Чем???


14-48258
Sverik
2002-07-19 18:34
2002.08.15
Как написать прогу общения по локальной сети...





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