當前位置: 主頁 > 百科 > 計算機編程 > 易語言源碼 >
0 Comments

源碼編寫—扇區讀寫

發布于:2016-07-05  |   作者:http://www.tradlc.live  |   已聚集:人圍觀

.版本 2

.支持庫 spec

.局部變量 i, 整數型

.局部變量 文件句柄, 整數型


調試輸出 (取物理磁盤個數 ())


調試輸出 (讀扇區 (0, 63))


.子程序 取物理磁盤個數, 整數型

.局部變量 i, 整數型

.局部變量 文件句柄, 整數型

.局部變量 總數, 整數型


總數 = 0

.計次循環首 (1024, i)

    文件句柄 = CreateFile (“\\.\PhysicalDrive” + 到文本 (i - 1), 2147483648, 1, 0, 3, 0, 0)  ' \\\\.\\PhysicalDrive0

    .如果 (文件句柄 > 0)

        CloseHandle (文件句柄)

        總數 = 總數 + 1

    .否則

        CloseHandle (文件句柄)

        跳出循環 ()

    .如果結束


.計次循環尾 ()

返回 (總數)


.子程序 讀扇區, 字節集, 公開

.參數 驅動器位置, 整數型, , 0為主盤

.參數 扇區號, 整數型

.局部變量 文件句柄, 整數型

.局部變量 讀寫結果, 邏輯型

.局部變量 數據緩沖區, 字節集, 靜態

.局部變量 dwCB, 整數型

.局部變量 讀寫位置, 整數型

.局部變量 Q, 字節集

.局部變量 P, 整數型

.局部變量 讀取到的數據, 字節集


讀取到的數據 = {  }

文件句柄 = CreateFile (“\\.\PhysicalDrive” + 到文本 (驅動器位置), 2147483648, 1, 0, 3, 0, 0)  ' \\\\.\\PhysicalDrive0

.如果真 (文件句柄 = -1)

    返回 (讀取到的數據)

.如果真結束

讀寫位置 = SetFilePointer (文件句柄, 512 × 扇區號, 0, 0)

數據緩沖區 = 取空白字節集 (512)

讀寫結果 = ReadFileD (文件句柄, 數據緩沖區, 512, 取整數指針 (dwCB, dwCB, 0), 0)

讀取到的數據 = 數據緩沖區

CloseHandle (文件句柄)

返回 (讀取到的數據)


.子程序 寫扇區, 整數型, 公開

.參數 驅動器位置, 整數型, , 0為主盤

.參數 扇區號, 整數型

.參數 欲寫入數據, 字節集

.局部變量 文件句柄, 整數型

.局部變量 讀寫結果, 整數型

.局部變量 數據緩沖區, 字節集, 靜態

.局部變量 讀寫位置, 整數型

.局部變量 dwCB, 整數型


文件句柄 = CreateFile (“\\.\PhysicalDrive” + 到文本 (驅動器位置), 1073741824, 1, 0, 3, 0, 0)  ' \\\\.\\PhysicalDrive0

.如果真 (文件句柄 = -1)

    返回 (0)

.如果真結束

讀寫位置 = SetFilePointer (文件句柄, 512 × 扇區號, 0, 0)

數據緩沖區 = 取空白字節集 (512)

拷貝內存_ (數據緩沖區, 到字節集 (欲寫入數據), 取字節集長度 (欲寫入數據))

讀寫結果 = WriteFile (文件句柄, 數據緩沖區, 512, 取整數指針 (dwCB, dwCB, 0), 0)

CloseHandle (文件句柄)

返回 (讀寫結果)


標簽:                   喜歡:收藏
2019年马会全年资料