sms Gönderme [Mesaj Şekli İle ilgili]

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
barutali
Üye
Mesajlar: 297
Kayıt: 02 Tem 2007 02:30

sms Gönderme [Mesaj Şekli İle ilgili]

Mesaj gönderen barutali »

Öncelikle konuyu okuyan herkeze merhaba ;

SMS Hizmeti veren bir firmaya yazılım geliştiriyorum. Şuan için herşey bitti.. Tek sorun kaldı oda toplu smslerde değerler..

Örneğin :

Kod: Tümünü seç

  Sayın [AD] [SOYAD] katkılarınızdan dolayı teşekkür ederiz.. 
[FIRMA ADI]..
Şeklinde yazdığımda

Bu sms i herkeze göndercek ama [AD] yazan kısımda veritabanına kaydı girilmiş kişilerin Adları, Aynı şekilde [SOYAD] içinde geçerli..

Sonuç olarak:

Kod: Tümünü seç

  Sayın Ali Yeşiloğlu katkılarınızdan dolayı teşekkür ederiz.. 

 XXX Firması vs. vs. ..
Şeklinde atcak..

Veritabanı olarak MSAccess kullanıyorum. Benden önce yapan arkadaş access kullanmıs onun Veritabanı üzerine yapıyorum...
Mesajın yazıldığı alanda Richedit kullanıyorum..


Yardım Edebilcek Arkadaşlara Şimdiden Teşekkür Ederim...
İyi Çalışmalar..
amatör küme programcı :D
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

merhaba

değerli kardeşim richeditle Sms nin ne alakası var. sonucta sms text tabanlı. uzunluğuda 160 karakter. bir string değişken işini görür.

accessten verielri aldığını varsayıyıroum.

Kod: Tümünü seç

sms:='sayın '+ tbl1adi.asstring+ ' '+tbl1soyadi.asstring+' merhaba';
sanırım bu şekil işini görür. bu yöntemi kendine uyarlarsan yeterli. bir döngüde kayıtları al içine bilgileri ekle yazdır.

eğer metini müşteri girecekse ve [] arasındaki bilgilere göre içeriği özgür olarak koyacaksan gene zor değil.

pos () ile metnin arar replace yaparsın
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
barutali
Üye
Mesajlar: 297
Kayıt: 02 Tem 2007 02:30

Mesaj gönderen barutali »

Cevabın için ilk önce çok teşekkür ederim @ikutluay hocam

cevabınız kafamda 100w lık bi ampul yaktı..
Richedit diye belirtmemin sebebi yardım etmek isteyen bi arkadaşımızın memo mu richedit mi ne kullanıyorsun gibi bi sorusuyla karşılaşmamak karşılaşıpta sorunlar ilgili alt cevaplar vermemek için yazdım. Yeniden teşekkür ederim ..

İyi Çalışmalar..
amatör küme programcı :D
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

Öncelikle kolay gelsin. Örnek verdiğiniz mesajlarda Türkçe karakterler var. Bunlar problem teşkil edecektir. Ben de benzer bir uygulama geliştirdim. Ancak benimkinde bir sürü kaynak ve farklı mesajlar vardı. Önce mesaj gidecek kişileri ayarlan bir SQL kısmı yaptım. Gerek kayıtlı SQL'leri çalıştırabiliyordunuz gerekse yenisini girebiliyordunuz. Hatta program içinden standart olmayan yapılar için viewler create edip onları açtırıyordum.
Daha sonra gelen SQL sorgusundaki field'ları mesaj hazırlama ekranınadaki popup menüye ekliyorum. Kullanıcı mesajını yazarken değişken olacak alanların listesini popup menüden görebiliyor. Daha önce kaydedilmiş bir mesaj da açbiliyor. Bu açılış esnasında mesaj içindeki değişken alanların popup menu içinde olup olmadığını kontrol ederek hata oluşmasını engelliyorum. Ayrıca veri tabanından gelmeyen [bugun] [saat] gibi alanlarda eklemiştim. Değişken alanları veriyi yazmak için StringReplace fonksiyonunu kullanıyorum.
Kullanıcı avatarı
barutali
Üye
Mesajlar: 297
Kayıt: 02 Tem 2007 02:30

Mesaj gönderen barutali »

