CompareText ve AnsiContainText kullanımı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Gumiho309
Üye
Mesajlar: 35
Kayıt: 01 Eyl 2020 03:01

CompareText ve AnsiContainText kullanımı

Mesaj gönderen Gumiho309 »

Merhaba, delhi 10.3 kullanıyorum. Bir uygulama üzerinde çalışıyorum db de 2 adet veri tablom var. 1.Tablom 2 sütundan oluşuyor ilk sutün numara sütunu ve boş 2. sûtunda ise marka ve renk yazıyor. 2. Tablom da 2 sütundan oluşuyor ilk sütun numara 2.sütun marka ve renk. Yapmak istediğim şey normalde ilk tablomu uygulamaya aktarıyorum fakat numara alanı boş 2.tablomda ise numaralar yazıyor fakat çok fazla var tek tek elle eşlemek zaman alıcak bunun için iki tabloyu karşılaştırıp eğer 1.tablodaki marka ve renkte olan ayakkabının numarası var ise numara sütununda karşılık gelen ayakkabı numarasını numara sütununa yazdırmasını istiyorum. Bunun için comparetext ve ansicontainstext kullanmayı düşündüm metnin içinde aratarak karşılık geleni yazdırması için fakat bu iki fonksiyonun örneklerini incelediğimde de sonunda değer döndûrmeli örnekler gördûm numara sütununu doldurması komutunu nasıl vereceğimi bilmiyorum ve hangisini kullanmam daha doğru olur bu konuda fikri olan nasıl yapacağım hakkında bilgi verebilcek varsa şimdiden teşekkür ederim.
ertank
Kıdemli Üye
Mesajlar: 1652
Kayıt: 12 Eyl 2015 12:45

Re: CompareText ve AnsiContainText kullanımı

Mesaj gönderen ertank »

Merhaba,

İki tabloda da ikinci kolonlar bire bir aynı şekilde mi eşleşiyor? Örnek ile sormak gerekir ise;

Kod: Tümünü seç

Tablo 1, Alan 1 = (boş)
Tablo 1, Alan 2 = "makosen, lacivert"
Yukarıdaki Alan 2 değerini ikinci tabloda arayıp buduğunuzda büyük küçük harf, noktalama işaretleri vb birebir aynı şekilde mi kayıtlı? Yoksa ikinci tablo ikinci alan verileri farklılık gösterebiliyor mu?

Kullandığınız tablolar bir veritabanı içinde mi duruyor? Öyle ise hangi veritabanını kullanıyorsunuz?
Gumiho309
Üye
Mesajlar: 35
Kayıt: 01 Eyl 2020 03:01

Re: CompareText ve AnsiContainText kullanımı

Mesaj gönderen Gumiho309 »

ertank yazdı: 22 Eyl 2020 03:31 Merhaba,

İki tabloda da ikinci kolonlar bire bir aynı şekilde mi eşleşiyor? Örnek ile sormak gerekir ise;

Kod: Tümünü seç

Tablo 1, Alan 1 = (boş)
Tablo 1, Alan 2 = "makosen, lacivert"
Yukarıdaki Alan 2 değerini ikinci tabloda arayıp buduğunuzda büyük küçük harf, noktalama işaretleri vb birebir aynı şekilde mi kayıtlı? Yoksa ikinci tablo ikinci alan verileri farklılık gösterebiliyor mu?

Kullandığınız tablolar bir veritabanı içinde mi duruyor? Öyle ise hangi veritabanını kullanıyorsunuz?
Evet veritabanı içinde sqlite kullanıyorum. Birebir aynı şekilde değilller büyük küçük harf farklılığı var bazı satırlarda alan 2 de renkten sonra ayakkabının kodu yazıyor diğer numarası yazan tablomda bu kodlar yok fakat her satırda değil sorun olacak olursa onları elle silebilirim
ertank
Kıdemli Üye
Mesajlar: 1652
Kayıt: 12 Eyl 2015 12:45

Re: CompareText ve AnsiContainText kullanımı

Mesaj gönderen ertank »

Veriler uyumlu değil ise SQL ile yapmak çok mümkün olmayabilir. Büyük veri olan tabloda satır satır kayıtları inceleyip String Helper fonksiyonlarını kullanabilirsiniz belki. Verilerin ne derece uyumsuz olduğunu bilmeden bunun da mümkün olup olamayacağını bilemiyorum.

Kod: Tümünü seç

var
  TempString1: string;
  TempString2: string;
begin
  TempString1 := IkinciTablo_Alan2Degeri;
  TempString2 := BirinciTablo_Alan1Degeri;

  TempString2 := TempString2.Substring(TempString2.Indexof(',')).ToLower(); // virgül karakterinin ayakkabı renk ayracı olduğunu varsayıyorum
  if TempString1.ToLower.Contains(TempString2) then
  begin
    ShowMessage('Uyumlu kayıt tespit edildi');
  end;
end;
Yukarıdaki kod string helper fonksiyonların kullanımına dair örnek olarak verilmiştir. Sizin veritabanında kayıtlar arasında dolaşarak ilgili değişiklik ve düzenlemeleri yapmanız gerekir. Eşleştirme koşullarını da belirlemeniz gerekir.
Gumiho309
Üye
Mesajlar: 35
Kayıt: 01 Eyl 2020 03:01

Re: CompareText ve AnsiContainText kullanımı

Mesaj gönderen Gumiho309 »

ertank yazdı: 22 Eyl 2020 06:28 Veriler uyumlu değil ise SQL ile yapmak çok mümkün olmayabilir. Büyük veri olan tabloda satır satır kayıtları inceleyip String Helper fonksiyonlarını kullanabilirsiniz belki. Verilerin ne derece uyumsuz olduğunu bilmeden bunun da mümkün olup olamayacağını bilemiyorum.

Kod: Tümünü seç

var
  TempString1: string;
  TempString2: string;
begin
  TempString1 := IkinciTablo_Alan2Degeri;
  TempString2 := BirinciTablo_Alan1Degeri;

  TempString2 := TempString2.Substring(TempString2.Indexof(',')).ToLower(); // virgül karakterinin ayakkabı renk ayracı olduğunu varsayıyorum
  if TempString1.ToLower.Contains(TempString2) then
  begin
    ShowMessage('Uyumlu kayıt tespit edildi');
  end;
end;
Yukarıdaki kod string helper fonksiyonların kullanımına dair örnek olarak verilmiştir. Sizin veritabanında kayıtlar arasında dolaşarak ilgili değişiklik ve düzenlemeleri yapmanız gerekir. Eşleştirme koşullarını da belirlemeniz gerekir.
Bu kısmı anladım teşekkür ederim eğer halledebilirsem sonunda uyumlu kayıt tespir edildi yazması yerine boş alanı doldurması gerektiği komutunu nasıl yazabilirim yani bunu nasıl ifade edeceğim delphide
ertank
Kıdemli Üye
Mesajlar: 1652
Kayıt: 12 Eyl 2015 12:45

Re: CompareText ve AnsiContainText kullanımı

Mesaj gönderen ertank »

Merhaba,

Programcılıkta da aynı sonucu elde etmek için çok farklı yöntemler kullanılabiliyor. Ortada incelemek için somut bir kod olmayınca bu tür "genel" sorulara cevap vermek çok doğru olmuyor.

Siz yapabildiğiniz kısmı yapıp ilgili kodu paylaşabilir iseniz ve takıldığınız yeri belirtir iseniz yardımcı olmaya çalışılacaktır.
Cevapla