Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
String Byte Dizisine Çevirme
#1
Merhaba arkadaşlar, 

Bir string'i byte dizisine çevirmek istiyorum 

örnek : str := '00 3F 3D 7E'; 

VB kodu buldum ama delphi için bulamadım  
array = str.Split(New Char() { " "c }).[Select](Function(s As String) Convert.ToByte(s, 16)).ToArray(Of Byte)() 

Teşekürler
- Namyelus
WWW
Cevapla
#2
Günaydın,

şu linke bir göz atıver ;

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
P.Safa:Yaşlanarak değil, yaşayarak tecrübe kazanılır.Zaman insanları değil,armutları olgunlaştırır
C.Yücel:Toprak gibi olmalısın! Ezildikçe sertleşmelisin!Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı
S.Canan:Bildiğini zannettiğin an hiç bir şey öğrenemezsin
Bilgi uçar
WWW
Cevapla
#3
Birçok yöntemi var ama benim ilk aklıma gelen aşağıdaki gibi(Açıklamalar kodun içerisindedir):

var
 SL: TStringList;
begin
 SL := TStringList.Create;
 try
   SL.Delimiter := ' ';
   SL.StrictDelimiter := True;
   SL.DelimitedText := '00 3F 3D 7E';
   // Burada SL.Count size kaç adet veriniz olduğunuz verir.
   // Sizin için bunların her biri 1 byte data demek.
   // SL.Strings[0]
   // SL.Strings[1]
   //...
   // Bu aşamada sizin değerleriniz hexedecimal olduğu için başına $ koyarak işlem yapmalısınız
   // örneğin 2. byte'ın değeri için
   StrToInt('$' + SL.Strings[1])
 finally
   SL.Free;
 end;
end;
There's no place like 127.0.0.1
WWW
Cevapla
#4
Kendi yapınıza göre bir fonksiyon yazıp sürekli olarak kullanabilirsiniz.
Örnek olarak;

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TAbyte = array of byte;

 TForm1 = class(TForm)
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
   function StringToByte(str: string): Tabyte;
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
 aSbyte: TAbyte;
begin
  aSbyte := StringToByte('00 3F 3D 7E');
  ShowMessage( IntToStr(SizeOf(aSbyte)) + ' Byte çevrildi');
end;

function TForm1.StringToByte(str: string): TAbyte;
var
 i,y: integer;
begin
  str := StringReplace(str, ' ', '', [rfReplaceAll, rfIgnoreCase]);
  SetLength(Result, length(str) div 2);
  i := 0;
  y := 0;
  while i < length(str) do
  begin
    Result[y] := StrToInt('$' + copy(str, i+1, 2));
    Inc(i, 2);
    Inc(y);
  end;
end;

end.
Ayakkabıyı sefaletten
Çok sonraları tanıdım
Öyle ufuklarda mı olurmuş Allah'ım
Giyer giyer koşardım
Toprağın dostluğundan
Oyuncaklar yaptım çamurdan
Tenimin rengini aldım topraktan
Sen bakma esmerliğim sonradan...





Cevapla
#5
Herkese Çok Teşekür ederim cevaplarınız için.
- Namyelus
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  cxgrid String alan sorunu HuseyinF 7 229 25-09-2019, Saat: 16:54
Son Yorum: HuseyinF
  Edit Sayı Çevirme OZCANK 13 438 10-09-2019, Saat: 15:43
Son Yorum: faktoral
  Writefile yazılan byte sorunu seci20 2 213 04-09-2019, Saat: 20:29
Son Yorum: seci20
  Com Porttan gelen veriyi strin formatına çevirme 41linea41 3 399 12-06-2019, Saat: 02:41
Son Yorum: Fesih ARSLAN
  [Çözüldü] JSon String içindeki son altı bilgi CesuR 7 702 23-03-2019, Saat: 18:15
Son Yorum: Fesih ARSLAN



Konuyu Okuyanlar: 1 Ziyaretçi