Tüm Platformlar için Hızlı Uygulama Geliştirme --->    Kitabımız...      Delphi

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
İki byte dizisi nasıl birleştirebilirim ?
#1
Merhaba arkadaşlar, 

iki tane dinamik dizi birleştirmek istiyorum Delphi 7 ile, 

  bytes: array[0..105] of Byte = (
    $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
    $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
    $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
    $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
    $00, $00
  );


Burdaki byte dizisini başına eklemek istiyorum 

$5a, $02, $20, $70, $11, $15, $20, $26, 

Delphi de dizi fonksiyonlarında append veya extend diğer programlama dillerindeki gibi yok sanırım, yada ben bulamadım Smile
Herkese teşekürler şimdiden.
WWW
Cevapla
#2
İk array'in adı bytes, ikinicinin adı bytes2 ise bytes2'yi bytes'ın üstüne eklemek için bytes'ın elementlerinin indekslerini bytes2'nin element sayısı kadar sayısı kadar arttırıp bytes2'nin elemanlarını da en başa kopyalayabilirsiniz.

Generics ile aşağıdaki gibi kendi çözümlerinizi geliştirebilirsiniz:
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#3
Merhaba,
bytes: array[0..105] of Byte kısmında sabit olarak 106 adet dizi elemanı rezerve edilmiş. Oysaki, bytes değişkeninde 98 adet dizi değeri atanmış.
Dizi tanımlama ile dizi içerik sayısı uyuşmadığından derleme anında bir hata oluşacaktır. Doğal olarak kod ile sonradan 8 elemanlı bir kümeyi bu diziye eklemek mümkün olmayacaktır.

Çözüm olarak;
 
1- Tanımlama aşağıdaki gibi olmalı, 
var
 bytes: array of Byte;

const
 bytes1: array [0 .. 97] of byte = ($00, $00, $00, $00, $00, $00, $00, $00,
   $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
   $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
   $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
   $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
   $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00,
   $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00);

 bytes2: array [0 .. 7] of byte = ($5A, $02, $20, $70, $11, $15, $20, $26);


2- İşlem yapmadan önce SetLength(); metodu ile dizi boyutu set edilmeli,
SetLength(bytes, Length(bytes1) + Length(bytes2));

3- Son olarak, Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol procedure'ü veya benzer bir döngü ile bytes1 ve bytes2 içeriğini bytes dizisinde birleştirebilirsiniz.
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#4
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol ile ilgili Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol bir kaç örnek verilmişti.
There's no place like 127.0.0.1
WWW
Cevapla
#5
Herkese Çok teşekür ederim cevap verdiğiniz için.
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Harici dll içerisindeki metod Delphide nasıl çağırılır. yhackup 10 163 Dün, Saat: 13:34
Son Yorum: SimaWB
  Api nasıl kullanılır Lord_Ares 33 920 06-01-2018, Saat: 02:18
Son Yorum: Lord_Ares
  C Dll indeki Callback Nasıl Çevrilir? (Çözüldü) erkankurtaga 10 384 20-12-2017, Saat: 16:36
Son Yorum: Tuğrul HELVACI
  Bir Byte Her Zaman 8 Bitten Oluşmaz savasabd 3 198 25-11-2017, Saat: 00:09
Son Yorum: savasabd
  String Byte Dizisine Çevirme dicle_gsm 4 296 31-07-2017, Saat: 20:16
Son Yorum: dicle_gsm



Konuyu Okuyanlar: 1 Ziyaretçi