String İfadeler

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
futbolcu
Üye
Mesajlar: 129
Kayıt: 02 Tem 2003 08:33
Konum: Ankara

String İfadeler

Mesaj gönderen futbolcu »

Merhabalar,

Arkadaşlar, her ne kadar bu ifadeleri kullanıyor isem de tam olarak anlamış değilim. Keza kullandığım fonksiyonlar zaten kitaplarda var ve delphi ile gelen hazır fonksiyonlar.Bana bu ifadelerle ilgili yardım ederseniz sevinirim.

örneğin;
memo da bir satırı(diyelim 1.satırı), nasıl ifade edebilirim?
memo içerisinde 2. satır 5. kelime?
Pos, copy, length, delete, insert fonksiyonlarını kitaplardam kavramak
biraz daha zor. Çünkü baktığım bir çok kitap string işleme konusunda
yeterli bilgi vermiyor.
Bilgi çoğaldıkça krallar ölür
mavsar

Mesaj gönderen mavsar »

Eğer bir memonun (veya türetildiği obje benzeri başka bir bileşenin) satır ve sütun bilgisini göstermek istiyorsan şöyle bir kod var.

Kod: Tümünü seç

var SelPos: DWORD;
Tanımını değişken olarak yap.

Kod: Tümünü seç

procedure TForm1.ShowEditPos(Sender: TObject; var Done: Boolean);
var
  OldPos: DWORD;
  charidx, x, y: WORD;
begin
  OldPos := SelPos;
  SelPos := Memo1.Perform(EM_GETSEL, 0, 0);
  if OldPos <> SelPos then begin
    if LOWORD(SelPos) <> LOWORD(OldPos)
    then charidx := LOWORD(SelPos)
    else charidx := HIWORD(SelPos);
    y := Memo1.Perform(EM_LINEFROMCHAR, charidx, 0);
    x := charidx - Memo1.Perform(EM_LINEINDEX, y, 0);
    Edit1.Text := Format('%d:%d', [y+1, x+1]);
  end;
end;
Kullanıcı avatarı
Unyeli
Üye
Mesajlar: 11
Kayıt: 10 Ağu 2003 09:46
Konum: Ordu

Mesaj gönderen Unyeli »

Merhaba
Bir memonun sadece istenen satırını almak için bu kodu kullanabilirsin. buradaki satirno tam sayı tipinde.

Kod: Tümünü seç

Edit1.Text:=Memo1.Lines[SatirNo-1];
bir kelimeyi almak içinde benim bildiğim tek yol memodaki boşlukları saydırarak istediğin sıradaki kelimenin başından sonraki boşluğa kadar kopyalaman gerekir.

Komutlar hakkında kısaca bilgi verebilirim.
Pos :
Komut bir string içinde başka bir stringi arıyor ve kaçıncı karakterde olduğunu geri dönderiyor. Eğer bulunamazsa 0 (sıfır) değeri dönüyor. Yani "Bugün hava çok güzel" cümlesini cumle adında bir değişkene aktarıtsak içindeki "güzel" kelimesini aramak için

Kod: Tümünü seç

Sonuc:=Pos(a,'güzel');
Bu kod çalıştığında Sonuc değişkenine 16 değeri atanır.
Copy :
Belirtilen bir string içinde başka bir stringi copyalar. Kullanımı

Sonuc:=Copy(String İfade,Kopyalamaya başlama yeri,Kopyalanacak Karakter Sayısı);

Yukarıdaki değişkeni örnekte kullanırsak

Kod: Tümünü seç

Sonuc:=Copy(a,16,5);
komutunu verdiğimizde 16. karakterden itibaren 5 karakter koryalanarak sonuc değişkenine atanır. Sonuc='güzel' olması gerekir.
Length :
Length komutu string teki karakter sayısını verir. kullanımı

Sonuc:=Length(String ifade);

yukarıdaki değişkeni kullanırsak

Kod: Tümünü seç

Sonuc:=Length(a);
ifadesinin sonucunda sonuc=20 olmalı

Insert :
Bu komut ise stringin istenen yerine başka bir string ifade ekler. kullanımı:

Insert(Eklenecek ifade,hangi ifadeye eklenecek,hangi karakterden sonra eklenecek);

Delete :
Bu komut belirtilen bir string ifadenin istenen yerinden intenen sayıda karakter silmeye yarar. Kullanımı :
Delete(String ifade, Başlama yeri, silinecek karakter sayısı);

Bu fonksiyonları direk nesnelere uygularsan bazen problem çıkartabilir. önce nesnedeki ifadeyi bir değişkene aktarırsan daha iyi olur.

Daha fazla bilgi için Borland Delphi5 Görsel Programlama ile Tasarım Memik YANIK Meta Yayınları nı önerebilirim. bu konuları iyi incelemiş.
iyi çalışmalar.
mavsar

Mesaj gönderen mavsar »

Memik Yanık mı ? :lol:
Kullanıcı avatarı
Unyeli
Üye
Mesajlar: 11
Kayıt: 10 Ağu 2003 09:46
Konum: Ordu

Mesaj gönderen Unyeli »

Evet. yeni başlayanlar için iyi bir yazar
Kullanıcı avatarı
futbolcu
Üye
Mesajlar: 129
Kayıt: 02 Tem 2003 08:33
Konum: Ankara

Mesaj gönderen futbolcu »

Sayın mavsar ve Sayın Ünyeli;
Her ikinize de gerçekten çok teşekkür ederim.
Bilgi çoğaldıkça krallar ölür
Kullanıcı avatarı
futbolcu
Üye
Mesajlar: 129
Kayıt: 02 Tem 2003 08:33
Konum: Ankara

Mesaj gönderen futbolcu »

Sayın mavsar ve Sayın Ünyeli;
Her ikinize de gerçekten çok teşekkür ederim.
Bilgi çoğaldıkça krallar ölür
mavsar

Mesaj gönderen mavsar »

Sevgili Unyeli,

Ben fikrinize saygı duymakla beraber katılmadığımı da ifade etmek isterim. Çünkü 400 sayfası sadece delphi şöyledir böyledir. menüye şöyle girersin diyen bir kitap olduğundan boşuna para vermeyin derim. (Ki bilgisayar kitaplarının kaç para olduğunu biliyoruz)

Bu tür ifadelerde alternatif sunulması gerekir. Bence yeni başlayan arkadaşlar için İhsan Karagülle-Zeydin Pala nın Delphi kitabı iyi bir referans olur. Gerçi son kitaplarında ayrılmışlar herhalde ama... İkisi de üniversite de hocalık yapan kişi pedagojik ve metodsal bir anlatımı var. Sorarsan sen hangi kitabı okuyorsun diye Ben de Internet kitabını derim :)))
kafkasyali2002
Üye
Mesajlar: 37
Kayıt: 18 Haz 2003 11:48

merhaba

Mesaj gönderen kafkasyali2002 »

Bence delphi ye baslangictaki en iyi kitap Ruhver Barengi delphi ye bakis isimli bir kitap.Kitabin delphi 5 icin olani vardi ama oda piyasada yok cok guzel bir kitap admin mustafa hocamda yaklsik bir yil once ben delphi ye baslamadan once onerdigi kitapti.
Siddetle tavsiye ederim
memik Yanik hikayee
Cevapla