-
Notifications
You must be signed in to change notification settings - Fork 0
/
fileman.bas
117 lines (107 loc) · 3.07 KB
/
fileman.bas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
'
' © JM. :: Hecho en Ronda
'
'
' Procedente de... https://jm00092.freehostia.com/progqb/index.htm
'
'______________________________________________________________________
' VISOR DE DIRECTORIOS
DECLARE FUNCTION Archivo$ ()
PALETTE 6, 62
PALETTE 1, 8
PALETTE 4, 36
nombre$ = Archivo$
CLS
PRINT nombre$
'
' © JM. :: Hecho en Ronda
'
'
' Procedente de... www.jm-web.tk :: es.geocities.com/jm00092
'
'______________________________________________________________________
'
FUNCTION Archivo$
ruta$ = "C:\"
DO
COLOR 14, 1: CLS
LOCATE 1, 1: PRINT STRING$(80, 196);
LOCATE 25, 1: PRINT STRING$(80, 196);
COLOR 1, 6: LOCATE 1, 6: PRINT " Directorio "
COLOR 15, 4: LOCATE 25, 7: PRINT SPACE$(50);
LOCATE 25, 8: PRINT ruta$;
LOCATE 25, 57: COLOR 1, 6: PRINT " winbasic";
COLOR 15, 1
VIEW PRINT 2 TO 24
FILES ruta$
VIEW PRINT
lin = 2
col = 1
alin = 1
acol = 1
nomb$ = ""
anomb$ = ""
DO
DO
kbd$ = INKEY$
LOOP WHILE kbd$ = ""
alin = lin
acol = col
SELECT CASE kbd$
CASE CHR$(0) + "H": lin = lin - 1
CASE CHR$(0) + "P": lin = lin + 1
CASE CHR$(0) + "K": col = col - 18
CASE CHR$(0) + "M": col = col + 18
CASE CHR$(13)
IF nomb$ = " .. <DIR> " THEN
FOR n = LEN(ruta$) - 1 TO 1 STEP -1
x$ = MID$(ruta$, n, 1)
IF x$ = "\" THEN
ruta$ = MID$(ruta$, 1, n)
EXIT FOR
END IF
NEXT
EXIT DO
END IF
IF MID$(nomb$, 13, 1) = "<" AND MID$(nomb$, 1, 1) <> " " THEN
ruta$ = ruta$ + RTRIM$(MID$(nomb$, 1, 12)) + "\"
EXIT DO
ELSE
Archivo$ = ruta$ + nomb$
EXIT FUNCTION
END IF
CASE CHR$(27)
IF LEN(ruta$) > 3 THEN
FOR n = LEN(ruta$) - 1 TO 1 STEP -1
x$ = MID$(ruta$, n, 1)
IF x$ = "\" THEN
ruta$ = MID$(ruta$, 1, n)
EXIT FOR
END IF
NEXT
EXIT DO
ELSE
END
END IF
END SELECT
IF lin > 25 XOR lin < 1 THEN lin = alin
IF col > 58 XOR col < 1 THEN col = acol
anomb$ = nomb$
nomb$ = ""
FOR h = col TO col + 17
nomb$ = nomb$ + CHR$(SCREEN(lin, h))
NEXT
IF MID$(nomb$, 9, 1) = "." OR MID$(nomb$, 13, 1) = "<" THEN
LOCATE alin, acol: COLOR 15, 1: PRINT anomb$;
IF MID$(nomb$, 13, 1) = "<" THEN COLOR 15, 4 ELSE COLOR 0, 6
IF nomb$ = " . <DIR> " THEN COLOR 0, 3
IF nomb$ = " .. <DIR> " THEN COLOR 31, 4
LOCATE lin, col: PRINT nomb$;
ELSE
lin = alin
col = acol
nomb$ = anomb$
END IF
LOOP
LOOP
END FUNCTION