Tüm Platformlar için Hızlı Uygulama Geliştirme Kitap Yayın Süreci
Kitap gözden geçirilmek üzere BTG (Bilgi ve Teknoloji Grubu) 'na gönderildi. 05.10.2018-14:10
BTG (Bilgi ve Teknoloji Grubu) tarafından iki sayfalık bir reklam tasarımı bekleniyor. 08.10.2018 - 15:30
Kitap basım talebi değerlendirilmek üzere matbaaya bildirildi. Matbaadan basım süreci hakkında bilgi bekleniyor. 15.10.2018 - 15:34
Kitap 1.000 adet basım talebi ile matbaaya gönderildi. 16.10.2018 - 16:50

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
C++ tan Delphi ye Çevrim
#1
Entegrasyonunu yaptığım EFT-POS yazılımındaki bcd çevrimi aşağıdaki şekilde;

void TransactionInfo( char * buffer, ...)
{
va_list args;
char tmp[512];
CString cs;

va_start(args, buffer);
vsprintf(tmp, buffer, args);
va_end(args);
cs = tmp;

m_listTransaction.AddString(cs);
}

TransactionInfo("DATE            : %02X/%02X/20%02X", pstTicket->bcdTicketDate[2], pstTicket->bcdTicketDate[1], pstTicket->bcdTicketDate[0]);
TransactionInfo("HOUR            : %02X:%02X:%02X" , pstTicket->bcdTicketTime[0], pstTicket->bcdTicketTime[1], pstTicket->bcdTicketTime[2]);

Yukarıdaki C++ kodunu delphiye nasıl çevirebiliriz ya da bu fonksiyonun yaptığı gibi bcd çevrimi yapabileceğimiz fonksiyonu nasıl yazabiliriz?
Cevapla
#2
Çevrimini bilmiyorum ama başka bir yöntem dll'e çevirip kendi uygulamanda kullanabilirsin.
WWW
Cevapla
#3
Başka bir dile çevirmenin pek sağlıklı olacağını sanmıyorum tekrar yazmak daha iyi olabilir
Don't fear the try!
WWW
Cevapla
#4
(09-06-2017, Saat: 10:27)witalihakko Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlÇevrimini bilmiyorum ama başka bir yöntem dll'e çevirip kendi uygulamanda kullanabilirsin.

Dll çevirme gibi bir durumum yok. Aksi Halde Tek Fonksiyon için Dll yazmam gerekecek.

(09-06-2017, Saat: 10:31)cudyfoster Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBaşka bir dile çevirmenin pek sağlıklı olacağını sanmıyorum tekrar yazmak daha iyi olabilir

Bu fonksiyon Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol konusunda da belittiğim bcd tarih ve saat dizilerini string tipine çeviriyor. Benim de ihtiyacım bu fonksiyonun delphi çevrimi ya da eşdeğerde bir fonksiyon. Uğraştım fakat bir çözüme ulaşamadım. Bcd çevrimi konusunda tecrübeli arkadaşların, hocalarımın yardımlarını bekliyorum. Teşekkür ederim.
Cevapla
#5
(09-06-2017, Saat: 10:32)erkankurtaga Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(09-06-2017, Saat: 10:27)witalihakko Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlÇevrimini bilmiyorum ama başka bir yöntem dll'e çevirip kendi uygulamanda kullanabilirsin.

Dll çevirme gibi bir durumum yok. Aksi Halde Tek Fonksiyon için Dll yazmam gerekecek.

(09-06-2017, Saat: 10:31)cudyfoster Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBaşka bir dile çevirmenin pek sağlıklı olacağını sanmıyorum tekrar yazmak daha iyi olabilir

Bu fonksiyon Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol konusunda da belittiğim bcd tarih ve saat dizilerini string tipine çeviriyor. Benim de ihtiyacım bu fonksiyonun delphi çevrimi ya da eşdeğerde bir fonksiyon. Uğraştım fakat bir çözüme ulaşamadım. Bcd çevrimi konusunda tecrübeli arkadaşların, hocalarımın yardımlarını bekliyorum. Teşekkür ederim.
Sadece algoritmik bir işlem ise çevirilebilir ama komple bileşenlere dayalı bir kod ise çevirmek zor gibi
Don't fear the try!
WWW
Cevapla
#6
Evet haklısınız sadece bir yöntem dediğim gibi. Tek fonksiyon için dll saçma olur Smile
WWW
Cevapla
#7
Bu fonksiyon, daha önce Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol dönüşüm işlemi ile ilgili değil. Sadece tarih ve saat değerlerinizi düzgün bir şekilde görünmesi için string'e çeviriyor.
There's no place like 127.0.0.1
WWW
Cevapla
#8
(09-06-2017, Saat: 14:30)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBu fonksiyon, daha önce Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol dönüşüm işlemi ile ilgili değil. Sadece tarih ve saat değerlerinizi düzgün bir şekilde görünmesi için string'e çeviriyor.

