|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - _.B._
51
« en: Sábado 7 de Febrero de 2004, 19:36 »
OCUH!!. NADA!!. Simplemente no imprime los caracteres especiales del "True Type" desde DOS... AUXILIO!!.
52
« en: Viernes 6 de Febrero de 2004, 02:46 »
Saludos!. Tengo una Epson Stylus C43SX, y cuando imprimo desde el Turbo Pascal, no imprime los caracteres especiales!!. La que tenia antes, Stylus Color 400, si estaba configurada para eso. ¿¿Como puedo hacer que los imprima?? Gracias de antemano. Bernardo L.
53
« en: Jueves 5 de Febrero de 2004, 17:38 »
Saludos!. Yo utilizo la siguiente tabla para las notas musicales (cada nota y su frecuencia para 5 octavas diferentes): C (Do) 131 262 523 1046 2096 C# / Db 139 277 554 1108 2217 D (Re) 147 294 587 1175 2349 D# / Eb 156 311 622 1244 2489 E (Mi) 165 330 659 1318 2637 F (Fa) 175 349 698 1397 2794 F# / Gb 185 370 740 1480 2960 G (Sol) 196 392 784 1568 3136 G# / Ab 208 415 831 1664 3322 A (La) 220 440 880 1760 3520 A# / Bb 233 466 932 1866 3729 B (Si) 248 494 988 1973 3951 El La de 440 Hz es el La utilizado para afinar algunos instrumentos. Bernardo L.
54
« en: Jueves 5 de Febrero de 2004, 17:27 »
Great! A programar!. Bernardo L.
55
« en: Miércoles 4 de Febrero de 2004, 20:33 »
Eugenio, 'tas seguro?. Yo lo corri con el codigo COPIADO y PEGADO que tu escribistes, y me corrio bien.
56
« en: Miércoles 4 de Febrero de 2004, 20:27 »
Algo necesitado con frecuencia, es saber si un año es o no bisiesto. Para ello, diseñé éste sencillo código: FUNCTION Bisiesto (Anio:INTEGER):BOOLEAN; BEGIN Bisiesto:=FALSE; IF Anio MOD 400 = 0 THEN Bisiesto:=TRUE ELSE IF Anio MOD 100 = 0 THEN Bisiesto:=FALSE ELSE IF Anio MOD 4 = 0 THEN Bisiesto:=TRUE END;
Bueno, estos 4 por ahora. Suerte, y espero les sirvan. A programar!. Bernardo L.
57
« en: Miércoles 4 de Febrero de 2004, 20:00 »
A veces queremos detener el programa, mostrando información, por una cantidad de segundos. Como el Delay es relativo a cada computador, delay (1000) no garantiza que transcurra 1 segundo (la solución a esto, o por lo menos, lo mas cercano a solucionarlo, lo demostraré mas adelante). Diseñé el siguiente Procedure: PROCEDURE Segundos (Seg:BYTE); { Funciona para detener un programa por 'Seg' segundos. Valores de 'Seg' mayores a 60 segundos pueden ocasionar calculos de tiempo erroneos. } VAR H1,H2,M1,M2,S1,S2,Cent1,Cent2:WORD; S0:0..60; S90:0..1; S0B,Cent90B:BOOLEAN; BEGIN S0:=0; S90:=0; S0B:=FALSE; Cent90B:=FALSE; GETTIME (H1,M1,S1,Cent1); INC (M1); INC (S1); INC (Cent1); IF Cent1 > 90 THEN BEGIN Cent90B:=TRUE; Cent1:=Cent1-90; S90:=1 END; IF S1 = 1 THEN S0B:=TRUE; REPEAT GETTIME (H2,M2,S2,Cent2); INC (M2); INC (S2); INC (Cent2); IF (Cent2 > 90) AND (M1 = M2) AND Cent90B THEN Cent2:=Cent2-90; IF (S2 = 1) AND NOT S0B THEN S0:=60; S2:=S2+S0; UNTIL (S2-S1 >= Seg+S90) AND (Cent2 >= Cent1) END;
NOTA: el programa o unidad que contengan a este Procedure, debe tener utilizar DOS (USES Crt,Dos;). Bernardo L.
58
« en: Miércoles 4 de Febrero de 2004, 19:55 »
Este Procedure sirve para centrar un String, no importa si se encuentra dentro de un Window, o si la resolución es de 40 u 80 columnas. PROCEDURE CentrarTxt (WriteTexto:STRING); VAR X,Y,Z:BYTE; BEGIN X:=1; Y:=WHEREY; Z:=LO (WINDMAX) - LO (WINDMIN) + 1; IF LENGTH (WriteTexto) < Z THEN X:=((Z-LENGTH (WriteTexto)) DIV 2)+1; GOTOXY (X,Y); WRITE (WriteTexto) END;
59
« en: Miércoles 4 de Febrero de 2004, 19:50 »
Saludos!. Solo queria compartir algunos de mis codigos, que pienso pueden ser de utilidad para varios. Beep. PROCEDURE Beep (T,D:WORD); BEGIN SOUND (T); DELAY (D); NOSOUND END;
Este es un procedure muy simple, que pueden utilizar por programa, o sumarlo a alguna unidad creada por ustedes. Simplemente utiliza el Tone y el Delay para emitir un sonido. Creo que ahorra lineas de codigo.
60
« en: Miércoles 4 de Febrero de 2004, 18:19 »
Good!. Ahora, se me ocurre, podrias meterle por ahi un TextColor random a ver que tal. Suerte, y a programar!. Bernardo L.
61
« en: Viernes 30 de Enero de 2004, 16:23 »
Saludos!. Veamos: "trunc" es una función, y transforma un valor tipo "real" a otro tipo "longint". Este valor obtenido será la parte entera del valor inicial. Por ejemplo, trunc (-1.892) dará como resultado -1, trunc (200.5) dará 200, trunc (25.3) dará 25, y así. "round" es una función, y también transforma un valor tipo "real" a otro tipo "longint". Este valor obtenido esta vez será la parte entera del valor inicial, pero "redondeada". Por ejemplo, round (-1.892) dará como resultado -2, ya que su parte decimal es superior a 0.5, round (200.5) dará 201, ya que su parte decimal es igual a 0.5, y round (25.3) dará 25, ya que su parte decimal es inferior a 0.5, y así. Ahora tu decide cual te sirve. Bernardo L.
62
« en: Jueves 29 de Enero de 2004, 19:32 »
Saludos!. procedure RandomAZ; var Resp:char; begin repeat write (Chr (Random (26)+65)) until KeyPressed; Resp:=ReadKey end;
Debe servir Muestra random de la A a la Z. Bernardo L.
63
« en: Sábado 24 de Enero de 2004, 02:13 »
Ouch!!. Se me salió lo novato!!. GRACIAS!!. No tenia ni idea que usar el read en lugar del readln me pudiera traer problemas. Cuando pides la fecha no estás validando el rango de los números ingresados ya se, ya se... es que con la prisa Bueno, como ya lo tengo que entregar el Lunes, me sale meterle mas Gracias!. Bernardo L.
64
« en: Jueves 22 de Enero de 2004, 22:48 »
Saludos!. Cansancio, privación del sueño (o por lo menos de razonables horas del mismo), o simple ignorancia (no de forma excluyente) pueden ser la causa de que no encuentre el porqué éste segmento de un programa que estoy diseñando (mas de 1000 lineas, no vale la pena que lo pegue completo) entra en un ciclo cuando para el Código no introduzco datos. El lenght va a ser 0, pero luego toma un valor nulo y entra con length = 0 y cae en el ciclo. PROGRAM Prac002; USES CRT; VAR Dd,Mm,Aa:WORD; Codigo:STRING; Resp:CHAR; PROCEDURE LeerTexto (WriteTexto:STRING; VAR OkeTexto:STRING; RespAttr:BYTE); VAR Oke:BOOLEAN; X,Y,X2,Y2,TAtt1:BYTE; BEGIN X:=WHEREX; Y:=WHEREY; REPEAT Oke:=TRUE; GOTOXY (X,Y); CLREOL; WRITE (WriteTexto,': '); TAtt1:=TEXTATTR; TEXTATTR:=RespAttr; READ (OkeTexto); TEXTATTR:=TAtt1; {} IF LENGTH (OkeTexto) = 0 THEN BEGIN X2:=WHEREX; Y2:=WHEREY; TEXTCOLOR (14); WRITE (#7); WRITE (' No ha escrito nada!.'); READKEY; GOTOXY (X2,Y2); TEXTCOLOR (4); CLREOL; Oke:=FALSE END {} UNTIL Oke; WRITELN END; PROCEDURE LeerFecha (WriteTexto:STRING; VAR Dd,Mm,Aa:WORD; RespAttr:BYTE); VAR Oke:BOOLEAN; X,Y,X2,Y2,TAtt1:BYTE; BEGIN X:=WHEREX; Y:=WHEREY; WRITELN (WriteTexto); WRITE ('(DD, MM, AAAA, cada uno seguido de <ENTER>): '); TAtt1:=TEXTATTR; TEXTATTR:=RespAttr; X2:=WHEREX; Y2:=WHEREY; CLREOL; WRITE (' / /'); GOTOXY (X2,Y2); READ (Dd); GOTOXY (X2,Y2); WRITE (Dd:2,'/'); READ (Mm); GOTOXY (X2,Y2); WRITE (Dd:2,'/',Mm:2,'/'); READ (Aa); GOTOXY (X2,Y2); WRITELN (Dd:2,'/',Mm:2,'/',Aa:4); TEXTATTR:=TAtt1 END; BEGIN REPEAT TEXTBACKGROUND (7); CLRSCR; TEXTCOLOR (0); WRITELN (' Introduzca los datos de la Póliza a vender,'); WRITELN ('y los datos del Automóvil a asegurar:'); WRITELN; WRITELN; TEXTCOLOR (4); LeerTexto ('Código de la Póliza (0 para salir)',Codigo,117); WRITELN; LeerFecha ('Fecha de Adquisición de la Póliza',Dd,Mm,Aa,117); WRITELN; WRITE (' ¿Desea procesar otra Póliza? (s/n) '); Resp:=UPCASE (READKEY) UNTIL Resp = 'N'; WRITELN; WRITE (' FIN.'); READKEY END.
Publiqué el .PAS en: http://mipagina.cantv.net/bernardolg/tp/FECHATXT.PAS(click con el boton derecho del MOUSE, y "Guardar destino como..."). GRACIAS a quien intente ayudarme. Atte. Bernardo L.
65
« en: Jueves 22 de Enero de 2004, 18:02 »
Thanks!. Bernardo L.
66
« en: Domingo 18 de Enero de 2004, 05:35 »
Hehe, pense que la podias bajar de donde bajastes el PAS. Ve aqui y trata: http://www.geocities.com/ymarte/prgs/mystdlib.htmlCopia todo, pegalo en un archivo NEW, y dale a F9 para compilarlo y convertirlo en TPU. Suerte!. Bernardo L.
67
« en: Domingo 18 de Enero de 2004, 05:07 »
A ver. "uses Crt, Dos, WinCrt", y no recuerdo cuales otras, son Unidades del TP. Las otras, como "MyStdLib" en tu caso, son Unidades (UNIT) creadas por usuarios. Son los archivos con extensión TPU o TPW. Estos archivos TPU deben estar en el directorio que tengas identificado en tu TP, en la parte de: Options > Directories... > Unit directories Si no los tienes en esa carpeta (o cualquiera de las que tengas identificadas), al tratar de compilar el programa te devolverá el error de que no encuentra la unidad. Si borras a MyStdLib de la parte de "uses MyStdLib", el programa simplemente no podrá utilizar los "procedures", "functions", "types", y demas, que se encuentren en la unidad, y que de seguro son necesarios para correr el programa. Suerte!. Bernardo L.
68
« en: Martes 13 de Enero de 2004, 18:22 »
Thanks!. Bernardo L.
69
« en: Lunes 12 de Enero de 2004, 01:12 »
Saludos!. Que podría causar un error en ese procedimiento?. Bernardo L.
70
« en: Martes 6 de Enero de 2004, 03:12 »
Saludos!. Hace un tiempo, cuando comence a estudiar JavaScript y HTML, diseñé un pequeño código que cambia el título de la Página Web. <!-- Start Cambia Título --> <!-- Start Change Title --> <script language="JavaScript"> <!-- var arr_blg = new Array() arr_blg[0] = "MENSAJE 1" arr_blg[1] = "MENSAJE 2" arr_blg[2] = "MENSAJE 3" arr_blg[3] = "MENSAJE 4" arr_blg[4] = "MENSAJE 5" var time_b = 5000; var refresh = null; var i_blg = 0; function wonka_title() { if (i_blg > 4) { i_blg = 0 } blg = arr_blg[i_blg]; document.title = blg; refresh = setTimeout("wonka_title()",time_b); i_blg = i_blg+1 } wonka_title(); //--> </script> <!-- End Cambia Título --> <!-- Created by Bernardo E. López García. January 2003. -->
Como ven, pueden poner la cantidad de mensajes que quieran, y el valor de 5000 de tiempo de espera entre mensaje y mensaje de la variable time_b lo pueden cambiar tambien. Una página que está utilizando el código es www.saracom.comBernardo L.
72
« en: Viernes 2 de Enero de 2004, 21:02 »
Epale BlackTigerX!. Pana, thanks por la nota. No habia visto el boton de CODE!!. Así sí se ve bien. Cuando "Pegué" el código, se comió todos los tabuladores. Bernardo L.
73
« en: Jueves 1 de Enero de 2004, 05:49 »
Gracias por la info BlackTigerX!. A programar!. Bernardo L.
74
« en: Miércoles 31 de Diciembre de 2003, 18:01 »
Saludos!. Creé este código en donde aparece el valor de TextAttr (que va de 0 a 255) para cada color de texto (TextColor, que va del 0 al 31, contando los que titilan - blink), con cada color de fondo (TextBackground, que va del 0 al 7, y que son iguales a los 8 primeros colores del TextColor). >> Para cambiar de color de fondo, presiona cualquier tecla. Para salir del programa, presiona la tecla ESC en cualquier momento << Hay una copia de este archivo en http://mipagina.cantv.net/bernardolg/tp/files/BACKGRD1.PASDespues que veas la combinación de color de texto con color de fondo, simplemente haces TextAttr:=192 (letras negras que titilan sobre fondo rojo), o TextAttr:=15 (letras blancas en fondo negro), o el que mas te sirva, en cualquier parte de tu programa. Utiliza Normvideo para reestablecer el TextAttr original, o lee los mensaje de este foro para otros ejemplos del TextAttr. A programar!. Bernardo L. {* * * *} PROGRAM TextoFondo; USES CRT; VAR C1:BYTE; Chr1:CHAR; PROCEDURE TEXTOO; VAR C1,C2:BYTE; BEGIN FOR C1:=0 TO 31 DO BEGIN TEXTCOLOR (C1); FOR C2:=1 TO 4 DO WRITE (TEXTATTR:5) END; END; BEGIN CLRSCR; C1:=0; WHILE Chr1 <> #27 DO BEGIN IF C1 = 8 THEN C1:=0; TEXTBACKGROUND (C1); CLRSCR; TEXTOO; INC (C1); Chr1:=READKEY END; NORMVIDEO; CLRSCR END. {* * * *} NOTA: correciones bien recibidas.
75
« en: Martes 30 de Diciembre de 2003, 16:20 »
Saludos!. El TextAttr devuelve un valor numerico del color utilizado para el texto, y mas nada?. Es la única información que da?. Gracias!. Bernardo
|
|
|