mostrar con say todos los caracteres

Started by DCelso, February 10, 2013, 04:58:33 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

DCelso

hola, estoy intentando mostrar los caracteres desde el 0 hasta el 255 con bennu, pero el programa se me queda tostado.

Program pruebas;

import "mod_string"
import "mod_say"

Global
    char i;
        string text;
Begin
    text = "";
    for (i=0;i<100;i++)
       text= text + chr(i);
    end
    say("1:: "+ text);
    text = "";
    for (i=100;i<128;i++)
       text= text + chr(i);
    end
    say("2:: "+ text);
    text = "";
    for (i=128;i<256;i++)
       text= text + chr(i);
    end
    say("3:: "+ text);

end

Creo que es culpa de los caracteres no imprimibles, pero no se me ocurre como saltarmelos.
Tambien me pasa con write y write_text.

¿Existe alguna función para saber si un caracter es imprimible en bennu?


por otro lado, SplinterGU, ¿sería posible hacer que say/write si no puede imprimir un caracter no imprima nada?
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

hombre se queda tostado porque la variable indice es un char (valores entre -128 y 127)... :facepalm:  ;)

cambia


char i;

por

int i;
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

#2
 :o , tocado.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

DCelso

#3
increíble, en linux, guardando en un archivo la salida del ejemplo  siguiente, me guarda los caracteres cp1252 ( que es una modificación de microsoft del iso8859_1 con carácteres de la iso8859_15)

Program pruebas;

import "mod_string"
import "mod_say"

Global
    int i;
        string text;
Begin
    text = "";
    for (i=0;i<256;i++)
       text= chr(i);
       say(i+":"+text);
    end

end


bgdi prueba > archivo.txt


0:
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:0
49:1
50:2
51:3
52:4
53:5
54:6
55:7
56:8
57:9
58::
59:;
60:<
61:=
62:>
63:?
64:@
65:A
66:B
67:C
68:D
69:E
70:F
71:G
72:H
73:I
74:J
75:K
76:L
77:M
78:N
79:O
80:P
81:Q
82:R
83:S
84:T
85:U
86:V
87:W
88:X
89:Y
90:Z
91:[
92:\
93:]
94:^
95:_
96:`
97:a
98:b
99:c
100:d
101:e
102:f
103:g
104:h
105:i
106:j
107:k
108:l
109:m
110:n
111:o
112:p
113:q
114:r
115:s
116:t
117:u
118:v
119:w
120:x
121:y
122:z
123:{
124:|
125:}
126:~
127:
128:€
129:
130:‚
131:ƒ
132:„
133:…
134:†
135:‡
136:ˆ
137:‰
138:Š
139:‹
140:Œ
141:
142:Ž
143:
144:
145:‘
146:’
147:“
148:”
149:•
150:–
151:—
152:˜
153:™
154:š
155:›
156:œ
157:
158:ž
159:Ÿ
160:
161:¡
162:¢
163:£
164:€
165:¥
166:Š
167:§
168:š
169:©
170:ª
171:«
172:¬
173:­
174:®
175:¯
176:°
177:±
178:²
179:³
180:Ž
181:µ
182:¶
183:·
184:ž
185:¹
186:º
187:»
188:Œ
189:œ
190:Ÿ
191:¿
192:À
193:Á
194:Â
195:Ã
196:Ä
197:Å
198:Æ
199:Ç
200:È
201:É
202:Ê
203:Ë
204:Ì
205:Í
206:Î
207:Ï
208:Ð
209:Ñ
210:Ò
211:Ó
212:Ô
213:Õ
214:Ö
215:×
216:Ø
217:Ù
218:Ú
219:Û
220:Ü
221:Ý
222:Þ
223:ß
224:à
225:á
226:â
227:ã
228:ä
229:å
230:æ
231:ç
232:è
233:é
234:ê
235:ë
236:ì
237:í
238:î
239:ï
240:ð
241:ñ
242:ò
243:ó
244:ô
245:õ
246:ö
247:÷
248:ø
249:ù
250:ú
251:û
252:ü
253:ý
254:þ
255:ÿ

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

#5
igual no te puedes basar en lo que ves en el say, eso seguramente dependera de la codificacion que tu tengas seteada en tu equipo... a mi me da como 180 esto

180:´

que difiere de lo que tu tienes.


0:
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:0
49:1
50:2
51:3
52:4
53:5
54:6
55:7
56:8
57:9
58::
59:;
60:<
61:=
62:>
63:?
64:@
65:A
66:B
67:C
68:D
69:E
70:F
71:G
72:H
73:I
74:J
75:K
76:L
77:M
78:N
79:O
80:P
81:Q
82:R
83:S
84:T
85:U
86:V
87:W
88:X
89:Y
90:Z
91:[
92:\
93:]
94:^
95:_
96:`
97:a
98:b
99:c
100:d
101:e
102:f
103:g
104:h
105:i
106:j
107:k
108:l
109:m
110:n
111:o
112:p
113:q
114:r
115:s
116:t
117:u
118:v
119:w
120:x
121:y
122:z
123:{
124:|
125:}
126:~
127:
128:€
129:
130:,
131:ƒ
132:,,
133:...
134:†
135:‡
136:ˆ
137:‰
138:Š
139:‹
140:Œ
141:
142:Ž
143:
144:
145:'
146:'
147:"
148:"
149:•
150:–
151:—
152:˜
153:™
154:š
155:›
156:œ
157:
158:ž
159:Ÿ
160:
161:¡
162:¢
163:£
164:¤
165:¥
166:¦
167:§
168:¨
169:©
170:ª
171:«
172:¬
173:­
174:®
175:¯
176:°
177:±
178:²
179:³
180:´
181:µ
182:¶
183:·
184:¸
185:¹
186:º
187:»
188:¼
189:½
190:¾
191:¿
192:À
193:Á
194:Â
195:Ã
196:Ä
197:Å
198:Æ
199:Ç
200:È
201:É
202:Ê
203:Ë
204:Ì
205:Í
206:Î
207:Ï
208:Ð
209:Ñ
210:Ò
211:Ó
212:Ô
213:Õ
214:Ö
215:×
216:Ø
217:Ù
218:Ú
219:Û
220:Ü
221:Ý
222:Þ
223:ß
224:à
225:á
226:â
227:ã
228:ä
229:å
230:æ
231:ç
232:è
233:é
234:ê
235:ë
236:ì
237:í
238:î
239:ï
240:ð
241:ñ
242:ò
243:ó
244:ô
245:õ
246:ö
247:÷
248:ø
249:ù
250:ú
251:û
252:ü
253:ý
254:þ
255:ÿ


