Савети

Како раставити разграничени низ на листу жица

Како раставити разграничени низ на листу жица


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

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

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

Једино решење за анализу ограниченог низа је писање сопствене методе:

Пример разграниченог низа

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

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