char dan # i silme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

char dan # i silme

Mesaj gönderen AhmetNuri »

Merhaba
bir cihazdan byte olarak veri geliyor mesela #1 diye
ben sadece 1 olarak almak istiyorum. verideki # si silem lazım.
bunu deneyince boş geliyor.

Kod: Tümünü seç

var
  b: byte;
  s, ss: string;  
begin
   ss  :=  buf[1]; 

2- bunu deniyince de aynen alıyor. #1 diye

Kod: Tümünü seç

   ss  :=  Copy(buf,1,1);   
bu sorunu nasıl çözebilirm
teşekkürler
Ahmet DENİZ
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: char dan # i silme

Mesaj gönderen aslangeri »

s.a.
cihazdan size gelen verinin "1" (yazıyla "Bir" ASCII olarak "49") olduğuna eminmisiniz?
cihazdan gelen veri ASCII olarak "1" e benziyor. bununda cihaz için özel bir anlamı var gibi.
cihazın kitapçıklarını (tabi eğer varsa) bir kontrol edin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: char dan # i silme

Mesaj gönderen AhmetNuri »

cihazdan veriyi lney com. ile okuyorum. oda bana string olarak bir değer döndürüyor. F7 ile progrmamı takip ediyorum. bakıyorum stringin içinde #2 var.
Ahmet DENİZ
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: char dan # i silme

Mesaj gönderen aslangeri »

# işareti ascii kod tablosundaki numarasını veriyor.
#13 enter
#27 esc tuşlarının kodları.
cihazı kitapçığına bakmanızı öneriyorum. # ile başlayan rakamların özel anlamları vardır. ne anlama geldiğini ordan bulabilirsiniz.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: char dan # i silme

Mesaj gönderen AhmetNuri »

Birazdaha açıklayım. burada sayı geldiği kesin. gelen sayıda 2. Bunu cihala birlikte verilen c # programından görebiliyorum. Onlar bu işi bitconvert in alt fonksiyonları ile çözmüş. Bende #32 den sonra gelen sayıları okuyabiliyorum. fakat # 32 den öncekileri okuyamıyprum. biraz anormal bir durum. Ascii kodları ile
Aynı veriden word, dobleword karekterle geliyor. Bunu ben önce hexedecima e çeviriyorum sonrada sayıya. dobleword gelince gelen verinin uzunluğu 8 karekter oluyor. word gelince 6 karekter oluyor. bu şekilde ayrımı yapabiliyorum. dubleword okumada sorun yok. wordler 6 karekter geliyor. ben 32 den küçük sayıları okyamıyorum.
Ahmet DENİZ
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: char dan # i silme

Mesaj gönderen emin_as »

http://www.asciitable.com/
Ascii Tabloda 32 öncesi özel kodlardır. 32 den sonrası gösterilebilir karakterler içerir.
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: char dan # i silme

Mesaj gönderen AhmetNuri »

evet biliyorum. fakat benim değer siting olarak #2 gözüküyor. ama tek karekter yani # ayrı 2 ayrı değil. bunu ayırmanın bir yöntemi var mı?
Ahmet DENİZ
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: char dan # i silme

Mesaj gönderen unicorn64 »

gelen değer string mi byte mı? ilk mesajda byte demişsin sonra string...
string daha doğrusu char ise ord ile sayı değerini alabilirsin...

Kod: Tümünü seç

    showmessage(inttostr(ord(#2)));
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
AhmetNuri
Üye
Mesajlar: 262
Kayıt: 02 Tem 2007 07:55
Konum: ist
İletişim:

Re: char dan # i silme

Mesaj gönderen AhmetNuri »

bu işlem böyle yapılıyormuş. denedim çalıştı

Kod: Tümünü seç

var
   b: byte;
   s, ss: string;
begin
  s := #2;
  b := ord(s[0]);   // convert to a byte value = 2
  ss := inttostr (b); // convert binary to decimal string = '2'
...

kolay gelsin
Ahmet DENİZ
Cevapla