Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » rooter666 08:00
 » DYD 07:58
 » KHot 07:53
 » hokr 07:45
 » Kenny 07:45
 » NimnuL 06:47
 » Demo 06:43
 » PeKa 05:39
 » SebaSTS 05:32
 » GULIwer 05:04
 » Killer 04:52
 » Lucyferiu 04:29
 » Martens 04:12

 Dzisiaj przeczytano
 41113 postów,
 wczoraj 25974

 Szybkie ładowanie
 jest:
włączone.

 
ccc
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."

  1. 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

    1. 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