TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
[Pascal egen] Szukanie po tekście wielu rzeczy. How? , laciak88 2/01/10 14:32 Witam w 2010 :)
Dalej mecze delphi wer 6 w ktorej niestety nie ma polecenia posex, a przydaloby sie... Dostaje stringi (wiadomosci lub same naglowki) od serwera nntp w kilku partiach i potrzebuje wydobic z nich tematy i numery wiadomosci. O ile w przypadku jednej wiad. nie ma problemu, to jak dostane z 20 w roznej kolejnosci, to juz mam problem. W kazdej wiadomosci jej numer jest na koncu (co nie znaczy, ze na koncu stringa w ktorym jest X wiadomosci), temat jest po slowie subject (jeden znajde, ale nie mam za bardzo pomyslu co zrobic przy wielu wystapieniach); w przypadku naglowka na poczatku i koncu jest numer wiadomosci, a po poczatkowym numerze i tabulatorze jest temat (nie zdecydowalem jescze czy numery i tematy bede wyciagal z wiadomosci czy z naglowkow). Gdy prosze serwer o wiadomosci, to w petli for leci zapytanie, gdy prosze o naglowki leci jedno zapytanie z wartoscia range. Wymyslilem sobie, ze stworze sobie typ danych gdzie bedzie temat + numer wiadomosci, zeby mozna bylo ladnie wylistowac po kolei. Zadanie byloby o wiele prostsze gdybym dostawal w jednej odpowiedzi po kolei te wiadomosci lub po jednej wiadomosci i po kolei.
Pytanie: jak efektywnie wyciagnac pary temat + numer ze stringa?
Ponizej przyklady 3 wiadomosci oraz 3 naglowkow,
Wiadomosci:
221 51020 <7 head
Path: node1.news.atman.pl!newsfeed.atman.pl!news.nask.pl!news.nask.org.pl!news.prz.edu.pl!lublin.pl!news.onet.pl!newsgate.onet.pl!niusy.onet.pl
From: \"Sławek\" <
Newsgroups: pl.biznes.banki
Subject: Re: Aż strach oszczędzać w polskich funduszach
Date: 4 Mar 2007 07:47:58 +0100
Organization: Onet.pl SA
Lines: 8
Message-ID: <7
References: <7
NNTP-Posting-Host: newsgate.onet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=\"iso-8859-2\"
Content-Transfer-Encoding: 8bit
X-Trace: newsgate.test.onet.pl 1172990878 31376 213.180.130.18 (4 Mar 2007 06:47:58 GMT)
X-Complaints-To:
NNTP-Posting-Date: 4 Mar 2007 06:47:58 GMT
Content-Disposition: inline
X-Mailer: http://niusy.onet.pl
X-Forwarded-For: 81.219.217.198, 192.168.243.170
X-User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;
SV1; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 1.1.4322)
Xref: newsfeed.atman.pl pl.biznes.banki:51020
.
221 51021 <esdvt7$ho8 head
Path: node1.news.atman.pl!newsfeed.atman.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail
From: \"jerry\" <
Newsgroups: pl.biznes.banki
Subject: Re: kredyt na mieszkanie bez stalych dochodow
Date: Sun, 4 Mar 2007 09:23:19 +0100
Organization: tp.internet - http://www.tpi.pl/
Lines: 24
Message-ID: <esdvt7$ho8
References: <es903i$gsk <es90ch$adh <es91cj$d0q <es95an$e44 <es96a1$1sk
NNTP-Posting-Host: ddu94.neoplus.adsl.tpnet.pl
Mime-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset=\"iso-8859-2\";
reply-type=response
Content-Transfer-Encoding: 8bit
X-Trace: nemesis.news.tpi.pl 1172996840 18184 83.23.98.94 (4 Mar 2007 08:27:20 GMT)
X-Complaints-To:
NNTP-Posting-Date: Sun, 4 Mar 2007 08:27:20 +0000 (UTC)
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.3028
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3028
Xref: newsfeed.atman.pl pl.biznes.banki:51021
.
Path: node1.news.atman.pl!newsfeed.atman.pl!newsfeed.gazeta.pl!news.onet.pl!newsgate.onet.pl!niusy.onet.pl
From: \"Sławek\" <
Newsgroups: pl.biznes.banki
Subject: Re: Aż strach oszczędzać w polskich funduszach
Date: 4 Mar 2007 07:44:27 +0100
Organization: Onet.pl SA
Lines: 21
Message-ID: <7
References: <escqs4$vfu
NNTP-Posting-Host: newsgate.onet.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=\"iso-8859-2\"
Content-Transfer-Encoding: 8bit
X-Trace: newsgate.test.onet.pl 1172990667 30941 213.180.130.18 (4 Mar 2007 06:44:27 GMT)
X-Complaints-To:
NNTP-Posting-Date: 4 Mar 2007 06:44:27 GMT
Content-Disposition: inline
X-Mailer: http://niusy.onet.pl
X-Forwarded-For: 81.219.217.198, 192.168.243.172
X-User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;
SV1; .NET CLR 1.0.3705; .NET CLR 2.0.50727; .NET CLR 1.1.4322)
Xref: newsfeed.atman.pl pl.biznes.banki:51019
.
221 51019 <7 head
Naglowki:
51019 Re: Aż strach oszczędzać w polskich funduszach \"Sławek\" < Mar 2007 07:44:27 +0100 <7 newsfeed.atman.pl pl.biznes.banki:51019
51020 Re: Aż strach oszczędzać w polskich funduszach \"Sławek\" < Mar 2007 07:47:58 +0100 <7 newsfeed.atman.pl pl.biznes.banki:51020
51021 Re: kredyt na mieszkanie bez stalych dochodow \"jerry\" <, 4 Mar 2007 09:23:19 +0100 <esdvt7$ho8 <es90ch$adh <es91cj$d0q <es95an$e44 <es96a1$1sk newsfeed.atman.pl pl.biznes.banki:51021
.
224 [51019-51021] fields follow
Naglowki w tym przypadku po kolei serwer dal, przy wiekszych ilosciach mieszaja sie."To Alcohol! The cause of, and solution to, all of
life's problems." - PosEx w D6 to żaden problem: , Rhobaak 2/01/10 14:38
function PosEx(const SubStr, S: string; Offset: Integer = 1): Integer;
var
I,X: Integer;
Len, LenSubStr: Integer;
begin
if Offset = 1 then
Result := Pos(SubStr, S)
else
begin
if Offset < 0 then
begin
Result := 0;
exit;
end;
I := Offset;
LenSubStr := Length(SubStr);
Len := Length(S) - LenSubStr + 1;
while I <= Len do
begin
if S[I] = SubStr[1] then
begin
X := 1;
while (X < LenSubStr) and (S[I + X] = SubStr[X + 1]) do
Inc(X);
if (X = LenSubStr) then
begin
Result := I;
exit;
end;
end;
Inc(I);
end;
Result := 0;
end;
end;
Zastanów się, jednak, czy nie lepiej użyć np. wyrażeń regularnych.Kor2dual3,2hZ overkloc,4Gbit Ram
G-forc 460 gietex,barakudy
Children of Neostrada Association MVP - jak zwykle , laciak88 2/01/10 14:44
nie pomyslalem, zeby napisac posex, a myslalem jak rozwiazac szukanie od jakiegos znaku i najszybszym sposobem wydawalo mi sie uzycie delete :).
A wyrazen regularnych nigdy nie uzywalem, ale wydaje sie to ciekawa opcja. Zaraz bedziem sie uczyc :)"To Alcohol! The cause of, and solution to, all of
life's problems."
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|