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
Cevapla
#2
Günaydın,

şu linke bir göz atıver ;

http://docs.embarcadero.com/products/rad...Bytes.html

http://mrbool.com/string-to-byte-and-byt...lphi/18196
YouTube Delphi Tips
"Yaşlanarak değil, yaşayarak tecrübe kazanılır. Zaman insanları değil, armutları olgunlaştırır" Peyami Safa
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.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  WebBrowser1 Gelen Veriyi Pdf e Çevirme sadoal351 6 1.175 26-07-2023, Saat: 18:38
Son Yorum: nguzeller
  String Fonksiyon Kullanımıyla ilgili ermanispir@gmail.com 2 477 01-06-2023, Saat: 11:28
Son Yorum: ermanispir@gmail.com
  Memo içerisinde 4 kolonlu tablo tipi string göstermek (String Format) Syntax 4 1.565 05-05-2023, Saat: 11:02
Son Yorum: Bay_Y
  No mapping for the Unicode character exists in the target multi-byte code page powerghost 8 4.412 20-04-2023, Saat: 10:19
Son Yorum: yhackup
  Sesi Yazıya Çevirme 2023 gonulali 1 773 30-01-2023, Saat: 11:59
Son Yorum: Halil Han BADEM



Konuyu Okuyanlar: 1 Ziyaretçi