Tüm Platformlar için Hızlı Uygulama Geliştirme --->    Kitabımız...      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
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol,Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
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
  FastReport yazıya çevirme adelphiforumz 0 63 13-02-2018, Saat: 23:43
Son Yorum: adelphiforumz
  if koşulunda çoklu string eşleştirme mcuyan 12 354 12-12-2017, Saat: 13:06
Son Yorum: mcuyan
  Bir Byte Her Zaman 8 Bitten Oluşmaz savasabd 3 198 25-11-2017, Saat: 00:09
Son Yorum: savasabd
  İki byte dizisi nasıl birleştirebilirim ? dicle_gsm 4 247 04-07-2017, Saat: 02:50
Son Yorum: dicle_gsm
  Metini Sese Çevirme (TTS) AliZairov 3 535 11-04-2017, Saat: 00:18
Son Yorum: Lord_Ares



Konuyu Okuyanlar: 1 Ziyaretçi