1樓:匿名使用者
你的**只讀出那個位元組又沒做別的處理,因此不用read了。因為你那三個位元組都是連續的,因此可以用一個byte陣列,如下:
varf :file;
buf: array[0..2] of byte;
begin
assignfile(f, '2.exe');
tryreset(f,1);
buf[0]:=$74;
buf[1]:=$31;
buf[2]:=$5c;
seek(f,300938);//從300938開始寫3個位元組blockwrite(f, buf, sizeof(buf));
finally
closefile(f);
end;
end;
2樓:匿名使用者
procedure tform1.btn4click(sender: tobject);
varf1:file of byte;
cc:byte;
alist:array of longint; //新加blist:array of longint; //新加i:integer; //新加
begin
setlength(alist, 3) ; //新加setlength(blist, 3) ; //新加alist[0]:=300938;
alist[1]:=300939;
alist[2]:=300940; //新加blist[0]$74;
blist[1]:=$31;
blist[2]:=$5c;
assignfile(f1,'2.exe');
tryfor i := 0 to 3 do //新加begin
reset(f1);
seek(f1,alist[i]); //修改 //定位到第300940個位元組處,位置你可以自己定
read(f1,cc); //讀出一個位元組,賦值給cc// cc:=$5c; //修改aa的值cc:=blist[i]; //新修改seek(f1,alist[i]); //重新定位,因為讀資料後,指標指向了下一個位元組
write(f1,cc); //將修改後的值寫回原位end;
finally
closefile(f1);
end; //end of tryend;
delphi中怎麼將3個byte陣列轉換成一個位元組流?
3樓:
用tmemorystream.write試試
delphi 中英文字串與位元組陣列 互轉
4樓:至少讓我看一眼
你的delphi是不是delphi2009以上的版本,如果是的話預設的string是widestring.你所說的7個位元組的string事實上是ansistring。方法一事實上可以簡化為:
const
str: ansistring = '中文abc';
varbuf: array of byte; len: integer;
begin
//獲取ansi字串的長度
len := length(str);
//設定buf陣列的長度
setlength(buf,len);
//複製資料到buf陣列
move(str[1],buf[1],len);
end;
而複製buf的方法,就是上面方法的反操作:
const
str: ansistring = '中文abc';
varbuf: array of byte; len: integer;
astr: ansistring; trgstr: string;
begin
//獲取ansi字串的長度
len := length(str);
//設定buf陣列的長度
setlength(buf,len);
//複製資料到buf陣列
move(str[1],buf[1],len);
//獲取buf陣列的長度
len := length(buf);
//設定需要複製的ansi字串的長度
setlength(astr,len);
//從buf陣列複製資料
move(buf[1],astr[1],len);
//將資料複製到trgstr字串
trgstr := astr;
//顯示trgstr
showmessage(trgstr);
end;
5樓:匿名使用者
delphi 的 string 本來就是單位元組儲存,顯示的時候由作業系統畫布自動區分中文英文,你直接按位元組取出來就可以。中文字元雙位元組的每個位元組的值都大於等於 $80 ,西文字元的位元組的值都小於 $80 。
delphi中byte陣列和string之間怎樣相互轉換
6樓:匿名使用者
vararrbyte: array[0..2] of byte;
str1: string;
i: integer;
begin
for i := 0 to length(arrbyte)-1 dostr := str + inttostr(arrbyte[i]);//byte to string;
for i := 0 to length(str)-1 doarrbyte[i] := byte(str[i]);//string to byte
strcopy(pchar(@arrbyte),pchar(str));//string to byte
end;
delphi中byte型別怎麼轉為字元型
7樓:匿名使用者
用char()
varss:byte;
begin
ss:=$31;
showmessage(char(ss));
如果你是想byte:=9 的時候 轉為字串9那就直接用 inttostr()
delphi 中,byte陣列如何賦值呢?
8樓:符映天彤白
procedure tform1.button1click(sender: tobject);
varbs: tbytes;
i: integer;
begin
setlength(bs, 4);
bs[0] := $10;
bs[1] := $27;
bs[2] := 0;
bs[3] := 0;
i := pinteger(bs)^;
showmessage(inttostr(i));
end;
procedure tform1.button2click(sender: tobject);
varbs: array[0..3] of byte;
i: integer;
begin
bs[0] := $10;
bs[1] := $27;
bs[2] := 0;
bs[3] := 0;
i := integer(bs);
showmessage(inttostr(i));
end;
procedure tform1.button3click(sender: tobject);
type
tdata = packed record
a: integer;
b: word;
end;
varbs: array[0..5] of byte;
data: tdata;
begin
fillchar(bs, length(bs), 0);
bs[0] := $10;
bs[1] := $27;
data := tdata(bs);
showmessage(inttostr(data.a));
end;
procedure tform1.button4click(sender: tobject);
type
tdata = packed record
a: integer;
b: word;
end;
varbs: array[0..3] of byte;
data: tdata;
begin
fillchar(bs, length(bs), 0);
bs[0] := $10;
bs[1] := $27;
data.a := integer(bs);
showmessage(inttostr(data.a));
end;
delphi中怎樣把string轉為array of byte
9樓:
以下為示例**:
procedure tform1.button1click(sender: tobject);
vars:string;
ab:array of byte;
i:integer;
begin
s:='this is a test';
setlength(ab,length(s));
for i:=1 to length(s) doab[i]:=byte(s[i]);
end;
字佔幾個位元組?位元組是什麼一個字佔幾個位元組?位元組是什麼?
ascii碼 一個英文字母 不分大小寫 佔一個位元組的空間,一位元組 byte 是計算機資訊科技用於計量儲存容量和傳輸容量的一種計量單位,1個位元組等於8位二進位制。在微型計算機中,通常用多少位元組來表示儲存器的儲存容量。1箇中文漢字佔兩個位元組的空間。一個二進位制數字序列,在計算機中作為一個數字單...
位元組字位位元這四者之間的關係是什麼
1位 1位元 1字 2位元組 1位元組 8位 1字 16位。1 位位是計算機儲存的最小單位,簡記為b,也稱為位元 bit 計算機中用二進位制中的0和1來表示資料,一個0或1就代表一位。位數通常指計算機中一次能處理的資料大小 2 位元 位元 bit 是由英文bit音譯而來,位元同時也是二進位制數字中的...
未來的食物作文節尾,未來的食物作文49位元組尾
一天下bai午,我剛剛與同學分手du,準備回zhi家。這時,dao因為我剛才玩得內起勁感覺渾身發容 熱,口乾舌噪。我抬頭向四周望,看見離這不遠處有一家商店,有冷飲買。我一摸口袋,有十元錢。我就去那家商店買冷飲吃。我走到商店門口,看見一位阿姨。她非常熱情地招呼我,說 小朋友,買什麼?我買一根五角錢的綠...