Evet haklısınız, ama aslında onun ile alakalı. Üreticinin c++ örneğinde buldum bu fonksiyonu. Bcd çevirimini aynı zamanda önceki konudaki dizileri bu fonksiyon yardımı ile stringe çeviriyor. Taksir edersiniz ki stringe çevrilirse tarih ya da saate çevirmek çok kolay. Fonksiyonu Delphiye çevirmeye çalıştım, fakat c++ örneğindeki gibi çalıştıramadım.

(09-06-2017, Saat: 12:01)cudyfoster Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(09-06-2017, Saat: 10:32)erkankurtaga Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlDll çevirme gibi bir durumum yok. Aksi Halde Tek Fonksiyon için Dll yazmam gerekecek.


Bu fonksiyon Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol konusunda da belittiğim bcd tarih ve saat dizilerini string tipine çeviriyor. Benim de ihtiyacım bu fonksiyonun delphi çevrimi ya da eşdeğerde bir fonksiyon. Uğraştım fakat bir çözüme ulaşamadım. Bcd çevrimi konusunda tecrübeli arkadaşların, hocalarımın yardımlarını bekliyorum. Teşekkür ederim.
Sadece algoritmik bir işlem ise çevirilebilir ama komple bileşenlere dayalı bir kod ise çevirmek zor gibi

Sadece bcd çevirimi yapan bir fonksiyon. Bileşenler ile hiç alakası yok.
Cevapla
#9
Bence bir yerlerde hata yapıyorsunuz.

Burada yazdığınız fonksiyona bakılırsa;
bcdTicketDate[0] yılı gösteriyor (2000'den sonraki yıl). bcdTicketDate[1] ayı, bcdTicketDate[2] de günü gösteriyor. (Tarih formatını DD/MM/YYYY kabul ettim)

Ama sizin önceki sorunuzda bcdTicketDate içindeki değerler 70,119,85,120 olarak verilmiş. 
C++ fonksiyonunda bunlar hexadecimal'a çevrilmiş. Ama hexadecimal'a çevirsenizde DD/MM/YYYY formatına uymuyor. Çünkü 119 değerini gün yada ay kabul edip hexadecimal'a çevirdiğinizde 77 yapıyor ???
There's no place like 127.0.0.1
WWW
Cevapla
#10
(09-06-2017, Saat: 16:08)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBence bir yerlerde hata yapıyorsunuz.

Burada yazdığınız fonksiyona bakılırsa;
bcdTicketDate[0] yılı gösteriyor (2000'den sonraki yıl). bcdTicketDate[1] ayı, bcdTicketDate[2] de günü gösteriyor. (Tarih formatını DD/MM/YYYY kabul ettim)

Ama sizin önceki sorunuzda bcdTicketDate içindeki değerler 70,119,85,120 olarak verilmiş. 
C++ fonksiyonunda bunlar hexadecimal'a çevrilmiş. Ama hexadecimal'a çevirsenizde DD/MM/YYYY formatına uymuyor. Çünkü 119 değerini gün yada ay kabul edip hexadecimal'a çevirdiğinizde 77 yapıyor ???

bcdTicketDate Dizisi için tarih formatı dd/mm/20yy olarak gösteriyor kendini. Dizideki format YYMMDD. 4 Bytelık dizinin sadece ilk 3 byte ı tarih bilgisi içeriyor.

bcdTicketTime dizisi de HHMMSS . Bu dizi de tarih dizisi gibi ilk 3 byte saat bilgisi içeriyor. Bu iki dizi hakkında bildiğim ve anlatılan bunlar. Başka herhangi bir bilgiye ulaşamadım. Hexadecimale çevirip bir sonuş almaya çalışaym bende.
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi & FTP txt veri işleme Mr.Developer 21 633 28-09-2018, Saat: 08:21
Son Yorum: Fesih ARSLAN
  delphi ile web servis yazmak. Kamuran Alpkaya 4 1.239 20-09-2018, Saat: 18:08
Son Yorum: Bay_Y
Question OpenSSL .dll sorunu delphi 10.2 Mr.Developer 5 451 12-09-2018, Saat: 17:08
Son Yorum: uparlayan
  Visual Studio Code for Delphi gjamesbond 1 145 11-09-2018, Saat: 10:19
Son Yorum: Fesih ARSLAN
  Delphi içinden ve MSSQL üzerinden storeprocedure çalıştırma Bay_Y 6 278 30-08-2018, Saat: 13:10
Son Yorum: Bay_Y



Konuyu Okuyanlar: 1 Ziyaretçi