Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "Основна";
Поточний архів: 2002.12.26;
Завантажити: [xml.tar.bz2];

Вниз

Потрібно розібратися вираз * .gif; *. Jpg; *. Html; *. Php; і т.д. Знайти схожі гілки


Кокандокало   (2002-12-16 14:42) [0]

Підкажіть будь ласка, майстра, чи є в Дельфах какой-нить стринг токенайзер?
Потрібно розібрати рядок з типами файлів ... і витягнути конкретні значення в TStringList
тобто * .Gif; *. Jpg; *. Html; *. Php; перетворити в
GIF
JPG
HTML
PHP



Song   (2002-12-16 14:45) [1]

Ну дик Text: = StringReplace (Text, "; *.", # 13 # 10, [rfReplaceAll]); і останній символ потім стерти ..



Calm   (2002-12-16 14:45) [2]

Стандартного немає.
Але ж простіше завдання не буває.
Проходиш від початку рядка до кінця і вирізняєш слова. Значащіем символи - латинські букви, роздільники - пробіл, *,;.
У чому проблема?



Кокандокало   (2002-12-16 15:03) [3]

а як? ти пропонуєш посимвольний розбирати рядок? А точно іншого способу немає?



Calm   (2002-12-16 15:06) [4]

Будь спосіб до скінчено підсумку зведеться до посимвольной обробці. Це можна покласти на якийсь нібуль компонент або робити самому, але все одно посимвольний потрібно дивитися.



asmith   (2002-12-16 15:53) [5]

було
lst: TStringList;
...
lst: = TStringList.Create ();
lst.Delimiter: = ";";
lst.DelimitedText: = "* .gif; *. jpg; *. html; *. php;";
for i: = 0 to lst.Items.Count - 1 do
strToken: = lst [i];
...





Nikolay M.   (2002-12-16 17:11) [6]

У RX є прекрасна функція ExtractDelimited. Якщо RX під рукою немає, ось, видер:

function ExtractDelimited (N: Integer; const S: string;
const Delims: TCharSet): string;
було
CurWord: Integer;
I, Len, SLen: Integer;
починати
CurWord: = 0;
I: = 1;
Len: = 0;
SLen: = Length (S);
SetLength (Result, 0);
while (I <= SLen) and (CurWord <> N) do begin
if S [I] in Delims then Inc (CurWord)
else begin
if CurWord = N - 1 then begin
Inc (Len);
SetLength (Result, Len);
Result [Len]: = S [I];
end;
end;
Inc (I);
end;
end;



id_privin   (2002-12-16 17:47) [7]

Є непоганий, правда не безглючная клас. Називається TRegExpr.
Шукаєте яндексом. Вирішує більшість проблем. Правда іноді дуже повільно (по порівнянню з перлом).



Юрий Зотов   (2002-12-16 18:53) [8]

Народ, ви, перш ніж відповісти, попередні відповіді читаєте? Все робиться в одну просту рядок, без всяких додаткових бібліотек і компонентів, і без всякого самопального парсинга.

Див. Найперший відповідь - Song © (16.12.02 14:45). Про що ще після цього потрібно дискутувати, незрозуміло.



Song   (2002-12-16 20:07) [9]

І справді :)
Ну, до речі я ще забув, що потрібно перші 2 символи стерти :) - <*.>



Кокандокало   (2002-12-16 21:11) [10]

Дик в тому то й справа, що метод Song "a перетворює string в string, а не string в TStringList ... Ну ладно .. вибачте .. просто хотів переконається, що в Дельфи аппрарат по обробці рядків бействітельно мізерний .. Ні тобі ніяких токенайзеров ...
Ееех ..
Всім дякую..

2id_privin: спасибі .. пошукаю, спробую ..



Song   (2002-12-16 21:19) [11]

2Кокандокало (16.12.02 21:11)
Чому не стрінгліст? Це дивлячись як застосовувати .. я ж не дарма властивість Text-то написав, думав ви здогадаєтеся ..

Var Str: TStringList; S: String; Str: = TStringList.Create; With Str Do try S: = "*. Gif, *. Jpg; *. Html; *. Php;"; S: = StringReplace (S, "; *.", # 13 # 10, [rfReplaceAll]); Delete (S, 1,2); Delete (S, Length (S), 1); Text: = S; ShowMessage (Text); finally Str.Free; end;



Song   (2002-12-16 21:25) [12]

Ай ай ай...
Треба перед Delete поставити "System.", А то він не той delete буде мати на увазі :)



Юрий Зотов   (2002-12-16 23:06) [13]

> Кокандокало (16.12.02 21:11)
> Дик в тому то й справа, що метод Song "a перетворює string в
> String, а не string в TStringList ...

Батенька, а справи-то погані ... довідка по TStrings Поcмотреть не завадило б ...



сторінки: 1 вся гілка

Форум: "Основна";
Поточний архів: 2002.12.26;
Завантажити: [xml.tar.bz2];

Вгору





Пам'ять: 0.59 MB
Час: 0.027 c
1-85913
SG78
2002-12-10 17:43
2002.12.26
Handle ListBox у ComboBox


1-85884
Anatoly P
2002-12-16 19:46
2002.12.26
TDateTime і datetimepicker


14-86146
Anatoly Podgoretsky
2002-12-06 07:37
2002.12.26
Іменинники 6 грудня


1-85950
Green_B86
2002-12-15 14:04
2002.12.26
HTML в Delphi


1-85893
Кокандокало
2002-12-16 14:42
2002.12.26
Потрібно розібратися вираз * .gif; *. Jpg; *. Html; *. Php; і т.д.





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська