Haluaisin tietää kuinka voin etsiä stringistä tietyn kirjaimen ja niiden määrän.
esimerkki:
string = 'suomi24 keskustelu' ja tosta pitäis etsiä kaikki s-kirjaimet ja näyttää kuinka monta niitä löytyi.
miten tämä onnistuu?
Kiitos.
Kuinka etsin stringistä?
2
613
Vastaukset 2
- Delphikoodaaja
Parhaiten tuo onnistuu PosEx -funktiolla.
Löytyy ainakin Delphi7:ssa StrUtils -unitista (tulee Delphi7:n mukana).
Jos käytät jotain vielä vanhempaa Delphiä, jossa ei ole ko. funktiota, niin Professional ja Enterprise -versioissa tulee VCL:n lähdekoodi mukana; tällöin etsi Pos -funktion lähdekoodi, kopioi se nimelle PosEx ja muokkaa sitä niin, että sille voi antaa parametriksi mistä merkistä alkaen etsitään.
Tosin: for (tai while) -silmukkahan tähänkin tarvitaan joka tapauksessa, ja kun vielä etsittävä on 1 merkki, niin yhtä hyvin kuin käyttää PosEx -funktiota, voit toki tehdä näinkin:
for i := 1 to length(S) do
if S[i] = 's' then begin
// s- kirjain löydetty positiosta i
end;
Jos haluat kohdella isoa ja pientä s-kirjainta samanarvoisina, niin:
for i := 1 to length(S) do
if UpCase(S[i]) = 'S' then begin
// iso tai pieni s- kirjain löydetty positiosta i
end; - Vaikkapa näin
Vaikkapa näin että
Edit1 on tuo mistä etsitään ja Edit2 on se mitä
etsitään. Label näyttää montako niitä oli.
function MontakoMerkkijonoa(Mjono, etsittava:string):integer;
var
s,e:string;
i,p:integer;
begin
s:= AnsiLowerCase(Mjono);
e :=AnsiLowerCase(etsittava);
i := 0;
Repeat
p :=ansipos(e,s) ;
if p0 then
begin
delete(s,1,p 1);
inc(i);
end;
until p=0;
result := i;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
j:integer;
begin
j := MontakoMerkkijonoa(Edit1.Text,Edit2.Text);
Label1.Caption:= IntToStr(j);
end;
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 1141361
- 45911
Myönnetään, tunnen lämpimiä tunteita kohtaasi
Vaikutat tosin liian hyvältä ollaksesi totta. Komeita miehiä on maailma pullollaan mutta sinussa on jotain.....50736Perhoseni (miehelle)
Miksi et usko, että mun rakkaus sinuun on aitoa ja vilpitöntä? Tai että se oli jo silloin? Miksi ajattelet, ettet ole r132697- 70666
- 67616
- 53607
- 55565
Onko Sofia jälleen jätetty?
Moni asia viittaisi siihen, että hän on jälleen sinkku.100499Mies, näetkö minut myös
Seksuaalisena ihmisenä ja naisena? Haluatko minua seksuaalisesti? Vai olenko mielestäsi tyttönen?20490Voiko se ikinä toimia
Voiko meistä ikinä tulla mitään? Näin kauan aikaa on kulunut ja mitään ei tapahdu... En usko, että sinä mietit minua het32468- 34467
Nainen, mitä mieltä olet kodittomista?
Ja heistä jotka eivät kykene huolehtimaan asioistaan, itsestään eikä terveydestään? Miten heidän kanssaan tulisi toimia?115463Rekat seisovat dieselin hinnan takia . Ala ei kestä tällaista hintatasoa, sanoo yrittäjä .
EU:n kallein diesel on kova paikka kuljetusalalle. Ajoja on jätetty ajamatta kannattavuusongelmien vuoksi, sanoo alan e96459- 5458
Mitä jos...
Susta tykätään poikana enemmän, kun tyttönä? Miten asian käsittelet tai otat tiedon vastaan? T nainen gubetellija herät142453- 49447
- 51445
- 42410
- 52403