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.
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:
https://stackoverflow.com/questions/5755...amic-array
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, Move procedure'ü veya benzer bir döngü ile bytes1 ve bytes2 içeriğini bytes dizisinde birleştirebilirsiniz.
DelphiCan'dır!
Cevapla
#4
Move ile ilgili burada 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.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  TMS Web Core- REST İşlemlerini Nasıl Yapabilirim? kajmerantime 0 120 13-06-2025, Saat: 14:07
Son Yorum: kajmerantime
  Delphi 7 deki pencereleri nasıl sabitleyebilirim? mxpain 1 297 12-12-2024, Saat: 08:50
Son Yorum: 3ddark
  resimdeki hatanin satirini nasil bulabiliriz. sadikacar60 6 570 25-11-2024, Saat: 19:18
Son Yorum: sadikacar60
  Programdaki donmanin sebebi nasil yakalanir. sadikacar60 2 412 17-10-2024, Saat: 18:21
Son Yorum: sadikacar60
  string icinde alt satirda goster koduyla beraber nasil gonderilir sadikacar60 4 557 09-09-2024, Saat: 08:42
Son Yorum: damert6



Konuyu Okuyanlar: 1 Ziyaretçi