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

Konuyu Paylaş : facebook gplus twitter

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 Giriş yap veya Üye Ol

Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Peyami Safa: "Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır". 
Can Yücel: "Toprak gibi olmalısın! Ezildikçe sertleşmelisin! Seni ezenler sana muhtaç kalmalı! Hayatı sende bulmalı."
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

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  String Parse İşlemi yhackup 1 166 27-06-2018, Saat: 09:54
Son Yorum: adelphiforumz
  FastReport yazıya çevirme adelphiforumz 0 377 13-02-2018, Saat: 23:43
Son Yorum: adelphiforumz
  if koşulunda çoklu string eşleştirme mcuyan 12 822 12-12-2017, Saat: 13:06
Son Yorum: mcuyan
  Bir Byte Her Zaman 8 Bitten Oluşmaz savasabd 3 445 25-11-2017, Saat: 00:09
Son Yorum: savasabd
  İki byte dizisi nasıl birleştirebilirim ? dicle_gsm 4 525 04-07-2017, Saat: 02:50
Son Yorum: dicle_gsm



Konuyu Okuyanlar: 1 Ziyaretçi