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
  pascal script ile QuickReport nesnelerine nasıl erişim yapılır theSinan 4 216 01-08-2018, Saat: 08:51
Son Yorum: Kuri_YJ
  Mutex ile birden fazla kullanıcıda aynı programın çalışmasını nasıl engelleriz masteryoda 5 297 16-05-2018, Saat: 09:00
Son Yorum: Tuğrul HELVACI
  C Dll indeki Callback Nasıl Çevrilir? (Çözüldü) erkankurtaga 13 1.184 15-04-2018, Saat: 22:11
Son Yorum: ilgazinho
  Bu json formatı nasıl okunur? canbir 5 423 23-03-2018, Saat: 17:22
Son Yorum: barisatalay
  Api nasıl kullanılır Lord_Ares 36 2.207 02-03-2018, Saat: 12:29
Son Yorum: canbir



Konuyu Okuyanlar: 1 Ziyaretçi