[ BATCH ] Efecto visual de escribir lento?

Iniciado por Eleкtro, 19 Noviembre 2011, 00:41 AM

0 Miembros y 2 Visitantes están viendo este tema.

$Edu$

Aca encontre el codigo en mi pendrive, por si sirve de algo..

Código (dos) [Seleccionar]


   @echo off
call:put Me canse de escribir tantas lineas ...
call:put Este es el typewritter effect reloaded
call:put o echo dinamico xD
>nul,pause
goto:eof

:put
if,not,defined,.m_,set.m_=%*&if,not,defined,.m_,goto:eof
<nul,set/p.m_=%.m_:~0,1%&>nul,ping -n 1 0&set.m_=%.m_:~1%&if,defined,.m_ (goto:put),else,(echo.)
goto:eof

Eleкtro

Cita de: $Edu$ en 20 Diciembre 2011, 18:29 PM
Aca encontre el codigo en mi pendrive, por si sirve de algo..

Código (dos) [Seleccionar]


   @echo off
call:put Me canse de escribir tantas lineas ...
call:put Este es el typewritter effect reloaded
call:put o echo dinamico xD
>nul,pause
goto:eof

:put
if,not,defined,.m_,set.m_=%*&if,not,defined,.m_,goto:eof
<nul,set/p.m_=%.m_:~0,1%&>nul,ping -n 1 0&set.m_=%.m_:~1%&if,defined,.m_ (goto:put),else,(echo.)
goto:eof


Gracias por el code pero no me sirve, ese code no escribe los espacios (Supongo que a ti si, en windows xp si), de todas formas ese problema ya me ayudaron a resolverlo xD ahora estoy estancado en no poder escribir más de una línea  :-[

un saludo








PedroDJavier

#12
Buenas. Siento revivir un post tan antiguo pero como (creo) que conozco la solucion me parecio oportuno postear.

Este seria el codigo:


@echo off
echo P
timeout /t 2 >nul
cls
echo Pe
timeout /t 2 >nul
cls
echo Ped
timeout /t 2 >nul
cls
echo Pedr
timeout /t 2 >nul
cls
echo Pedro
pause >nul


Imprimiria en 10 segundos la palabra Pedro a 2 segundos por letra;
El comando timeout /t "segundos" es un comando muy preciso para esperar X tiempo, es mejor que el ping LOCALHOST /N "tiempo" que ademas es un truco muy "sucio"

Espero haber ayudado, aportando 2 cosas nuevas a la comunidad. :D
Un saludo

PedroDJavier

PD: preguntando al principio al usuario que es lo que quiere escribir y usando extraccion de caracteres podemos hacer cosas chulas xD

EDIT: Se  me olvido comentar que funciona con los espacios :D aveces la solucion esta en lo simple !

the-bird-of-the-hermes

podrias modificar este programa en c++ las variables que se escribren por espacios en blanco supongo pero ya no seria puro batch

http://foro.elhacker.net/scripting/batch_c_programa_para_efecto_typewritter-t410038.0.html;msg1924932#msg1924932
todos somos ignorantes, pero no ignoramos las mismas cosas.

ramiro069

#14
CitarBuenas. Siento revivir un post tan antiguo pero como (creo) que conozco la solución me pareció oportuno postear.
Ya somos 2, he modificado el el script que no imprimía los espacios para que si lo haga:

Código (bash) [Seleccionar]


@echo off
mode con cols=100
mode con lines=20

call :SLOW aaa     aaaa           aaaa
echo+
echo+
call :SLOW quiero un espacio
pause>nul
goto :eof


:SLOW
set palabra=%*
if not defined palabra (goto :eof)
set palabra=%palabra: =_%
call:length %palabra%
set /a contt=0
set /a contt2=0
set /a cantcopy=1
if [%tam%] gtr [0] (set /a contt2 +=1)
:loopt
call :AUXILIAR %%palabra:~%contt2%,1%%
if [%aux%]==["_"] (
set /a contt2 +=1
set /a cantcopy +=1
) else (goto :end1)
if %contt2% leq %tam% (goto :loopt)
:end1
call :SLOW1 %%palabra:~%contt%,%cantcopy%%%
set /a contt +=%cantcopy%
set /a contt2 +=1
set /a cantcopy=1
if %contt% leq %tam% (goto :loopt)
goto :eof
:SLOW1
set char="%1"
set char=%char:_= %
<nul (set /p msg=%char%)
set /a aux2=%cantcopy%
:loopt1
ping -n 1 127.0.0.0 -w 1>nul 2>&1
ping -n 1 127.0.0.0 -w 1>nul 2>&1
set /a aux2 -=1
if %aux2% gtr 0 (goto :loopt1)
goto :eof
:length
set argl=%*
if not defined argl (goto :eof)
set wordl=%argl%
set /a contl=0
:loopt2
if not defined wordl (goto :end2)
set wordl=%wordl:~1%
set /a contl +=1
goto :loopt2
:end2
set tam=%contl%
goto :eof
:AUXILIAR
set aux="%1"
if not defined aux (goto:eof)
goto :eof



Como veis para poder lograrlo hay que enviar los espacios a la vez que la letra anterior, por lo que si aumentamos mucho el tiempo de espera se verá que los espacios los escribes rápido y las letras despacio, pero es mejor que nada y ademas soporta las multilineas.

Un saludo, espero que a alguien le resulte útil