adjunto el archivo, seguro que cuando lo abres veras la codificacion que tienes tu seteada... que difiere de la mia...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

 ;) ,ciertísimo. Al abrir tu archivo veo lo mismísimo que con el mio.
Tendré que verlo en el código mas mejormente  :'(
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

DCelso

¿splinterGU, y esto nos podría servir?
mira a ver si te da la misma salida que a mi

Program pruebas;

import "mod_string"
import "mod_say"
import "mod_key"
import "mod_text"

Global
    int i;
        string text;
Begin
    text = "";
    for (i=0;i<100;i++)
       text= text + chr(i);
    end
    write(0,10,10,0,text); 
    text = "";
    for (i=100;i<200;i++)
       text= text + chr(i);
    end
    write(0,10,40,0,text); 
    text = "";
    for (i=200;i<256;i++)
       text= text + chr(i);
    end
    write(0,10,60,0,text); 

    while (!key(_esc)) 
        frame;
    end

end

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU


Program pruebas;

import "mod_string"
import "mod_say"
import "mod_map"
import "mod_text"

Global
    int i;
    string text;
    int map;
Begin
    text = "";
    for (i=0;i<256;i++)
       text+= chr(i);
    end
    map = write_in_map(0,text,0);
    save_png(0,map,"text.png");
end


md5sum
1b664687295604d209110c54aabf0770  text.png
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

master

#10
Disculpen por meterme :D
Por lo que veo en ambas imágenes, es CP437
Obviamente a mi también me genera los mismos.

SplinterGU

pues no se, en el codigo de fenix estaba asi.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

SplinterGU

pues tienes razon, es un cp437... pues que mal, ahora el cambiarlo quizas traeria problemas... bueno, quizas solo al cambiarlo a nivel interno no seria mayor problema...

entonces lo que debe hacer el fntedit es generar cp437 o tomar eso como base.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Pues aún así hay algo que no cuadra. Sí fuera así. No podríamos mostrar caracteres que no estuvieran en esa codificación. Y yo sí puedo poner por ejemplo € y sale.
Que os sale a vosotros sí poneis write (0,0,0,0,"€");?
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

pero eso te sale con el font del sistema o el que haces tu?

copy&paste de tu post (ver adjunto)

Download Lastest BennuGD Release: http://www.bennugd.org/node/2