Анализа разграничене жице на низу жица (Делпхи)

click fraud protection

Много је пута кад требате подијелити низ у ан низ низова користећи знак као сепаратор. На пример, ЦСВ датотека (одвојена зарезом) може имати линију као „Жарко; Гајић;; ДелпхиГуиде "и желите да се ова линија растави на 4 линије (жице)" Жарко "," Гајић "," "(празан низ) и" ДелпхиГуиде "користећи знак под зарезом двоточке"; "као раздвајач.

Делпхи нуди неколико метода за рашчлањивање низа, али можда откријете да ниједна не ради баш оно што вам је потребно. На пример, метода ЕктрацтСтрингс РТЛ увек користи знакове цитата (појединачне или двоструке) за разграничитеље. Други приступ је употребаДелимитер иДелимитедТект својства класе ТСтрингс - али нажалост, постоји грешка у имплементацији („изнутра“ Делпхи), при чему се знак размака увек користи као разграничник.

~~~~~~~~~~~~~~~~~~~~~~~~~
процедура ПарсеДелимитед (цонст сл: ТСтрингс; вредност цонст: стринг; цонст делимитер: стринг);
вар
дк: цели број;
нс: стринг;
ткт: стринг;
делта: цели број;
започети
делта: = дужина (делимитер);
ткт: = вредност + делимитер;

instagram viewer

сл. БегинУпдате;
сл. Јасно;
покушати
док је дужина (ткт)> 0
започети
дк: = Пос (делимитер, ткт);
нс: = Копирај (ткт, 0, дк-1);
сл. Додај (нс);
ткт: = Копирај (ткт, дк + делта, МакИнт);
крај;
напокон
сл. ЕндУпдате;
крај;
крај;
~~~~~~~~~~~~~~~~~~~~~~~~~

Употреба (испуњава Мемо1):
ПарсеДелимитед (Мемо1.линес, 'Зарко; Гајић;; ДелпхиГуиде ','; ')

instagram story viewer