Löytyykö Pascaliin mitään funktiota, joka kertoisi, että esiintyynkö jossain merkkijonossa jotain toista merkkijonoa?
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).
Tuo funktio on oikea, että kiitos siitä... Mutta halusin vain korjata, että se palauttaa 0 jos ei löydy ja 1 jos löytyy.
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.
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.