|
Página 1 de 1
|
Write Print Es Parecido Pero No Es Igual.
Autor |
Mensaje |
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Write Print Es Parecido Pero No Es Igual.
A raiz de un ejemplo de Vuott en otro post vi que usaba la sentencia Write en vez de print, y me preguntaba por que, así que me puse a cambiar el bucle y vi que write queda en la misma linea mientras que print usa una nuea linea de la terminal para cada ciclo.
El código es este
Repeat
i = DateDiff(tm, Now, gb.Millisecond)
Write "\rTiempo transcurrido: " & Date(0, 0, 0, 0, 0, 0, i) ' Si acá se usa Print se agrega una linea cada vez.
Wait 0.01 ' si se comenta el Wait el efecto es mejor porque los milisegundos no saltan arbitrariamente,
Until i >= dur
Seguro que la mayoría lo sabia, pero yo no lo usaba para nada.
Tambien, a Write, lo uso TercoIDE en una función que me paso:
Pero en este caso era para editar un archivo.
Saludos.
|
#1 Sabado, 26 Agosto 2017, 01:17 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Write Print Es Parecido Pero No Es Igual.
write queda en la misma linea mientras que print usa una nuea linea de la terminal
|
#2 Sabado, 26 Agosto 2017, 01:22 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Write Print Es Parecido Pero No Es Igual.
Nunca he usado write...
=================== No podemos regresar
|
#3 Sabado, 26 Agosto 2017, 08:50 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Write Print Es Parecido Pero No Es Igual.
Write se usa más para escribir en ficheros binarios (o stream) y print para escribir en ficheros de texto.
Ambos pueden escribir en streams, pero print usa la representación de texto. No sé si me he explicado bien, pero básicamente yo lo entiendo así.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#4 Sabado, 26 Agosto 2017, 11:11 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Write Print Es Parecido Pero No Es Igual.
En efecto la instrucción " Print " escribe datos de manera formateada por defecto con un valor 0x0A (es decir: &h0A) al término del fluxo.
|
#5 Sabado, 26 Agosto 2017, 14:55 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Write Print Es Parecido Pero No Es Igual.
|
#6 Domingo, 27 Agosto 2017, 01:30 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Write Print Es Parecido Pero No Es Igual.
¿Po... por qué te asombras?
|
#7 Domingo, 27 Agosto 2017, 02:48 |
|
|
tincho
Analista Programador
Registrado: Noviembre 2014
Mensajes: 2565
Edad: 48 Ubicación:
|
Re: Write Print Es Parecido Pero No Es Igual.
Me asombro por lo de:
Citar: Write se usa más para escribir en ficheros binarios (o stream) y print para escribir en ficheros de texto.
Pero en gambas se escribía texto en la terminal no bytes como 01010101010....
y por lo de...
Citar: por defecto con un valor 0x0A
Ya cuando entramos en Hexagesimales todo se vuelve mas serio.
Por lo tanto en lo referente a escribir en la terminal de gambas quedaría así:
Esto:
Print "\rTiempo transcurrido: " & Date(0, 0, 0, 0, 0, 0, i)
Es equivalente a esto otro:
Write "\rTiempo transcurrido: " & Date(0, 0, 0, 0, 0, 0, i) & "\n"
El resultado es el mismo.
O sea que Write imprime pero sin agregar al final el "\n", como si lo have Print.
Saludos.
|
#8 Domingo, 27 Agosto 2017, 21:12 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Write Print Es Parecido Pero No Es Igual.
Pero en gambas se escribía texto..... no bytes como 01010101010....
Más precisamente la instrucción "Print" trata automaticamente todo, lo que tiene que escribir, como valores correspondientes a carácteres ASCII.
Por eso, si escribimos:
de verdad "Print" no va a escribir un valor numerico de tipo " Integer", sino una cadena con símbolos numericos.
Es decir:
NO -> &01 &02 &03 &04 &05
SI -> &31 &32 &33 &34 &35 .....
.....pero, de verdad, "Print" siempre añade el valor &0A al final del fluxo !
Asì tendremos: &31 &32 &33 &34 &35 &0A
"Print" trata su datos como caracteres ASCII.
Por eso, si queremos obtener reales valores numericos (es decir: NO caracteres numericos del codigo ASCII), debemos... "respectar" esta caracteristica de la instrucción "Print"; tenemos que convertir los símbolos numericos en reales numeros a través la función " Chr()".
...pero no debemos olvidar que... "Print" siempre añade el valor &0A al final del fluxo !
en gambas se escribía .... en la terminal
" Non solum, sed etiam... "
Bueno, por defecto él escribe en "standard output" ("/dev/stdout"); pero si tú quieres, puedes escribir adonde tu quieres.
http://gambaswiki.org/wiki/lang/print?l=es
Exemplum maximum:
Una otra manera, un po' más... "ortodoxa" es esta:
última edición por vuott el Domingo, 27 Agosto 2017, 23:19; editado 5 veces
|
#9 Domingo, 27 Agosto 2017, 23:13 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|