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
540
Vastaukset
- 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
Miehille kysymys
Onko näin, että jos miestä kiinnostaa tarpeeksi niin hän kyllä ottaa vaikka riskin pakeista ja osoittaa sen kiinnostukse1323807- 851895
Olen tosi outo....
Päättelen palstajuttujen perusteella mitä mieltä minun kaipauksen kohde minusta on. Joskus kuvittelen tänne selkeitä tap151741Haluaisin jo
Myöntää nämä tunteet sinulle face to face. En uskalla vain nolata itseäni enää. Enkä pysty elämäänkin näiden kanssa jos541402Ylen uutiset Haapaveden yt:stä.
Olipas kamalaa luettavaa kaupungin irtisanomisista. Työttömiä lisää 10 tai enempikin( Mieluskylän opettajat). Muuttavat1231284VENÄJÄ muuttanut tänään ydinasetroktiinia
Venäjän presidentti Vladimir Putin hyväksyi tiistaina päivitetyn ydinasedoktriinin, kertoo uutistoimisto Reuters. Sen mu961258Kotkalainen Demari Riku Pirinen vangittu Saksassa lapsipornosta
https://www.kymensanomat.fi/paikalliset/8081054 Kotkalainen Demari Riku Pirinen vangittu Saksassa lapsipornon hallussapi371229- 701146
- 691023
Hommaatko kinkkua jouluksi?
Itse tein pakastimeen n. 3Kg:n murekkeen sienillä ja juustokuorrutuksella. Voihan se olla, että jonkun pienen, valmiin k102985