Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
3
Task/File-size/00-META.yaml
Normal file
3
Task/File-size/00-META.yaml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
from: http://rosettacode.org/wiki/File_size
|
||||
note: File System Operations
|
||||
3
Task/File-size/00-TASK.txt
Normal file
3
Task/File-size/00-TASK.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
Verify the size of a file called '''input.txt''' for a file in the current working directory, and another one in the file system root.
|
||||
<br><br>
|
||||
|
||||
2
Task/File-size/11l/file-size.11l
Normal file
2
Task/File-size/11l/file-size.11l
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
V size1 = fs:file_size(‘input.txt’)
|
||||
V size2 = fs:file_size(‘/input.txt’)
|
||||
68
Task/File-size/8086-Assembly/file-size.8086
Normal file
68
Task/File-size/8086-Assembly/file-size.8086
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
putch: equ 2 ; Print character
|
||||
puts: equ 9 ; Print $-terminated string
|
||||
setdta: equ 1Ah ; Set DTA
|
||||
stat: equ 4Eh ; Get file info
|
||||
cpu 8086
|
||||
bits 16
|
||||
org 100h
|
||||
section .text
|
||||
mov si,curf ; Print file size for 'INPUT.TXT'
|
||||
call pfsize ; (in current directory),
|
||||
mov si,rootf ; Then for '\INPUT.TXT' in root directory
|
||||
;;; Print file name and size for file in DS:SI
|
||||
pfsize: mov ah,setdta ; Set disc transfer area pointer
|
||||
mov dx,dta
|
||||
int 21h
|
||||
call puts0 ; Print the filename in SI
|
||||
mov ah,puts ; Print colon and space
|
||||
mov dx,colspc
|
||||
int 21h
|
||||
mov ah,stat ; Find file info
|
||||
xor cx,cx ; We want a normal file
|
||||
mov dx,si ; Filename is in SI
|
||||
int 21h
|
||||
jnc .ok ; Carry clear = found
|
||||
mov ah,puts ; Carry set = not found = print 'not found'
|
||||
mov dx,nofile
|
||||
int 21h
|
||||
ret
|
||||
.ok: les bp,[dta+26] ; 32-bit file size in bytes at DTA+26
|
||||
mov di,es ; DI:BP = 32-bit file size
|
||||
mov bx,numbuf ; ASCII number buffer
|
||||
mov cx,10 ; Divisor (10)
|
||||
.dgt: xor dx,dx ; 32-bit division (to get digits)
|
||||
mov ax,di ; can be done with chained DIVs
|
||||
div cx
|
||||
mov di,ax
|
||||
mov ax,bp
|
||||
div cx
|
||||
mov bp,ax
|
||||
add dl,'0' ; DX is now remainder, i.e. digit
|
||||
dec bx ; Move digit pointer backwards,
|
||||
mov [bx],dl ; Store ASCII digit,
|
||||
or ax,di ; If the new divisor is not zero,
|
||||
jnz .dgt ; then there is another digit.
|
||||
mov ah,puts ; If so, the number is done,
|
||||
mov dx,bx ; and we can print it.
|
||||
int 21h
|
||||
ret
|
||||
;;; Print 0-terminated string in SI
|
||||
puts0: push si ; Save SI register
|
||||
mov ah,putch ; Print char syscall
|
||||
.loop: lodsb ; Load character from SI
|
||||
test al,al ; If zero,
|
||||
jz .out ; then stop.
|
||||
mov dl,al ; Tell DOS to print character
|
||||
int 21h
|
||||
jmp .loop ; go get another.
|
||||
.out: pop si ; Restore SI register
|
||||
ret
|
||||
section .data
|
||||
rootf: db '\' ; \INPUT.TXT (for root) and
|
||||
curf: db 'INPUT.TXT',0 ; INPUT.TXT (for current directory)
|
||||
nofile: db 'Not found.',13,10,'$' ; "Not found" message
|
||||
db '0000000000' ; Number output buffer
|
||||
numbuf: db ' bytes',13,10,'$'
|
||||
colspc: db ': $' ; Colon and space
|
||||
section .bss
|
||||
dta: resb 512 ; Disc transfer area
|
||||
203
Task/File-size/AArch64-Assembly/file-size.aarch64
Normal file
203
Task/File-size/AArch64-Assembly/file-size.aarch64
Normal file
|
|
@ -0,0 +1,203 @@
|
|||
/* ARM assembly AARCH64 Raspberry PI 3B */
|
||||
/* program filelen64.s */
|
||||
|
||||
/************************************/
|
||||
/* Constantes */
|
||||
/************************************/
|
||||
/* for this file see task include a file in language AArch64 assembly*/
|
||||
.include "../includeConstantesARM64.inc"
|
||||
|
||||
.equ FSTAT, 0x50
|
||||
|
||||
/************************************/
|
||||
/* structure de type stat : file infos */
|
||||
/************************************/
|
||||
.struct 0
|
||||
Stat_dev_t: /* ID of device containing file */
|
||||
.struct Stat_dev_t + 8
|
||||
Stat_ino_t: /* inode */
|
||||
.struct Stat_ino_t + 8
|
||||
Stat_mode_t: /* File type and mode */
|
||||
.struct Stat_mode_t + 4
|
||||
Stat_nlink_t: /* Number of hard links */
|
||||
.struct Stat_nlink_t + 4
|
||||
Stat_uid_t: /* User ID of owner */
|
||||
.struct Stat_uid_t + 4
|
||||
Stat_gid_t: /* Group ID of owner */
|
||||
.struct Stat_gid_t + 4
|
||||
Stat_rdev_t: /* Device ID (if special file) */
|
||||
.struct Stat_rdev_t + 8
|
||||
Stat_size_deb: /* la taille est sur 8 octets si gros fichiers */
|
||||
.struct Stat_size_deb + 8
|
||||
Stat_size_t: /* Total size, in bytes */
|
||||
.struct Stat_size_t + 8
|
||||
Stat_blksize_t: /* Block size for filesystem I/O */
|
||||
.struct Stat_blksize_t + 8
|
||||
Stat_blkcnt_t: /* Number of 512B blocks allocated */
|
||||
.struct Stat_blkcnt_t + 8
|
||||
Stat_atime: /* date et heure fichier */
|
||||
.struct Stat_atime + 8
|
||||
Stat_mtime: /* date et heure modif fichier */
|
||||
.struct Stat_atime + 8
|
||||
Stat_ctime: /* date et heure creation fichier */
|
||||
.struct Stat_atime + 8
|
||||
Stat_End:
|
||||
|
||||
/*********************************/
|
||||
/* Initialized data */
|
||||
/*********************************/
|
||||
.data
|
||||
szMessResult: .asciz " File size = "
|
||||
szCarriageReturn: .asciz "\n"
|
||||
szMessErrOpen: .asciz "Error open file\n"
|
||||
szMessErrStat: .asciz "Error stats file\n"
|
||||
szFileName: .asciz "input.txt"
|
||||
szFileName1: .asciz "../../../input.txt"
|
||||
|
||||
/*********************************/
|
||||
/* UnInitialized data */
|
||||
/*********************************/
|
||||
.bss
|
||||
sZoneConv: .skip 24
|
||||
sBuffer: .skip Stat_End
|
||||
/*********************************/
|
||||
/* code section */
|
||||
/*********************************/
|
||||
.text
|
||||
.global main
|
||||
main:
|
||||
ldr x0,qAdrszFileName // file name
|
||||
bl filesize
|
||||
cmp x0,#0
|
||||
blt 100f
|
||||
ldr x1,qAdrsZoneConv
|
||||
bl conversion10 // call décimal conversion
|
||||
mov x0,#4
|
||||
ldr x1,qAdrszFileName
|
||||
ldr x2,qAdrszMessResult
|
||||
ldr x3,qAdrsZoneConv // insert conversion in message
|
||||
ldr x4,qAdrszCarriageReturn
|
||||
stp x4,x4,[sp,-16]! // save registers
|
||||
bl displayStrings // display message
|
||||
add sp,sp,#16 // 1 parameter on stack
|
||||
|
||||
ldr x0,qAdrszFileName1 // file name
|
||||
bl filesize
|
||||
cmp x0,#0
|
||||
blt 100f
|
||||
ldr x1,qAdrsZoneConv
|
||||
bl conversion10 // call décimal conversion
|
||||
ldr x0,qAdrsZoneConv
|
||||
mov x0,#4
|
||||
ldr x1,qAdrszFileName1
|
||||
ldr x2,qAdrszMessResult
|
||||
ldr x3,qAdrsZoneConv // insert conversion in message
|
||||
ldr x4,qAdrszCarriageReturn
|
||||
stp x4,x4,[sp,-16]! // save registers
|
||||
bl displayStrings // display message
|
||||
add sp,sp,#16 // 1 parameter on stack
|
||||
|
||||
100: // standard end of the program
|
||||
mov x0, #0 // return code
|
||||
mov x8,EXIT
|
||||
svc #0 // perform the system call
|
||||
qAdrszCarriageReturn: .quad szCarriageReturn
|
||||
qAdrsZoneConv: .quad sZoneConv
|
||||
qAdrszMessResult: .quad szMessResult
|
||||
qAdrszFileName: .quad szFileName
|
||||
qAdrszFileName1: .quad szFileName1
|
||||
qAdrsBuffer: .quad sBuffer
|
||||
qAdrszMessErrOpen: .quad szMessErrOpen
|
||||
qAdrszMessErrStat: .quad szMessErrStat
|
||||
/***************************************************/
|
||||
/* display multi strings */
|
||||
/***************************************************/
|
||||
/* x0 contains number strings address */
|
||||
filesize: // INFO: filesize
|
||||
stp x1,lr,[sp,-16]! // save registers
|
||||
stp x2,x3,[sp,-16]! // save registers
|
||||
stp x4,x5,[sp,-16]! // save registers
|
||||
stp x6,x7,[sp,-16]! // save registers
|
||||
stp x8,x9,[sp,-16]! // save registers
|
||||
mov x1,x0
|
||||
mov x0,#AT_FDCWD
|
||||
mov x2,#O_RDWR // flags
|
||||
mov x3,#0 // mode
|
||||
mov x8,#OPEN
|
||||
svc 0
|
||||
cmp x0,#0 // error ?
|
||||
ble 99f
|
||||
mov x8,x0 // Fd save
|
||||
ldr x1,qAdrsBuffer // buffer address
|
||||
mov x8,#FSTAT
|
||||
svc 0
|
||||
cmp x0,#0
|
||||
blt 98f
|
||||
ldr x1,qAdrsBuffer // buffer address
|
||||
ldr x4,[x1,#Stat_size_t] // file size
|
||||
mov x0,x8
|
||||
mov x8,CLOSE
|
||||
mov x0,x4 // return size
|
||||
b 100f
|
||||
98:
|
||||
ldr x0,qAdrszMessErrStat
|
||||
bl affichageMess
|
||||
mov x0,#-1
|
||||
b 100f
|
||||
99:
|
||||
ldr x0,qAdrszMessErrOpen
|
||||
bl affichageMess
|
||||
mov x0,#-1
|
||||
100:
|
||||
ldp x8,x9,[sp],16 // restaur registers
|
||||
ldp x6,x7,[sp],16 // restaur registers
|
||||
ldp x4,x5,[sp],16 // restaur registers
|
||||
ldp x2,x3,[sp],16 // restaur registers
|
||||
ldp x1,lr,[sp],16 // restaur registers
|
||||
ret
|
||||
/***************************************************/
|
||||
/* display multi strings */
|
||||
/***************************************************/
|
||||
/* x0 contains number strings address */
|
||||
/* x1 address string1 */
|
||||
/* x2 address string2 */
|
||||
/* x3 address string3 */
|
||||
/* other address on the stack */
|
||||
/* thinck to add number other address * 4 to add to the stack */
|
||||
displayStrings: // INFO: displayStrings
|
||||
stp x1,lr,[sp,-16]! // save registers
|
||||
stp x2,x3,[sp,-16]! // save registers
|
||||
stp x4,x5,[sp,-16]! // save registers
|
||||
add fp,sp,#48 // save paraméters address (6 registers saved * 4 bytes)
|
||||
mov x4,x0 // save strings number
|
||||
cmp x4,#0 // 0 string -> end
|
||||
ble 100f
|
||||
mov x0,x1 // string 1
|
||||
bl affichageMess
|
||||
cmp x4,#1 // number > 1
|
||||
ble 100f
|
||||
mov x0,x2
|
||||
bl affichageMess
|
||||
cmp x4,#2
|
||||
ble 100f
|
||||
mov x0,x3
|
||||
bl affichageMess
|
||||
cmp x4,#3
|
||||
ble 100f
|
||||
mov x3,#3
|
||||
sub x2,x4,#4
|
||||
1: // loop extract address string on stack
|
||||
ldr x0,[fp,x2,lsl #3]
|
||||
bl affichageMess
|
||||
subs x2,x2,#1
|
||||
bge 1b
|
||||
100:
|
||||
ldp x4,x5,[sp],16 // restaur registers
|
||||
ldp x2,x3,[sp],16 // restaur registers
|
||||
ldp x1,lr,[sp],16 // restaur registers
|
||||
ret
|
||||
/***************************************************/
|
||||
/* ROUTINES INCLUDE */
|
||||
/***************************************************/
|
||||
/* for this file see task include a file in language AArch64 assembly */
|
||||
.include "../includeARM64.inc"
|
||||
1
Task/File-size/ALGOL-68/file-size.alg
Normal file
1
Task/File-size/ALGOL-68/file-size.alg
Normal file
|
|
@ -0,0 +1 @@
|
|||
PROC set = (REF FILE file, INT page, line, character)VOID: ~
|
||||
194
Task/File-size/ARM-Assembly/file-size.arm
Normal file
194
Task/File-size/ARM-Assembly/file-size.arm
Normal file
|
|
@ -0,0 +1,194 @@
|
|||
/* ARM assembly Raspberry PI or android with termux */
|
||||
/* program filelen.s */
|
||||
|
||||
/* REMARK 1 : this program use routines in a include file
|
||||
see task Include a file language arm assembly
|
||||
for the routine affichageMess conversion10
|
||||
see at end of this program the instruction include */
|
||||
/* for constantes see task include a file in arm assembly */
|
||||
/************************************/
|
||||
/* Constantes */
|
||||
/************************************/
|
||||
.include "../constantes.inc"
|
||||
|
||||
.equ OPEN, 5
|
||||
.equ NEWFSTAT, 0xc5
|
||||
|
||||
.equ O_RDWR, 0x0002 @ open for reading and writing
|
||||
|
||||
/************************************/
|
||||
/* structure de type stat : file infos */
|
||||
/************************************/
|
||||
.struct 0
|
||||
Stat_dev_t: /* ID of device containing file */
|
||||
.struct Stat_dev_t + 8
|
||||
Stat_ino_t: /* inode */
|
||||
.struct Stat_ino_t + 8
|
||||
Stat_mode_t: /* File type and mode */
|
||||
.struct Stat_mode_t + 4
|
||||
Stat_nlink_t: /* Number of hard links */
|
||||
.struct Stat_nlink_t + 4
|
||||
Stat_uid_t: /* User ID of owner */
|
||||
.struct Stat_uid_t + 4
|
||||
Stat_gid_t: /* Group ID of owner */
|
||||
.struct Stat_gid_t + 4
|
||||
Stat_rdev_t: /* Device ID (if special file) */
|
||||
.struct Stat_rdev_t + 8
|
||||
Stat_size_deb: /* la taille est sur 8 octets si gros fichiers */
|
||||
.struct Stat_size_deb + 8
|
||||
Stat_size_t: /* Total size, in bytes */
|
||||
.struct Stat_size_t + 4
|
||||
Stat_blksize_t: /* Block size for filesystem I/O */
|
||||
.struct Stat_blksize_t + 4
|
||||
Stat_blkcnt_t: /* Number of 512B blocks allocated */
|
||||
.struct Stat_blkcnt_t + 4
|
||||
Stat_atime: /* date et heure fichier */
|
||||
.struct Stat_atime + 8
|
||||
Stat_mtime: /* date et heure modif fichier */
|
||||
.struct Stat_atime + 8
|
||||
Stat_ctime: /* date et heure creation fichier */
|
||||
.struct Stat_atime + 8
|
||||
Stat_End:
|
||||
|
||||
/*********************************/
|
||||
/* Initialized data */
|
||||
/*********************************/
|
||||
.data
|
||||
szMessResult: .asciz " File size = "
|
||||
szCarriageReturn: .asciz "\n"
|
||||
szMessErrOpen: .asciz "Error open file\n"
|
||||
szMessErrStat: .asciz "Error stats file\n"
|
||||
szFileName: .asciz "input.txt"
|
||||
szFileName1: .asciz "../../../input.txt"
|
||||
.align 2
|
||||
|
||||
/*********************************/
|
||||
/* UnInitialized data */
|
||||
/*********************************/
|
||||
.bss
|
||||
sZoneConv: .skip 24
|
||||
sBuffer: .skip Stat_End
|
||||
/*********************************/
|
||||
/* code section */
|
||||
/*********************************/
|
||||
.text
|
||||
.global main
|
||||
main:
|
||||
ldr r0,iAdrszFileName @ file name
|
||||
bl filesize
|
||||
cmp r0,#0
|
||||
blt 100f
|
||||
ldr r1,iAdrsZoneConv
|
||||
bl conversion10 @ call décimal conversion
|
||||
mov r0,#4
|
||||
ldr r1,iAdrszFileName
|
||||
ldr r2,iAdrszMessResult
|
||||
ldr r3,iAdrsZoneConv @ insert conversion in message
|
||||
ldr r4,iAdrszCarriageReturn
|
||||
push {r4}
|
||||
bl displayStrings @ display message
|
||||
add sp,#4 @ 1 parameter on stack
|
||||
|
||||
ldr r0,iAdrszFileName1 @ file name
|
||||
bl filesize
|
||||
cmp r0,#0
|
||||
blt 100f
|
||||
ldr r1,iAdrsZoneConv
|
||||
bl conversion10 @ call décimal conversion
|
||||
mov r0,#4
|
||||
ldr r1,iAdrszFileName1
|
||||
ldr r2,iAdrszMessResult
|
||||
ldr r3,iAdrsZoneConv @ insert conversion in message
|
||||
ldr r4,iAdrszCarriageReturn
|
||||
push {r4}
|
||||
bl displayStrings @ display message
|
||||
add sp,#4 @ 1 parameter on stack
|
||||
|
||||
100: @ standard end of the program
|
||||
mov r0, #0 @ return code
|
||||
mov r7, #EXIT @ request to exit program
|
||||
svc #0 @ perform the system call
|
||||
iAdrszCarriageReturn: .int szCarriageReturn
|
||||
iAdrsZoneConv: .int sZoneConv
|
||||
iAdrszMessResult: .int szMessResult
|
||||
iAdrszFileName: .int szFileName
|
||||
iAdrszFileName1: .int szFileName1
|
||||
iAdrsBuffer: .int sBuffer
|
||||
iAdrszMessErrOpen: .int szMessErrOpen
|
||||
iAdrszMessErrStat: .int szMessErrStat
|
||||
/***************************************************/
|
||||
/* display multi strings */
|
||||
/***************************************************/
|
||||
/* r0 contains number strings address */
|
||||
filesize: @ INFO: filesize
|
||||
push {r1-r8,fp,lr} @ save des registres
|
||||
mov r1,#O_RDWR @ flags
|
||||
mov r2,#0 @ mode
|
||||
mov r7,#OPEN
|
||||
svc 0
|
||||
cmp r0,#0 @ error ?
|
||||
ble 99f
|
||||
mov r8,r0 @ Fd save
|
||||
ldr r1,iAdrsBuffer @ buffer address
|
||||
mov r7,#NEWFSTAT
|
||||
svc 0
|
||||
cmp r0,#0
|
||||
blt 98f
|
||||
ldr r0,iAdrsBuffer
|
||||
ldr r1,iAdrsBuffer @ buffer address
|
||||
ldr r4,[r1,#Stat_size_t] @ file size
|
||||
mov r0,r8
|
||||
mov r7,#CLOSE
|
||||
mov r0,r4 @ return size
|
||||
b 100f
|
||||
98:
|
||||
ldr r0,iAdrszMessErrStat
|
||||
bl affichageMess
|
||||
mov r0,#-1
|
||||
b 100f
|
||||
99:
|
||||
ldr r0,iAdrszMessErrOpen
|
||||
bl affichageMess
|
||||
mov r0,#-1
|
||||
100:
|
||||
pop {r1-r8,fp,pc}
|
||||
/***************************************************/
|
||||
/* display multi strings */
|
||||
/***************************************************/
|
||||
/* r0 contains number strings address */
|
||||
/* r1 address string1 */
|
||||
/* r2 address string2 */
|
||||
/* r3 address string3 */
|
||||
/* other address on the stack */
|
||||
/* thinck to add number other address * 4 to add to the stack */
|
||||
displayStrings: @ INFO: displayStrings
|
||||
push {r1-r4,fp,lr} @ save des registres
|
||||
add fp,sp,#24 @ save paraméters address (6 registers saved * 4 bytes)
|
||||
mov r4,r0 @ save strings number
|
||||
cmp r4,#0 @ 0 string -> end
|
||||
ble 100f
|
||||
mov r0,r1 @ string 1
|
||||
bl affichageMess
|
||||
cmp r4,#1 @ number > 1
|
||||
ble 100f
|
||||
mov r0,r2
|
||||
bl affichageMess
|
||||
cmp r4,#2
|
||||
ble 100f
|
||||
mov r0,r3
|
||||
bl affichageMess
|
||||
cmp r4,#3
|
||||
ble 100f
|
||||
mov r3,#3
|
||||
sub r2,r4,#4
|
||||
1: @ loop extract address string on stack
|
||||
ldr r0,[fp,r2,lsl #2]
|
||||
bl affichageMess
|
||||
subs r2,#1
|
||||
bge 1b
|
||||
100:
|
||||
pop {r1-r4,fp,pc}
|
||||
/***************************************************/
|
||||
/* ROUTINES INCLUDE */
|
||||
/***************************************************/
|
||||
.include "../affichage.inc"
|
||||
11
Task/File-size/AWK/file-size-1.awk
Normal file
11
Task/File-size/AWK/file-size-1.awk
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
@load "filefuncs"
|
||||
function filesize(name ,fd) {
|
||||
if ( stat(name, fd) == -1)
|
||||
return -1 # doesn't exist
|
||||
else
|
||||
return fd["size"]
|
||||
}
|
||||
BEGIN {
|
||||
print filesize("input.txt")
|
||||
print filesize("/input.txt")
|
||||
}
|
||||
38
Task/File-size/AWK/file-size-2.awk
Normal file
38
Task/File-size/AWK/file-size-2.awk
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
BEGIN {
|
||||
|
||||
# Windows
|
||||
printf("input.txt\t%s\n", system2var("for %I in (input.txt) do @echo %~zI"))
|
||||
printf("\input.txt\t%s\n", system2var("for %I in (\input.txt) do @echo %~zI"))
|
||||
|
||||
# Non-Windows
|
||||
printf("input.txt\t%s\n", getline2var("stat --printf=\"%s\" input.txt"))
|
||||
printf("/input.txt\t%s\n", getline2var("stat --printf=\"%s\" /input.txt"))
|
||||
}
|
||||
|
||||
# Windows system() method
|
||||
function system2var(command ,tempfile, cmd, out, rec, data, i) {
|
||||
tempfile = "C:\\TEMP\\TMP.TMP"
|
||||
cmd = command " > " tempfile
|
||||
system(cmd)
|
||||
close(cmd)
|
||||
while (getline rec < tempfile > 0) {
|
||||
if ( ++i == 1 )
|
||||
data = rec
|
||||
else
|
||||
data = data "\n" rec
|
||||
}
|
||||
return(data)
|
||||
}
|
||||
|
||||
# Non-windows getline method
|
||||
function getline2var(command ,fish, scale, ship) {
|
||||
command = command " 2>/dev/null"
|
||||
while ( (command | getline fish) > 0 ) {
|
||||
if ( ++scale == 1 )
|
||||
ship = fish
|
||||
else
|
||||
ship = ship "\n" fish
|
||||
}
|
||||
close(command)
|
||||
return ship
|
||||
}
|
||||
47
Task/File-size/Action-/file-size-1.action
Normal file
47
Task/File-size/Action-/file-size-1.action
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
INCLUDE "D2:IO.ACT" ;from the Action! Tool Kit
|
||||
|
||||
PROC Dir(CHAR ARRAY filter)
|
||||
BYTE dev=[1]
|
||||
CHAR ARRAY line(255)
|
||||
|
||||
Close(dev)
|
||||
Open(dev,filter,6)
|
||||
DO
|
||||
InputSD(dev,line)
|
||||
PrintE(line)
|
||||
IF line(0)=0 THEN
|
||||
EXIT
|
||||
FI
|
||||
OD
|
||||
Close(dev)
|
||||
RETURN
|
||||
|
||||
CARD FUNC FileSize(CHAR ARRAY src,dst)
|
||||
DEFINE BUF_LEN="100"
|
||||
BYTE dev=[1]
|
||||
BYTE ARRAY buff(BUF_LEN)
|
||||
CARD len,size
|
||||
|
||||
size=0
|
||||
Close(dev)
|
||||
Open(dev,src,4)
|
||||
DO
|
||||
len=Bget(dev,buff,BUF_LEN)
|
||||
size==+len
|
||||
UNTIL len#BUF_LEN
|
||||
OD
|
||||
Close(dev)
|
||||
RETURN (size)
|
||||
|
||||
PROC Main()
|
||||
CHAR ARRAY filter="D:*.*", fname="D:INPUT.TXT"
|
||||
CARD size
|
||||
|
||||
Put(125) PutE() ;clear screen
|
||||
|
||||
PrintF("Dir ""%S""%E",filter)
|
||||
Dir(filter)
|
||||
|
||||
size=FileSize(fname)
|
||||
PrintF("Size of ""%S"" is %U bytes%E",fname,size)
|
||||
RETURN
|
||||
14
Task/File-size/Action-/file-size-2.action
Normal file
14
Task/File-size/Action-/file-size-2.action
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
INCLUDE"REAL.ACT" ;from the Action! Tool Kit
|
||||
|
||||
proc MAIN()
|
||||
byte array astring
|
||||
byte IOCB1=$350,ICAX3=IOCB1+12,ICAX4=IOCB1+13,ICAX5=IOCB1+14
|
||||
real A,B,C,FLEN
|
||||
|
||||
open(1,"D:REAL.ACT",4,0) xio(1,0,39,"D:REAL.ACT") close(1)
|
||||
|
||||
IntToReal(ICAX3,FLEN)
|
||||
IntToReal(ICAX4,A) astring="256" ValR(astring,B) RealMult(A,B,C) RealAdd(FLEN,C,FLEN)
|
||||
IntToReal(ICAX5,A) astring="65536" ValR(astring,B) RealMult(A,B,C) RealAdd(FLEN,C,FLEN)
|
||||
print("Size of REAL.ACT is ") printRD(DEVICE,FLEN) printe(" bytes")
|
||||
return
|
||||
8
Task/File-size/Ada/file-size.ada
Normal file
8
Task/File-size/Ada/file-size.ada
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
with Ada.Directories; use Ada.Directories;
|
||||
with Ada.Text_IO; use Ada.Text_IO;
|
||||
|
||||
procedure Test_File_Size is
|
||||
begin
|
||||
Put_Line (File_Size'Image (Size ("input.txt")) & " bytes");
|
||||
Put_Line (File_Size'Image (Size ("/input.txt")) & " bytes");
|
||||
end Test_File_Size;
|
||||
2
Task/File-size/Aime/file-size.aime
Normal file
2
Task/File-size/Aime/file-size.aime
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
o_(stat("input.txt", ST_SIZE), "\n");
|
||||
o_("/Cygwin.ico".stat(ST_SIZE), "\n");
|
||||
2
Task/File-size/Arturo/file-size.arturo
Normal file
2
Task/File-size/Arturo/file-size.arturo
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
print volume "input.txt"
|
||||
print volume "/input.txt"
|
||||
4
Task/File-size/AutoHotkey/file-size.ahk
Normal file
4
Task/File-size/AutoHotkey/file-size.ahk
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
FileGetSize, FileSize, input.txt ; Retrieve the size in bytes.
|
||||
MsgBox, Size of input.txt is %FileSize% bytes
|
||||
FileGetSize, FileSize, \input.txt, K ; Retrieve the size in Kbytes.
|
||||
MsgBox, Size of \input.txt is %FileSize% Kbytes
|
||||
5
Task/File-size/Axe/file-size.axe
Normal file
5
Task/File-size/Axe/file-size.axe
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
If GetCalc("appvINPUT")→I
|
||||
Disp {I-2}ʳ▶Dec,i
|
||||
Else
|
||||
Disp "NOT FOUND",i
|
||||
End
|
||||
11
Task/File-size/BBC-BASIC/file-size.basic
Normal file
11
Task/File-size/BBC-BASIC/file-size.basic
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
file% = OPENIN(@dir$+"input.txt")
|
||||
IF file% THEN
|
||||
PRINT "File size = " ; EXT#file%
|
||||
CLOSE #file%
|
||||
ENDIF
|
||||
|
||||
file% = OPENIN("\input.txt")
|
||||
IF file% THEN
|
||||
PRINT "File size = " ; EXT#file%
|
||||
CLOSE #file%
|
||||
ENDIF
|
||||
12
Task/File-size/BaCon/file-size.bacon
Normal file
12
Task/File-size/BaCon/file-size.bacon
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
' file size
|
||||
' Return the entire message, FILELEN returns a NUMBER
|
||||
FUNCTION printlen$(STRING name$)
|
||||
IF FILEEXISTS(name$) THEN
|
||||
RETURN name$ & ": " & STR$(FILELEN(name$))
|
||||
ELSE
|
||||
RETURN "file " & name$ & " not found"
|
||||
END IF
|
||||
END FUNCTION
|
||||
|
||||
PRINT printlen$("input.txt")
|
||||
PRINT printlen$("/input.txt")
|
||||
4
Task/File-size/Batch-File/file-size.bat
Normal file
4
Task/File-size/Batch-File/file-size.bat
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
@echo off
|
||||
if not exist "%~1" exit /b 1 & rem If file doesn't exist exit with error code of 1.
|
||||
for /f %%i in (%~1) do echo %~zi
|
||||
pause>nul
|
||||
14
Task/File-size/Bracmat/file-size.bracmat
Normal file
14
Task/File-size/Bracmat/file-size.bracmat
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
(getFileSize=
|
||||
size
|
||||
. fil$(!arg,rb) {read in binary mode}
|
||||
& fil$(,END) {seek to end of file}
|
||||
& fil$(,TEL):?size {tell where we are}
|
||||
& fil$(,SET,-1) {seeking to an impossible position closes the file, and fails}
|
||||
| !size {return the size}
|
||||
);
|
||||
|
||||
getFileSize$"valid.bra"
|
||||
113622
|
||||
|
||||
getFileSize$"c:\\boot.ini"
|
||||
211
|
||||
16
Task/File-size/C++/file-size-1.cpp
Normal file
16
Task/File-size/C++/file-size-1.cpp
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
std::ios::off_type getFileSize(const char *filename) {
|
||||
std::ifstream f(filename);
|
||||
std::ios::pos_type begin = f.tellg();
|
||||
f.seekg(0, std::ios::end);
|
||||
std::ios::pos_type end = f.tellg();
|
||||
return end - begin;
|
||||
}
|
||||
|
||||
int main() {
|
||||
std::cout << getFileSize("input.txt") << std::endl;
|
||||
std::cout << getFileSize("/input.txt") << std::endl;
|
||||
return 0;
|
||||
}
|
||||
8
Task/File-size/C++/file-size-2.cpp
Normal file
8
Task/File-size/C++/file-size-2.cpp
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
int main()
|
||||
{
|
||||
std::cout << std::ifstream("input.txt", std::ios::binary | std::ios::ate).tellg() << "\n"
|
||||
<< std::ifstream("/input.txt", std::ios::binary | std::ios::ate).tellg() << "\n";
|
||||
}
|
||||
16
Task/File-size/C++/file-size-3.cpp
Normal file
16
Task/File-size/C++/file-size-3.cpp
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#include <filesystem>
|
||||
#include <iostream>
|
||||
|
||||
void print_file_size(const char* filename) {
|
||||
try {
|
||||
auto size = std::filesystem::file_size(filename);
|
||||
std::cout << "Size of file " << filename << " is " << size << " bytes.\n";
|
||||
} catch (const std::exception& ex) {
|
||||
std::cerr << ex.what() << '\n';
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
print_file_size("input.txt");
|
||||
print_file_size("/input.txt");
|
||||
}
|
||||
11
Task/File-size/C-sharp/file-size.cs
Normal file
11
Task/File-size/C-sharp/file-size.cs
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
using System;
|
||||
using System.IO;
|
||||
|
||||
class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine(new FileInfo("/input.txt").Length);
|
||||
Console.WriteLine(new FileInfo("input.txt").Length);
|
||||
}
|
||||
}
|
||||
19
Task/File-size/C/file-size-1.c
Normal file
19
Task/File-size/C/file-size-1.c
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
|
||||
long getFileSize(const char *filename)
|
||||
{
|
||||
long result;
|
||||
FILE *fh = fopen(filename, "rb");
|
||||
fseek(fh, 0, SEEK_END);
|
||||
result = ftell(fh);
|
||||
fclose(fh);
|
||||
return result;
|
||||
}
|
||||
|
||||
int main(void)
|
||||
{
|
||||
printf("%ld\n", getFileSize("input.txt"));
|
||||
printf("%ld\n", getFileSize("/input.txt"));
|
||||
return 0;
|
||||
}
|
||||
13
Task/File-size/C/file-size-2.c
Normal file
13
Task/File-size/C/file-size-2.c
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
int main(void)
|
||||
{
|
||||
struct stat foo;
|
||||
stat("input.txt", &foo);
|
||||
printf("%ld\n", foo.st_size);
|
||||
stat("/input.txt", &foo);
|
||||
printf("%ld\n", foo.st_size);
|
||||
return 0;
|
||||
}
|
||||
42
Task/File-size/COBOL/file-size.cobol
Normal file
42
Task/File-size/COBOL/file-size.cobol
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
identification division.
|
||||
program-id. FileInfo.
|
||||
|
||||
data division.
|
||||
working-storage section.
|
||||
01 file-name pic x(256).
|
||||
01 file-size-edited pic zzz,zzz,zzz.
|
||||
01 file-details.
|
||||
05 file-size pic x(8) comp-x.
|
||||
05 file-date.
|
||||
10 file-day pic x comp-x.
|
||||
10 file-month pic x comp-x.
|
||||
10 file-year pic xx comp-x.
|
||||
05 file-time.
|
||||
10 file-hour pic x comp-x.
|
||||
10 file-minute pic x comp-x.
|
||||
10 file-second pic x comp-x.
|
||||
10 file-hundredths pic x comp-x.
|
||||
|
||||
procedure division.
|
||||
main.
|
||||
move "input.txt" to file-name
|
||||
perform file-info
|
||||
|
||||
move "\input.txt" to file-name
|
||||
perform file-info
|
||||
|
||||
stop run
|
||||
.
|
||||
|
||||
file-info.
|
||||
call "CBL_CHECK_FILE_EXIST"
|
||||
using file-name, file-details
|
||||
returning return-code
|
||||
if return-code = 0
|
||||
move file-size to file-size-edited
|
||||
display function trim(file-name) " "
|
||||
function trim(file-size-edited) " Bytes"
|
||||
else
|
||||
display function trim(file-name) " not found!"
|
||||
end-if
|
||||
.
|
||||
12
Task/File-size/Clean/file-size.clean
Normal file
12
Task/File-size/Clean/file-size.clean
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
import StdEnv
|
||||
|
||||
fileSize fileName world
|
||||
# (ok, file, world) = fopen fileName FReadData world
|
||||
| not ok = abort "Cannot open file"
|
||||
# (ok, file) = fseek file 0 FSeekEnd
|
||||
| not ok = abort "Cannot seek file"
|
||||
# (size, file) = fposition file
|
||||
(_, world) = fclose file world
|
||||
= (size, world)
|
||||
|
||||
Start world = fileSize "input.txt" world
|
||||
6
Task/File-size/Clojure/file-size.clj
Normal file
6
Task/File-size/Clojure/file-size.clj
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
(require '[clojure.java.io :as io])
|
||||
(defn show-size [filename]
|
||||
(println filename "size:" (.length (io/file filename))))
|
||||
|
||||
(show-size "input.txt")
|
||||
(show-size "/input.txt")
|
||||
9
Task/File-size/ColdFusion/file-size.cfm
Normal file
9
Task/File-size/ColdFusion/file-size.cfm
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<cfscript>
|
||||
localFile = getFileInfo(expandpath("input.txt"));
|
||||
rootFile = getFileInfo("/input.txt");
|
||||
</cfscript>
|
||||
|
||||
<cfoutput>
|
||||
Size of input.txt is #localFile.size# bytes.
|
||||
Size of /input.txt is #rootFile.size# bytes.
|
||||
</cfoutput>
|
||||
9
Task/File-size/Common-Lisp/file-size.lisp
Normal file
9
Task/File-size/Common-Lisp/file-size.lisp
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
(with-open-file (stream (make-pathname :name "input.txt")
|
||||
:direction :input
|
||||
:if-does-not-exist nil)
|
||||
(print (if stream (file-length stream) 0)))
|
||||
|
||||
(with-open-file (stream (make-pathname :directory '(:absolute "") :name "input.txt")
|
||||
:direction :input
|
||||
:if-does-not-exist nil)
|
||||
(print (if stream (file-length stream) 0)))
|
||||
22
Task/File-size/D/file-size.d
Normal file
22
Task/File-size/D/file-size.d
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
import std.file, std.stdio, std.path, std.file, std.stream,
|
||||
std.mmfile;
|
||||
|
||||
void main() {
|
||||
immutable fileName = "file_size.exe";
|
||||
|
||||
try {
|
||||
writefln("File '%s' has size:", fileName);
|
||||
|
||||
writefln("%10d bytes by std.file.getSize (function)",
|
||||
std.file.getSize(fileName));
|
||||
|
||||
writefln("%10d bytes by std.stream (class)",
|
||||
new std.stream.File(fileName).size);
|
||||
|
||||
// mmfile can treat the file as an array in memory.
|
||||
writefln("%10d bytes by std.mmfile (class)",
|
||||
new std.mmfile.MmFile(fileName).length);
|
||||
} catch (Exception e) {
|
||||
e.msg.writefln;
|
||||
}
|
||||
}
|
||||
21
Task/File-size/Delphi/file-size.delphi
Normal file
21
Task/File-size/Delphi/file-size.delphi
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
program SizeOfFile;
|
||||
|
||||
{$APPTYPE CONSOLE}
|
||||
|
||||
uses SysUtils;
|
||||
|
||||
function CheckFileSize(const aFilename: string): Integer;
|
||||
var
|
||||
lFile: file of Byte;
|
||||
begin
|
||||
AssignFile(lFile, aFilename);
|
||||
FileMode := 0; {Access file in read only mode}
|
||||
Reset(lFile);
|
||||
Result := FileSize(lFile);
|
||||
CloseFile(lFile);
|
||||
end;
|
||||
|
||||
begin
|
||||
Writeln('input.txt ', CheckFileSize('input.txt'));
|
||||
Writeln('\input.txt ', CheckFileSize('\input.txt'));
|
||||
end.
|
||||
3
Task/File-size/E/file-size.e
Normal file
3
Task/File-size/E/file-size.e
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
for file in [<file:input.txt>, <file:///input.txt>] {
|
||||
println(`The size of $file is ${file.length()} bytes.`)
|
||||
}
|
||||
21
Task/File-size/Eiffel/file-size.e
Normal file
21
Task/File-size/Eiffel/file-size.e
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
class
|
||||
APPLICATION
|
||||
create
|
||||
make
|
||||
feature {NONE} -- Initialization
|
||||
make
|
||||
-- Run application.
|
||||
do
|
||||
create input_file.make_open_read ("input.txt")
|
||||
print(input_file.count)
|
||||
print("%N")
|
||||
input_file.close
|
||||
create environment
|
||||
input_file.make_open_read(environment.root_directory_name + "input.txt")
|
||||
print(input_file.count)
|
||||
input_file.close
|
||||
end
|
||||
feature -- Access
|
||||
input_file: PLAIN_TEXT_FILE
|
||||
environment:EXECUTION_ENVIRONMENT
|
||||
end
|
||||
9
Task/File-size/Elena/file-size.elena
Normal file
9
Task/File-size/Elena/file-size.elena
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
import system'io;
|
||||
import extensions;
|
||||
|
||||
public program()
|
||||
{
|
||||
console.printLine(File.assign("input.txt").Length);
|
||||
|
||||
console.printLine(File.assign("\input.txt").Length)
|
||||
}
|
||||
2
Task/File-size/Elixir/file-size.elixir
Normal file
2
Task/File-size/Elixir/file-size.elixir
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
IO.puts File.stat!("input.txt").size
|
||||
IO.puts File.stat!("/input.txt").size
|
||||
3
Task/File-size/Emacs-Lisp/file-size.l
Normal file
3
Task/File-size/Emacs-Lisp/file-size.l
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
(message "sizes are %s and %s"
|
||||
(nth 7 (file-attributes "input.txt"))
|
||||
(nth 7 (file-attributes "/input.txt")))
|
||||
16
Task/File-size/Erlang/file-size.erl
Normal file
16
Task/File-size/Erlang/file-size.erl
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
-module(file_size).
|
||||
-export([file_size/0]).
|
||||
|
||||
-include_lib("kernel/include/file.hrl").
|
||||
|
||||
file_size() ->
|
||||
print_file_size("input.txt"),
|
||||
print_file_size("/input.txt").
|
||||
|
||||
print_file_size(Filename) ->
|
||||
case file:read_file_info(Filename) of
|
||||
{ok, FileInfo} ->
|
||||
io:format("~s ~p~n", [Filename, FileInfo#file_info.size]);
|
||||
{error, _} ->
|
||||
io:format("~s could not be opened~n",[Filename])
|
||||
end.
|
||||
24
Task/File-size/Euphoria/file-size.euphoria
Normal file
24
Task/File-size/Euphoria/file-size.euphoria
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
include file.e
|
||||
|
||||
function file_size(sequence file_name)
|
||||
object x
|
||||
x = dir(file_name)
|
||||
if sequence(x) and length(x) = 1 then
|
||||
return x[1][D_SIZE]
|
||||
else
|
||||
return -1 -- the file does not exist
|
||||
end if
|
||||
end function
|
||||
|
||||
procedure test(sequence file_name)
|
||||
integer size
|
||||
size = file_size(file_name)
|
||||
if size < 0 then
|
||||
printf(1,"%s file does not exist.\n",{file_name})
|
||||
else
|
||||
printf(1,"%s size is %d.\n",{file_name,size})
|
||||
end if
|
||||
end procedure
|
||||
|
||||
test("input.txt") -- in the current working directory
|
||||
test("/input.txt") -- in the file system root
|
||||
8
Task/File-size/F-Sharp/file-size.fs
Normal file
8
Task/File-size/F-Sharp/file-size.fs
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
open NUnit.Framework
|
||||
open FsUnit
|
||||
|
||||
[<Test>]
|
||||
let ``Validate that the size of the two files is the same`` () =
|
||||
let local = System.IO.FileInfo(__SOURCE_DIRECTORY__ + "\input.txt")
|
||||
let root = System.IO.FileInfo(System.IO.Directory.GetDirectoryRoot(__SOURCE_DIRECTORY__) + "input.txt")
|
||||
local.Length = root.Length |> should be True
|
||||
5
Task/File-size/FBSL/file-size.fbsl
Normal file
5
Task/File-size/FBSL/file-size.fbsl
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
#APPTYPE CONSOLE
|
||||
|
||||
print FileLen("sync.log")
|
||||
print FileLen("\sync.log")
|
||||
PAUSE
|
||||
4
Task/File-size/Factor/file-size.factor
Normal file
4
Task/File-size/Factor/file-size.factor
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
"input.txt" file-info size>> .
|
||||
1321
|
||||
"file-does-not-exist.txt" file-info size>>
|
||||
"Unix system call ``stat'' failed:"...
|
||||
7
Task/File-size/Forth/file-size.fth
Normal file
7
Task/File-size/Forth/file-size.fth
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
: .filesize ( addr len -- ) 2dup type ." is "
|
||||
r/o open-file throw
|
||||
dup file-size throw <# #s #> type ." bytes long." cr
|
||||
close-file throw ;
|
||||
|
||||
s" input.txt" .filesize
|
||||
s" /input.txt" .filesize
|
||||
9
Task/File-size/Fortran/file-size-1.f
Normal file
9
Task/File-size/Fortran/file-size-1.f
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
use :: iso_fortran_env, only : FILE_STORAGE_SIZE
|
||||
implicit none
|
||||
character(len=*),parameter :: filename(*)=[character(len=256) :: 'input.txt', '/input.txt']
|
||||
integer :: file_size, i
|
||||
do i=1,size(filename)
|
||||
INQUIRE(FILE=filename(i), SIZE=file_size) ! return -1 if cannot determine file size
|
||||
write(*,*)'size of file '//trim(filename(i))//' is ',file_size * FILE_STORAGE_SIZE /8,' bytes'
|
||||
enddo
|
||||
end
|
||||
12
Task/File-size/Fortran/file-size-2.f
Normal file
12
Task/File-size/Fortran/file-size-2.f
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
20 READ (INF,21, END = 30) L !R E A D A R E C O R D - but only its length.
|
||||
21 FORMAT(Q) !This obviously indicates the record's length.
|
||||
NRECS = NRECS + 1 !CALL LONGCOUNT(NRECS,1) !C O U N T A R E C O R D.
|
||||
NNBYTES = NNBYTES + L !CALL LONGCOUNT(NNBYTES,L) !Not counting any CRLF (or whatever) gibberish.
|
||||
IF (L.LT.RMIN) THEN !Righto, now for the record lengths.
|
||||
RMIN = L !This one is shorter.
|
||||
RMINR = NRECS !Where it's at.
|
||||
ELSE IF (L.GT.RMAX) THEN !Perhaps instead it is longer?
|
||||
RMAX = L !Longer.
|
||||
RMAXR = NRECS !Where it's at.
|
||||
END IF !So much for the lengths.
|
||||
GO TO 20 !All I wanted to know...
|
||||
6
Task/File-size/FreeBASIC/file-size.basic
Normal file
6
Task/File-size/FreeBASIC/file-size.basic
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
' FB 1.05.0 Win64
|
||||
|
||||
#include "file.bi"
|
||||
|
||||
Print FileLen("input.txt"), FileLen(Environ("SystemRoot") + "\input.txt")
|
||||
Sleep
|
||||
2
Task/File-size/Frink/file-size.frink
Normal file
2
Task/File-size/Frink/file-size.frink
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
println[newJava["java.io.File", "input.txt"].length[]]
|
||||
println[newJava["java.io.File", "/input.txt"].length[]]
|
||||
8
Task/File-size/Gambas/file-size.gambas
Normal file
8
Task/File-size/Gambas/file-size.gambas
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
Public Sub Main()
|
||||
Dim stInfo As Stat = Stat(User.home &/ "input.txt")
|
||||
Dim stInfo1 As Stat = Stat("/input.txt")
|
||||
|
||||
Print User.Home &/ "input.txt = " & stInfo.Size & " bytes"
|
||||
Print "/input.txt = " & stInfo1.Size & " bytes"
|
||||
|
||||
End
|
||||
17
Task/File-size/Go/file-size.go
Normal file
17
Task/File-size/Go/file-size.go
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
package main
|
||||
|
||||
import "fmt"
|
||||
import "os"
|
||||
|
||||
func printFileSize(f string) {
|
||||
if stat, err := os.Stat(f); err != nil {
|
||||
fmt.Println(err)
|
||||
} else {
|
||||
fmt.Println(stat.Size())
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
printFileSize("input.txt")
|
||||
printFileSize("/input.txt")
|
||||
}
|
||||
2
Task/File-size/Groovy/file-size.groovy
Normal file
2
Task/File-size/Groovy/file-size.groovy
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
println new File('index.txt').length();
|
||||
println new File('/index.txt').length();
|
||||
5
Task/File-size/Haskell/file-size-1.hs
Normal file
5
Task/File-size/Haskell/file-size-1.hs
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
import System.IO
|
||||
|
||||
printFileSize filename = withFile filename ReadMode hFileSize >>= print
|
||||
|
||||
main = mapM_ printFileSize ["input.txt", "/input.txt"]
|
||||
6
Task/File-size/Haskell/file-size-2.hs
Normal file
6
Task/File-size/Haskell/file-size-2.hs
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
import System.Posix.File
|
||||
|
||||
printFileSize filename = do stat <- getFileStatus filename
|
||||
print (fileSize stat)
|
||||
|
||||
main = mapM_ printFileSize ["input.txt", "/input.txt"]
|
||||
2
Task/File-size/HicEst/file-size.hicest
Normal file
2
Task/File-size/HicEst/file-size.hicest
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
READ(FILE="input.txt", LENgth=bytes) ! bytes = -1 if not existent
|
||||
READ(FILE="C:\input.txt", LENgth=bytes) ! bytes = -1 if not existent
|
||||
3
Task/File-size/Icon/file-size.icon
Normal file
3
Task/File-size/Icon/file-size.icon
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
every dir := !["./","/"] do {
|
||||
write("Size of ",f := dir || "input.txt"," = ",stat(f).size) |stop("failure for to stat ",f)
|
||||
}
|
||||
2
Task/File-size/J/file-size.j
Normal file
2
Task/File-size/J/file-size.j
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
require 'files'
|
||||
fsize 'input.txt';'/input.txt'
|
||||
19
Task/File-size/Jakt/file-size.jakt
Normal file
19
Task/File-size/Jakt/file-size.jakt
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
fn file_size(filename: String) throws -> i64 {
|
||||
mut result = 0
|
||||
mut file = File::open_for_reading(filename)
|
||||
mut buffer = [0u8; 1024] // Size of buffer is arbitrary
|
||||
while true {
|
||||
let read_bytes = file.read(buffer)
|
||||
if read_bytes == 0 {
|
||||
break
|
||||
}
|
||||
result += read_bytes as! i64
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
|
||||
fn main() {
|
||||
println("{}", file_size(filename: "input.txt"))
|
||||
println("{}", file_size(filename: "/input.txt"))
|
||||
}
|
||||
1
Task/File-size/Java/file-size-1.java
Normal file
1
Task/File-size/Java/file-size-1.java
Normal file
|
|
@ -0,0 +1 @@
|
|||
import java.io.File;
|
||||
6
Task/File-size/Java/file-size-2.java
Normal file
6
Task/File-size/Java/file-size-2.java
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
public static void main(String[] args) {
|
||||
File fileA = new File("file.txt");
|
||||
System.out.printf("%,d B%n", fileA.length());
|
||||
File fileB = new File("/file.txt");
|
||||
System.out.printf("%,d B%n", fileB.length());
|
||||
}
|
||||
3
Task/File-size/JavaScript/file-size-1.js
Normal file
3
Task/File-size/JavaScript/file-size-1.js
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
var fso = new ActiveXObject("Scripting.FileSystemObject");
|
||||
fso.GetFile('input.txt').Size;
|
||||
fso.GetFile('c:/input.txt').Size;
|
||||
14
Task/File-size/JavaScript/file-size-2.js
Normal file
14
Task/File-size/JavaScript/file-size-2.js
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
var file = document.getElementById("fileInput").files.item(0); //a file input element
|
||||
if (file) {
|
||||
var reader = new FileReader();
|
||||
reader.readAsText(file, "UTF-8");
|
||||
reader.onload = loadedFile;
|
||||
reader.onerror = errorHandler;
|
||||
}
|
||||
function loadedFile(event) {
|
||||
var fileString = event.target.result;
|
||||
alert(fileString.length);
|
||||
}
|
||||
function errorHandler(event) {
|
||||
alert(event);
|
||||
}
|
||||
4
Task/File-size/Joy/file-size.joy
Normal file
4
Task/File-size/Joy/file-size.joy
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
DEFINE filesize == "r" fopen 0 2 fseek pop ftell swap fclose.
|
||||
|
||||
"input.txt" filesize.
|
||||
"/input.txt" filesize.
|
||||
3
Task/File-size/Jq/file-size.jq
Normal file
3
Task/File-size/Jq/file-size.jq
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
jq -Rs length input.txt
|
||||
|
||||
jq -Rs length /input.txt
|
||||
2
Task/File-size/Julia/file-size.julia
Normal file
2
Task/File-size/Julia/file-size.julia
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
println(filesize("input.txt"))
|
||||
println(filesize("/input.txt"))
|
||||
2
Task/File-size/K/file-size.k
Normal file
2
Task/File-size/K/file-size.k
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
_size "input.txt"
|
||||
_size "/input.txt"
|
||||
9
Task/File-size/Kotlin/file-size.kotlin
Normal file
9
Task/File-size/Kotlin/file-size.kotlin
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// version 1.0.6
|
||||
|
||||
import java.io.File
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val paths = arrayOf("input.txt", "c:\\input.txt")
|
||||
for (path in paths)
|
||||
println("Length of $path is ${File(path).length()} bytes")
|
||||
}
|
||||
11
Task/File-size/Lang/file-size.lang
Normal file
11
Task/File-size/Lang/file-size.lang
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
# Load the IO module
|
||||
# Replace "<pathToIO.lm>" with the location where the io.lm Lang module was installed to without "<" and ">"
|
||||
ln.loadModule(<pathToIO.lm>)
|
||||
|
||||
$file1 = [[io]]::fp.openFile(input.txt)
|
||||
fn.println([[io]]::fp.getSize($file1))
|
||||
[[io]]::fp.closeFile($file1) # Remember to close files
|
||||
|
||||
$file2 = [[io]]::fp.openFile(/input.txt)
|
||||
fn.println([[io]]::fp.getSize($file2))
|
||||
[[io]]::fp.closeFile($file2)
|
||||
9
Task/File-size/Lasso/file-size.lasso
Normal file
9
Task/File-size/Lasso/file-size.lasso
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
// local to current directory
|
||||
local(f = file('input.txt'))
|
||||
handle => { #f->close }
|
||||
#f->size
|
||||
|
||||
// file at file system root
|
||||
local(f = file('//input.txt'))
|
||||
handle => { #f->close }
|
||||
#f->size
|
||||
9
Task/File-size/Liberty-BASIC/file-size.basic
Normal file
9
Task/File-size/Liberty-BASIC/file-size.basic
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
'input.txt in current directory
|
||||
OPEN DefaultDir$ + "/input.txt" FOR input AS #m
|
||||
PRINT "File size: "; lof(#m)
|
||||
CLOSE #m
|
||||
|
||||
'input.txt in root
|
||||
OPEN "c:/input.txt" FOR input AS #m
|
||||
PRINT "File size: "; lof(#m)
|
||||
CLOSE #m
|
||||
13
Task/File-size/Lingo/file-size.lingo
Normal file
13
Task/File-size/Lingo/file-size.lingo
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
----------------------------------------
|
||||
-- Returns file size
|
||||
-- @param {string} filename
|
||||
-- @return {integer}
|
||||
----------------------------------------
|
||||
on getFileSize (filename)
|
||||
fp = xtra("fileIO").new()
|
||||
fp.openFile(filename, 1)
|
||||
if fp.status() then return 0
|
||||
len = fp.getLength()
|
||||
fp.closeFile()
|
||||
return len
|
||||
end
|
||||
20
Task/File-size/LiveCode/file-size.livecode
Normal file
20
Task/File-size/LiveCode/file-size.livecode
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
// root folder
|
||||
set the defaultfolder to "/"
|
||||
repeat for each line fline in (the detailed files)
|
||||
if item 1 of fline is "input.txt" then
|
||||
put item 2 of fline --bytes
|
||||
exit repeat
|
||||
end if
|
||||
end repeat
|
||||
|
||||
// current working dir of stack
|
||||
put the effective filename of this stack into tPath
|
||||
set the itemDelimiter to slash
|
||||
delete last item of tPath
|
||||
set the defaultfolder to tPath
|
||||
repeat for each line fline in (the detailed files)
|
||||
if item 1 of fline is "input.txt" then
|
||||
put item 2 of fline
|
||||
exit repeat
|
||||
end if
|
||||
end repeat
|
||||
9
Task/File-size/Lua/file-size.lua
Normal file
9
Task/File-size/Lua/file-size.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
function GetFileSize( filename )
|
||||
local fp = io.open( filename )
|
||||
if fp == nil then
|
||||
return nil
|
||||
end
|
||||
local filesize = fp:seek( "end" )
|
||||
fp:close()
|
||||
return filesize
|
||||
end
|
||||
1
Task/File-size/M2000-Interpreter/file-size-1.m2000
Normal file
1
Task/File-size/M2000-Interpreter/file-size-1.m2000
Normal file
|
|
@ -0,0 +1 @@
|
|||
print filename+" has size ";filelen(filename);" bytes"
|
||||
9
Task/File-size/M2000-Interpreter/file-size-2.m2000
Normal file
9
Task/File-size/M2000-Interpreter/file-size-2.m2000
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
Module ShowFileSize(filename as string) {
|
||||
if exist(filename) then
|
||||
print filename+" has size "+(filelen(filename))+" bytes"
|
||||
else
|
||||
print filename+ " not exist"
|
||||
end if
|
||||
}
|
||||
ShowFileSize "checkthis.txt"
|
||||
ShowFileSize "c:\ok.txt"
|
||||
4
Task/File-size/MATLAB/file-size.m
Normal file
4
Task/File-size/MATLAB/file-size.m
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
d1 = dir('input.txt');
|
||||
d2 = dir('/input.txt');
|
||||
fprintf('Size of input.txt is %d bytes\n', d1.bytes)
|
||||
fprintf('Size of /input.txt is %d bytes\n', d2.bytes)
|
||||
3
Task/File-size/MAXScript/file-size.max
Normal file
3
Task/File-size/MAXScript/file-size.max
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
-- Returns filesize in bytes or 0 if the file is missing
|
||||
getFileSize "index.txt"
|
||||
getFileSize "\index.txt"
|
||||
2
Task/File-size/MIRC-Scripting-Language/file-size.mirc
Normal file
2
Task/File-size/MIRC-Scripting-Language/file-size.mirc
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
echo -ag $file(input.txt).size bytes
|
||||
echo -ag $file(C:\input.txt).size bytes
|
||||
1
Task/File-size/Maple/file-size-1.maple
Normal file
1
Task/File-size/Maple/file-size-1.maple
Normal file
|
|
@ -0,0 +1 @@
|
|||
FileTools:-Size( "input.txt" )
|
||||
1
Task/File-size/Maple/file-size-2.maple
Normal file
1
Task/File-size/Maple/file-size-2.maple
Normal file
|
|
@ -0,0 +1 @@
|
|||
FileTools:-Size( "/input.txt" )
|
||||
2
Task/File-size/Mathematica/file-size.math
Normal file
2
Task/File-size/Mathematica/file-size.math
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
FileByteCount["input.txt"]
|
||||
FileByteCount[FileNameJoin[{$RootDirectory, "input.txt"}]]
|
||||
4
Task/File-size/Mirah/file-size.mirah
Normal file
4
Task/File-size/Mirah/file-size.mirah
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
import java.io.File
|
||||
|
||||
puts File.new('file-size.mirah').length()
|
||||
puts File.new("./#{File.separator}file-size.mirah").length()
|
||||
16
Task/File-size/Modula-3/file-size.mod3
Normal file
16
Task/File-size/Modula-3/file-size.mod3
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
MODULE FSize EXPORTS Main;
|
||||
|
||||
IMPORT IO, Fmt, FS, File, OSError;
|
||||
|
||||
VAR fstat: File.Status;
|
||||
|
||||
BEGIN
|
||||
TRY
|
||||
fstat := FS.Status("input.txt");
|
||||
IO.Put("Size of input.txt: " & Fmt.LongInt(fstat.size) & "\n");
|
||||
fstat := FS.Status("/input.txt");
|
||||
IO.Put("Size of /input.txt: " & Fmt.LongInt(fstat.size) & "\n");
|
||||
EXCEPT
|
||||
| OSError.E => IO.Put("ERROR: Could not get file status.\n");
|
||||
END;
|
||||
END FSize.
|
||||
3
Task/File-size/Nanoquery/file-size.nanoquery
Normal file
3
Task/File-size/Nanoquery/file-size.nanoquery
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
import Nanoquery.IO
|
||||
println new(File, "input.txt").length()
|
||||
println new(File, "/input.txt").length()
|
||||
34
Task/File-size/NetRexx/file-size.netrexx
Normal file
34
Task/File-size/NetRexx/file-size.netrexx
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/* NetRexx */
|
||||
options replace format comments java symbols binary
|
||||
|
||||
runSample(arg)
|
||||
return
|
||||
|
||||
-- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
|
||||
method fileSize(fn) public static returns double
|
||||
ff = File(fn)
|
||||
fSize = ff.length()
|
||||
return fSize
|
||||
|
||||
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
method runSample(arg) private static
|
||||
parse arg files
|
||||
if files = '' then files = 'input.txt F docs D /input.txt F /docs D'
|
||||
loop while files.length > 0
|
||||
parse files fn ft files
|
||||
select case(ft.upper())
|
||||
when 'F' then do
|
||||
ft = 'File'
|
||||
end
|
||||
when 'D' then do
|
||||
ft = 'Directory'
|
||||
end
|
||||
otherwise do
|
||||
ft = 'File'
|
||||
end
|
||||
end
|
||||
sz = fileSize(fn)
|
||||
say ft ''''fn'''' sz 'bytes.'
|
||||
end
|
||||
|
||||
return
|
||||
2
Task/File-size/NewLISP/file-size.l
Normal file
2
Task/File-size/NewLISP/file-size.l
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
(println (first (file-info "input.txt")))
|
||||
(println (first (file-info "/input.txt")))
|
||||
3
Task/File-size/Nim/file-size.nim
Normal file
3
Task/File-size/Nim/file-size.nim
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
import os
|
||||
echo getFileSize "input.txt"
|
||||
echo getFileSize "/input.txt"
|
||||
7
Task/File-size/OCaml/file-size-1.ocaml
Normal file
7
Task/File-size/OCaml/file-size-1.ocaml
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
let printFileSize filename =
|
||||
let ic = open_in filename in
|
||||
Printf.printf "%d\n" (in_channel_length ic);
|
||||
close_in ic ;;
|
||||
|
||||
printFileSize "input.txt" ;;
|
||||
printFileSize "/input.txt" ;;
|
||||
4
Task/File-size/OCaml/file-size-2.ocaml
Normal file
4
Task/File-size/OCaml/file-size-2.ocaml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
let printLargeFileSize filename =
|
||||
let ic = open_in filename in
|
||||
Printf.printf "%Ld\n" (LargeFile.in_channel_length ic);
|
||||
close_in ic ;;
|
||||
4
Task/File-size/OCaml/file-size-3.ocaml
Normal file
4
Task/File-size/OCaml/file-size-3.ocaml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
#load "unix.cma" ;;
|
||||
open Unix ;;
|
||||
Printf.printf "%d\n" (stat "input.txt").st_size ;;
|
||||
Printf.printf "%d\n" (stat "/input.txt").st_size ;;
|
||||
4
Task/File-size/Objeck/file-size.objeck
Normal file
4
Task/File-size/Objeck/file-size.objeck
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
use IO;
|
||||
...
|
||||
File("input.txt")->Size()->PrintLine();
|
||||
File("c:\input.txt")->Size()->PrintLine();
|
||||
7
Task/File-size/Objective-C/file-size.m
Normal file
7
Task/File-size/Objective-C/file-size.m
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
NSFileManager *fm = [NSFileManager defaultManager];
|
||||
|
||||
// Pre-OS X 10.5
|
||||
NSLog(@"%llu", [[fm fileAttributesAtPath:@"input.txt" traverseLink:YES] fileSize]);
|
||||
|
||||
// OS X 10.5+
|
||||
NSLog(@"%llu", [[fm attributesOfItemAtPath:@"input.txt" error:NULL] fileSize]);
|
||||
2
Task/File-size/Oforth/file-size.fth
Normal file
2
Task/File-size/Oforth/file-size.fth
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
File new("input.txt") size println
|
||||
File new("/input.txt") size println
|
||||
13
Task/File-size/OoRexx/file-size.rexx
Normal file
13
Task/File-size/OoRexx/file-size.rexx
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
Parse Version v
|
||||
Say v
|
||||
fid='test.txt'
|
||||
x=sysfiletree(fid,a.)
|
||||
Say a.0
|
||||
Say a.1
|
||||
Say left(copies('123456789.',10),length(a.1))
|
||||
Parse Var a.1 20 size .
|
||||
Say 'file size:' size
|
||||
s=charin(fid,,1000)
|
||||
Say length(s)
|
||||
Say 'file' fid
|
||||
'type' fid
|
||||
5
Task/File-size/Oz/file-size.oz
Normal file
5
Task/File-size/Oz/file-size.oz
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
declare
|
||||
[Path] = {Module.link ['x-oz://system/os/Path.ozf']}
|
||||
in
|
||||
{Show {Path.size "input.txt"}}
|
||||
{Show {Path.size "/input.txt"}}
|
||||
4
Task/File-size/PHP/file-size.php
Normal file
4
Task/File-size/PHP/file-size.php
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
echo filesize('input.txt'), "\n";
|
||||
echo filesize('/input.txt'), "\n";
|
||||
?>
|
||||
26
Task/File-size/PL-I/file-size.pli
Normal file
26
Task/File-size/PL-I/file-size.pli
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
/* To obtain file size of files in root as well as from current directory. */
|
||||
|
||||
test: proc options (main);
|
||||
declare ch character (1);
|
||||
declare i fixed binary (31);
|
||||
declare in1 file record;
|
||||
|
||||
/* Open a file in the root directory. */
|
||||
open file (in1) title ('//asd.log,type(fixed),recsize(1)');
|
||||
on endfile (in1) go to next1;
|
||||
do i = 0 by 1;
|
||||
read file (in1) into (ch);
|
||||
end;
|
||||
next1:
|
||||
put skip list ('file size in root directory =' || trim(i));
|
||||
close file (in1);
|
||||
|
||||
/* Open a file in the current dorectory. */
|
||||
open file (in1) title ('/asd.txt,type(fixed),recsize(1)');
|
||||
on endfile (in1) go to next2;
|
||||
do i = 0 by 1;
|
||||
read file (in1) into (ch);
|
||||
end;
|
||||
next2:
|
||||
put skip list ('local file size=' || trim(i));
|
||||
end test;
|
||||
2
Task/File-size/Perl/file-size-1.pl
Normal file
2
Task/File-size/Perl/file-size-1.pl
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
my $size1 = -s 'input.txt';
|
||||
my $size2 = -s '/input.txt';
|
||||
3
Task/File-size/Perl/file-size-2.pl
Normal file
3
Task/File-size/Perl/file-size-2.pl
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
use File::Spec::Functions qw(catfile rootdir);
|
||||
my $size1 = -s 'input.txt';
|
||||
my $size2 = -s catfile rootdir, 'input.txt';
|
||||
2
Task/File-size/Perl/file-size-3.pl
Normal file
2
Task/File-size/Perl/file-size-3.pl
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
my $size1 = (stat 'input.txt')[7]; # builtin stat() returns an array with file size at index 7
|
||||
my $size2 = (stat '/input.txt')[7];
|
||||
19
Task/File-size/Phix/file-size.phix
Normal file
19
Task/File-size/Phix/file-size.phix
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
-->
|
||||
<span style="color: #008080;">function</span> <span style="color: #000000;">file_size<span style="color: #0000FF;">(<span style="color: #004080;">sequence</span> <span style="color: #000000;">file_name<span style="color: #0000FF;">)</span>
|
||||
<span style="color: #004080;">object</span> <span style="color: #000000;">d</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">dir<span style="color: #0000FF;">(<span style="color: #000000;">file_name<span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #004080;">atom<span style="color: #0000FF;">(<span style="color: #000000;">d<span style="color: #0000FF;">)</span> <span style="color: #008080;">or</span> <span style="color: #7060A8;">length<span style="color: #0000FF;">(<span style="color: #000000;">d<span style="color: #0000FF;">)<span style="color: #0000FF;">!=<span style="color: #000000;">1</span> <span style="color: #008080;">then</span> <span style="color: #008080;">return</span> <span style="color: #0000FF;">-<span style="color: #000000;">1</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #008080;">return</span> <span style="color: #000000;">d<span style="color: #0000FF;">[<span style="color: #000000;">1<span style="color: #0000FF;">]<span style="color: #0000FF;">[<span style="color: #000000;">D_SIZE<span style="color: #0000FF;">]</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">function</span>
|
||||
|
||||
<span style="color: #008080;">procedure</span> <span style="color: #000000;">test<span style="color: #0000FF;">(<span style="color: #004080;">sequence</span> <span style="color: #000000;">file_name<span style="color: #0000FF;">)</span>
|
||||
<span style="color: #004080;">integer</span> <span style="color: #000000;">size</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">file_size<span style="color: #0000FF;">(<span style="color: #000000;">file_name<span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">if</span> <span style="color: #000000;">size<span style="color: #0000FF;"><<span style="color: #000000;">0</span> <span style="color: #008080;">then</span>
|
||||
<span style="color: #7060A8;">printf<span style="color: #0000FF;">(<span style="color: #000000;">1<span style="color: #0000FF;">,<span style="color: #008000;">"%s file does not exist.\n"<span style="color: #0000FF;">,<span style="color: #0000FF;">{<span style="color: #000000;">file_name<span style="color: #0000FF;">}<span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">else</span>
|
||||
<span style="color: #7060A8;">printf<span style="color: #0000FF;">(<span style="color: #000000;">1<span style="color: #0000FF;">,<span style="color: #008000;">"%s size is %d.\n"<span style="color: #0000FF;">,<span style="color: #0000FF;">{<span style="color: #000000;">file_name<span style="color: #0000FF;">,<span style="color: #000000;">size<span style="color: #0000FF;">}<span style="color: #0000FF;">)</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
|
||||
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
|
||||
|
||||
<span style="color: #000000;">test<span style="color: #0000FF;">(<span style="color: #008000;">"input.txt"<span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- in the current working directory</span>
|
||||
<span style="color: #000000;">test<span style="color: #0000FF;">(<span style="color: #008000;">"/input.txt"<span style="color: #0000FF;">)</span> <span style="color: #000080;font-style:italic;">-- in the file system root
|
||||
<!--
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue