Парсване на стринг

5 отговора 0 прегледа
#1

Парсване на стринг

Днес ми се наложи да пиша код, който парсва (разделя на думи) стринг с интервали - например, вх. стринг "Аз съм тъпо копеле", който да запише резултата в StringList:
-Аз
-съм
-тъпо
-копеле

Оставих празно място в сорса и се замислих, дали нямаше ф-я, която да прави това в VCL, без да използвам др. библиотеки. Не е проблем да напиша няколко реда код, но все си мисля, че имаше подобна ф-я, която при първо търсене не открих.


... for a brief moment it seemed that rock 'n roll would inherit the earth.
Отговор
в отговор на Beco_ #2

Re: Парсване на стринг

tStrings.CommaText прави обратното :)

Впрочем, "tStrings".Text := StringReplace( xText, ' ', #13#10, [rfReplaceAll]);
e "бабешкото" решение.

Редактирано от NikB на

Отговор
в отговор на NikB #3

Re: Парсване на стринг

А, 'що обратното - и правото също става:

memo1.lines.Delimiter := ' ';
// ако е необходимо: memo1.lines.QuoteChar := '"';
memo1.lines.DelimitedText := 'ej-taka triabva da stava, a pak tova e "edna duma"';

Отговор
в отговор на Formal #4

Re: Парсване на стринг

Да, не се сетих за тая хватка, но я подозирах :)

Отговор
в отговор на NikB #5

Re: Парсване на стринг

Благодаря и на двамата! Знаех си, че има нещо подобно.

TStringList *sl = new TStringList();
sl->Text = StringReplace(Edit1->Text," ","\n",TReplaceFlags()<< rfReplaceAll);


... for a brief moment it seemed that rock 'n roll would inherit the earth.
Отговор
в отговор на Beco_ #6

Re: Парсване на стринг

Можеш и ExtractStrings да ползваш

Time is like a drug, too much of it kills you
Отговор