Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Pascal: Merkkijonon esiintyminen merkkijonossa

Triton [31.07.2008 19:00:38]

#

Löytyykö Pascaliin mitään funktiota, joka kertoisi, että esiintyynkö jossain merkkijonossa jotain toista merkkijonoa?

sqwiik [31.07.2008 19:16:44]

#

Funktio Pos, ellen ihan väärin muista...

sijainti = Pos(etsittävä merkkijono, alkuperäinen merkkijono)

Palauttaa muistaakseni -1 jos ei löydy (eli 0+ tarkoittaa että löytyi).

Triton [31.07.2008 19:22:28]

#

Tuo funktio on oikea, että kiitos siitä... Mutta halusin vain korjata, että se palauttaa 0 jos ei löydy ja 1 jos löytyy.

Janezki [31.07.2008 19:32:13]

#

En tiedä miten Borland on laittanut kirjastot ristiin, mutta löysin Delphi kutosesta StrUtils-unitista funktion

function AnsiContainsStr(const AText, ASubText: string): Boolean;

En tiedä onko sinulla kyseistä kirjastoa. Mutta hei, funktionhan kirjoittaa äkkiä itsekin:

function ContainsString(PText: String; PSubText: String): Integer;
var
 i, r : Integer;
begin
 Result := False;
 for i := 1 to Length(PText) do
  if PText[i] = PSubText[1] then
   for r := 2 to Length(PSubText) do
    if i+r <= Length(PText) then
     if PText[i+r-1] = PSubText[r] then
      begin
       if r = Length(PSubText) then
        begin
         Result := True;
         Exit;
        end;
      end
     else
      Break;
end;

Äh tuo ei todennäköisesti edes toimi. Yritin vain olla avuksi. Anteeksi.

Edit. Ja tulikin tehtyä turhaa työtä. Jippii.

User137 [31.07.2008 20:16:23]

#

Triton kirjoitti:

Tuo funktio on oikea, että kiitos siitä... Mutta halusin vain korjata, että se palauttaa 0 jos ei löydy ja 1 jos löytyy.

Korjaan vielä tuonkin, Pos(substr,str) palauttaa 0 jos ei löydy ja >0 jos löytyy, eli ensimmäisen esiintymän haetusta tekstistä.

pos('.h','test.hlp') palauttaa 5.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta