回复 9楼 liunis
strtofile
2023-04-19 13:46
程序代码:
CREATE CURSOR tt (字节偏移 c(8),f0 c(2),f1 c(2),f2 c(2),f3 c(2),f4 c(2),f5 c(2),f6 c(2),f7 c(2),;
f8 c(2),f9 c(2),fa c(2),fb c(2),fc c(2),fd c(2),fe c(2),ff c(2))
fn = GETFILE()
IF !FILE(fn)
RETURN
ENDIF
fp = FOPEN(fn)
i = 0
DO WHILE ALINES(arr,RIGHT(TRANSFORM(i,"@0"),8)+TRANSFORM(STRCONV(FREAD(fp,16),15),"@R "+REPLICATE(" ##",16)),15,0h20) > 1
INSERT INTO tt FROM ARRAY arr
i = i + 16
ENDDO
FCLOSE(fp)
SELECT * FROM tt
2023-04-19 15:59
程序代码:
DECLARE long _strdup IN msvcrt as apiStrdup string
DECLARE long free IN msvcrt as apiFree long
CREATE CURSOR tt (字节偏移 c(8),f0 c(2),f1 c(2),f2 c(2),f3 c(2),f4 c(2),f5 c(2),f6 c(2),f7 c(2),;
f8 c(2),f9 c(2),fa c(2),fb c(2),fc c(2),fd c(2),fe c(2),ff c(2))
fn = GETFILE()
IF !FILE(fn)
RETURN
ENDIF
cs = FILETOSTR(fn)
ps = apiStrdup(cs)
p = ps
n = LEN(cs)
m = 0
DO WHILE m < n
ALINES(arr,RIGHT(TRANSFORM(m,"@0"),8)+TRANSFORM(STRCONV(SYS(2600,p,IIF((n-m)<16,n-m,16)),15),"@R "+REPLICATE(" ##",16)),15,0h20)
INSERT INTO tt FROM ARRAY arr
p = p + 16
m = m + 16
ENDDO
apiFree(ps)
SELECT * FROM tt
2023-04-19 16:58
2023-04-19 18:35
2023-04-19 19:32
2023-04-19 19:42
2023-04-19 19:52
程序代码:
DECLARE long malloc IN msvcrt as apiMalloc long
DECLARE long free IN msvcrt as apiFree long
CREATE CURSOR tt (字节偏移 c(8),f0 c(2),f1 c(2),f2 c(2),f3 c(2),f4 c(2),f5 c(2),f6 c(2),f7 c(2),;
f8 c(2),f9 c(2),fa c(2),fb c(2),fc c(2),fd c(2),fe c(2),ff c(2))
fn = GETFILE()
IF !FILE(fn)
RETURN
ENDIF
cs = FILETOSTR(fn)
n = LEN(cs)
ps = apiMalloc(n)
IF ps == 0
? "分配内存失败"
RETURN
ENDIF
p = ps
SYS(2600,p,n,cs)
m = 0
DO WHILE m < n
ALINES(arr,RIGHT(TRANSFORM(m,"@0"),8)+TRANSFORM(STRCONV(SYS(2600,p,IIF((n-m)<16,n-m,16)),15),"@R "+REPLICATE(" ##",16)),15,0h20)
INSERT INTO tt FROM ARRAY arr
p = p + 16
m = m + 16
ENDDO
apiFree(ps)
SELECT * FROM tt
2023-04-19 20:15
2023-04-19 20:18


2023-04-19 20:56