@mkysoft hocam sizede cevabınız için teşekkür ederim..

İki cevabı harmalayıp kendi cevabımı oluşturmaya çalışıyorum..
Zaman ayrdığınız için teşekkür ederim.
amatör küme programcı :D
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

mkysoft yazdı:Öncelikle kolay gelsin. Örnek verdiğiniz mesajlarda Türkçe karakterler var. Bunlar problem teşkil edecektir. Ben de benzer bir uygulama geliştirdim. Ancak benimkinde bir sürü kaynak ve farklı mesajlar vardı. Önce mesaj gidecek kişileri ayarlan bir SQL kısmı yaptım. Gerek kayıtlı SQL'leri çalıştırabiliyordunuz gerekse yenisini girebiliyordunuz. Hatta program içinden standart olmayan yapılar için viewler create edip onları açtırıyordum.
Daha sonra gelen SQL sorgusundaki field'ları mesaj hazırlama ekranınadaki popup menüye ekliyorum. Kullanıcı mesajını yazarken değişken olacak alanların listesini popup menüden görebiliyor. Daha önce kaydedilmiş bir mesaj da açbiliyor. Bu açılış esnasında mesaj içindeki değişken alanların popup menu içinde olup olmadığını kontrol ederek hata oluşmasını engelliyorum. Ayrıca veri tabanından gelmeyen [bugun] [saat] gibi alanlarda eklemiştim. Değişken alanları veriyi yazmak için StringReplace fonksiyonunu kullanıyorum.
sms için değil ama kodun bu kısmını paylaşırsanız forum ve diğer arkadaşlar ilerde yardımcı olur. ben bu tip konuları yazışmalar için gerektiğinden fast reportta hallettiğim için elimde örnek yok.

iyi çalışmalar
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
barutali
Üye
Mesajlar: 297
Kayıt: 02 Tem 2007 02:30

Mesaj gönderen barutali »

Aşağıdaki gibi yapınca istediğim tam olarak oldu..

Peki gönderirken bunu nasıl bi döngüye sokabilirim..
Yani

Gönderilcek Numara ve o numarayla alakalı satırdan bu bilgileri okuyacak..

Örnek olarak :

AAA-AAA-AA-AA Numaralı kaydın
AD kısmı : ali

soyad kısmı : yeşiloğlu

BBB-BBB-BB-BB Numaralı kaydın da
AD kısmı : ahmet

soyad : kılıç olsun

Yollarken bu şekilde numarayla ilişkili alanları nasıl aldırabilirim..

Not: SQL Bilgim bunu yapabilcek kadar şimdilik yok.

Kod: Tümünü seç

var
ad,soyad,
saat,Tarih,
ss : string;

begin
ss:=Re1.Lines.Text; // Richedit bir yazım alanı
ad:=Table1ALAN.Text;
soyad:=Table1ALAN_2.Text;
Tarih:=DateToStr(Date);
saat:=TimeToStr(time);

ss:=StringReplace(ss,'[AD]',ad, [rfIgnoreCase ,rfReplaceAll]);
ss:=StringReplace(ss,'[SOYAD]',soyad, [rfIgnoreCase ,rfReplaceAll]);
ss:=StringReplace(ss,'[TARIH]',Tarih , [rfIgnoreCase, rfReplaceAll]);
ss:=StringReplace(ss,'[saat]',saat, [rfIgnoreCase, rfReplaceAll]);

re2.Text:=ss; // Richedit2 Önizleme alanım..

amatör küme programcı :D
ikutluay
Üye
Mesajlar: 2341
Kayıt: 03 Tem 2007 10:13

Mesaj gönderen ikutluay »

Kod: Tümünü seç

tablex.first;
   while not tablex.eof do
     begin
         bilgileri al yazdır. 
         tablex.next;

     end;

sorunuz basit ama bu işte
Kişi odur ki, koyar dünyada bir eser. Eseri olmayanın yerinde yeller eser./Muhammed Hadimi
http://www.ibrahimkutluay.net
http://www.ibrahimkutluay.net/blog
Kullanıcı avatarı
barutali
Üye
Mesajlar: 297
Kayıt: 02 Tem 2007 02:30

Mesaj gönderen barutali »

teşekkür ederim hocam.
Hemen deneyeyim..
amatör küme programcı :D
Cevapla