Örneğin edit içinde yazılı olan kısımı
ali ata bak.
ali bak ata.
Şeklinde değiştirmek istiyorum. Dilde yeni ve sınırlı bilgim olmasından kaynaklı ne yaparsam yapim sonuca ulaşamadım.
Yardımlarınızı bekliyorum. Şimdiden hepinize teşekkürler.
Bir cümledeki kelimelerin yerini değiştirme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Re: Bir cümledeki kelimelerin yerini değiştirme
Merhaba,
Öncelikle forum sabit mesajlarından yeni üye olanlar ile ilgli bölümü okumanızda fayda var.
viewtopic.php?f=2&t=2482
Sorunuzda kullandığınız Delphi sürümünü belirtmemişsiniz. Ayrıca sorunuzda amacınızı da açıkça belirtmemişsiniz. Yapmak istediğinizi belli kurallar şeklinde açıklamanız mümkün mü? "Şeklinde yapmak istiyorum" dediğiniz ifadeyi ben "boşluk karakterleri ile ayrılmış bir cümle içindeki son iki kelime yer değiştirsin" şeklinde anlıyorum. Bunu yapmak için aşağıdaki gibi bir kod kullanabilirsiniz.
Bu kod Delphi 10.2.2 ile çalışmaktadır. Eğer siz Delphi 7 gibi eski bir sürüm kullanıyor iseniz kodun sorunsuz derlenmesi için
ifadesini kaldırmanız gerekecektir.
Ancak amacınız "boşluklar ile ayrılmış kelimelerden parametrik olarak herhangi ikisini yer değiştirmek ve bunu Pos() ve Copy() fonksiyonları ile yapmak" ise bu durumda yukarıdaki kod işinizi görmez. Çok farklı bir kod yazmak gerekir.
Öncelikle forum sabit mesajlarından yeni üye olanlar ile ilgli bölümü okumanızda fayda var.
viewtopic.php?f=2&t=2482
Sorunuzda kullandığınız Delphi sürümünü belirtmemişsiniz. Ayrıca sorunuzda amacınızı da açıkça belirtmemişsiniz. Yapmak istediğinizi belli kurallar şeklinde açıklamanız mümkün mü? "Şeklinde yapmak istiyorum" dediğiniz ifadeyi ben "boşluk karakterleri ile ayrılmış bir cümle içindeki son iki kelime yer değiştirsin" şeklinde anlıyorum. Bunu yapmak için aşağıdaki gibi bir kod kullanabilirsiniz.
Kod: Tümünü seç
function GetlastWordsSwitched(const Value: string): string;
var
List: TStringList;
I: Integer;
begin
List := TStringList.Create();
try
List.Delimiter := ' ';
List.StrictDelimiter := True;
List.DelimitedText := Value;
if List.Count > 2 then
begin
for I := 0 to Pred(List.Count-2) do
begin
Result := Result + List[I] + ' ';
end;
Result := Result + List[Pred(List.Count)] + ' ';
Result := REsult + List[Pred(List.Count-1)];
end
else
begin
if List.Count = 2 then
begin
Result := List[1] + ' ' + List[0];
end
else
begin
Result := Value;
end;
end;
finally
List.Free();
end;
end;
Kod: Tümünü seç
List.StrictDelimiter := True;
Ancak amacınız "boşluklar ile ayrılmış kelimelerden parametrik olarak herhangi ikisini yer değiştirmek ve bunu Pos() ve Copy() fonksiyonları ile yapmak" ise bu durumda yukarıdaki kod işinizi görmez. Çok farklı bir kod yazmak gerekir.
Re: Bir cümledeki kelimelerin yerini değiştirme
Öncelikle verdiğiniz cevap için teşekkür ederim. Eksik Bilgi verdiğim için kusuruma bakmayın. Delphi 7 ve rad studio (sürümünü hatırlamıyorum) kullanmaktayım.Hocamızın verdiği finallere hazırlık sorusu diyeyim, hocamız kendi gösterdiği dışında herhangi bir kodla çözümünü kabul etmemekte. Kullanmam gereken kodlar sadece lenght,pos,copy; if,while,for döngüleri. Bu yüzden attığınız çözüme ulaştırır fakat kabul görmez.(En altta da belirtmişsiniz.) Soruyu çözdüğümü de belirtmek isterim.(Soru: Editteki cümle de istenilen kelime ile istenilen kelimenin yerini değiştiren programın kodu.) Sizin gibi kodları ayrı pencerede nasıl yazıldığını bilmiyorum ve temize çekmediğim için kodları paylaşamadım burada.