s.a
bayagi ugraşmama ragmen yapamadim. neyi yanliş yapiyorum.
memodaki aşagıdaki gibi metnim var. bunlarin arasindaki tirelerin silinip en sondaki tirelerin kalmasini istiyorum.
gi-de-lim
gel-sin
ge-le-cek-te-ki
//////////////// aşağıdaki gibi kalsin istiyorum.
gide-lim
gel-sin
gelecekte-ki
///////////////
yapamadigim kod bu,
var
i:integer;
ynb,sm:tstringlist;
begin
ynb := TStringlist.Create;
sm := TStringlist.Create;
sm.Text:=memo1.Lines.Text;
for i := 0 to sm.Count - 1 do
begin
if (Pos('-', sm) > 0) then
ynb.add(RightStr(sm.strings, Length(sm.Strings)-Pos('-', sm.Strings)));
end;
memo2.lines.text:=ynb.text;
string fonk. yapamadim
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: string fonk. yapamadim
Öncelikle en sağdaki "tire"nin pozisyonunu bulan bir fonksiyona ihtiyacın var:
Daha sonra Memo'yu satır satır okuyup, son tire ve sonrasını bir değişkene, ondan öncekileri bir değişkene atarsın. Son "tire"den önceki tüm tireleri silersin....
Kod: Tümünü seç
function RPos(S: string): integer;
var
i: integer;
begin
Result := 0;
for i := Length(S) downto 1 do
if S[i]='-' then
begin
Result := i;
Break;
end;
end;
Kod: Tümünü seç
procedure TForm3.Button2Click(Sender: TObject);
var
i, p: integer;
satir, tmp1, tmp2: string;
begin
for i := 0 to Memo1.Lines.Count-1 do
begin
satir := Memo1.Lines[i];
p := RPos(satir);
if p > 0 then
begin
tmp1 := Copy(satir, 1, p-1);
tmp2 := Copy(satir, p, 1000);
tmp1 := StringReplace(tmp1, '-', '', [rfReplaceAll]);
Memo1.Lines[i] := tmp1+tmp2;
end;
end;
end;
There's no place like 127.0.0.1
Re: string fonk. yapamadim
Bir sorunum daha vardi bununla ilgili. Onuda cözebilirsek çok makbule gececek.
aslinda istediğim elimdeki kelimler listesine göre eklerini bulmak
ve bir cok zaman normal tireleme kelimenin eklerini bulmuyor.
mesela aşağıdaki
gelecekte-ki => gelecek-teki seklinde heceletmek istiyorum
bunun için elimdeki ekler listesine göre kelimenin sonunu nasil tireletebilirim.
evdeki => ev-deki
görürler => görür-ler
ekler listem şöyle;
deki
teki
ler
...
aslinda istediğim elimdeki kelimler listesine göre eklerini bulmak
ve bir cok zaman normal tireleme kelimenin eklerini bulmuyor.
mesela aşağıdaki
gelecekte-ki => gelecek-teki seklinde heceletmek istiyorum
bunun için elimdeki ekler listesine göre kelimenin sonunu nasil tireletebilirim.
evdeki => ev-deki
görürler => görür-ler
ekler listem şöyle;
deki
teki
ler
...
En son sr1111 tarafından 09 Ağu 2012 01:46 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Re: string fonk. yapamadim
Pos ve PosEx fonksiyonlarını araştırmanızı öneririm... (Ekler listesindekileri sırayla alıp, kelimenin sonunda var mı diye kontrol ettireceksiniz.)
There's no place like 127.0.0.1
Re: string fonk. yapamadim
fakat bir sorun var ek 1 den fazla tekrar ettiginde kelime karisip bozuluyor.
bunu nasil cozerim. hala yapamadim
bunu nasil cozerim. hala yapamadim