Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - flony

#531
Scripting / Re: DEBUG (BATCH)
29 Julio 2010, 03:11 AM
a ver gente no es para tirar leña al fuego y tampoco leo la cabeza de nadie pero lo de los lenguajes
CitarBAT, PY, PERL, DELPHI, C, C# C++ Java JS VBN VBS PHP MySQL ASP
...se me hace q es por no mandarlo a otro lado.... :laugh: che FerJGS te di dos lugares para leer...http://www.scribd.com/doc/7462877/Debug me parecio el mejorcito y lo busque xq me generaste esa inquietud...y si la verdad que alguno de los chicos que saben deberia hacer un tutorial...digamolo hay comandos que hay poca info solo por citas runas debug WMIC etc y si tienen razon para debug hay q saber algo de asm...pero bue nadie creo q en su sano juicio haga un simulador de vuelo en bat y eso que es para mi, mi inicio, el bat me encanta es simple y sin tanta complicacion como otros lenguajes solo que hay "obras maestras" y decis como hizo este tipo para hacer eso en bat y quiero entender q corno dice su codigo
bue...viendo lo que hace este cristiano aca un pequeño tuto q puso
CitarGráficos con Debug en Batch

¿Qué es Debug?
Debug es un debugger,  un depurador de código ensamblador para 16 bits. Windows lo incorpora por defecto y puede ser usado desde el CMD.
Ensamblador es todo un lenguaje, y obviamente por consecuencia las posibilidades de Debug son infinitas. Sin embargo en este manual se explica de forma sencilla como acceder al segmento de pantalla y poder manipular de una forma potente, sencilla y eficaz los gráficos. Útil para juegos o para darle una apariencia más profesional a los scripts.

El segmento de pantalla.

El segmento de pantalla es un pedazo de la memoria donde todas las computadoras que ejecutan DOS, almacenan sus caracteres junto con sus atributos correspondientes a la consola de comandos.
El citado segmento comienza en la dirección 0800h.
Al escribir datos directamente en un desplazamiento sobre ese segmento, esos datos aparecerán en pantalla.

Posición.

En ese segmento una posición ocupa dos bytes. El primero contiene el carácter y el segundo los atributos de éste.
Trabajando en una consola de x80y25, como es por defecto, veríamos que toda la pantalla ocupa 4000 bytes.
Bien, sabiendo que cada fila ocupa 160 bytes y cada columna ocupa 2 bytes, no es muy difícil hallar la fórmula para calcular la posición donde insertar un carácter.
La fórmula es esta: fila*160+columna*2. Lo que, adaptándolo al plano cartesiano, quedaría así: x*2+y*160. Puesto que las columnas son el eje horizontal X y las filas el eje vertical Y.
Así pues, la coordenada x1y3, por ejemplo, aplicando la fórmula, quedaría así:

1*2+3*160 = 482D = 1E2H

Se ha transformado a hexadecimal ya que es el sistema de numeración empleado en el uso de memoria.

Aplicación a Batch.

Lo que nos interesa es poder usar este sistema para realizar gráficos en batch. Vamos a ver como.

Código:

(
Echo.EB800:1E2 "Û"A
Echo.q
)|Debug>nul

En ese código hemos escrito desde Debug en la posición EB800:1E2. Hemos escrito dos bytes, que son los mencionados al comienzo de este manual: el carácter a escribir (1º byte) y su atributo (2º byte).
El carácter se encierra entre comillas, y posteriormente le sigue su atributo, que es un color en hexadecimal.
El atributo puede contener dos números hexadecimales, que corresponden al color de fondo de la coordenada en cuestión y al color del carácter, respectivamente.
Por lo tanto, al escribir en el segmento de pantalla algo así:

Código:

EB800:1E2 "A"AF


Lo que hicimos fue escribir en x1y3 la letra "A"; darle un fondo verde brillante a la casilla y un color blanco brillante a la letra.

Esto es todo, tan sólo hay que usar el ingenio para conseguir realizar gráficos más complejos y automatizar el cálculo de coordenadas hexadecimales.






Copyright © Binary_Death
#532
hola gente aca les pongo el code que voy haciendo todavia falta que use las sentencias pensaba en switch o en if para que eliga entre las tres opciones y cual gana....pero bue como voy falta algo se aceptan  criticas pero constructivas  :¬¬ ...
#include <iostream>
#include <stdlib>
#include <stdio.h>

using namespace std;
ResultadoAzar(int piedra, int papel, int tijera, int azar);
IngresarDatos();
GenerarAzar(int);
int IngresoDatos()
{
  cout << " Ingresa 1 para papel \n papel ";
  cin >> papel;
  cout << " Ingresa 2 para piedra \n piedra ";
  cin >> piedra;
  cout << " Ingresa 3 para tijera \n tijera ";
  cin >> tijera;
  return IngresarDatos;
}
int GenerarAzar()
{
int range_max = 3, int range_min = 1;
int i;
   for ( i = 0; i < n; i++ )
   {
      int u = (double)rand() / (RAND_MAX + 1) * (range_max - range_min)
            + range_min;
   }
   return GenerarAzar;
}

#534
en definitiva que hace ese pedazo de codigo.. :-\  ;)
#535
reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v nombre /d "aca va la carpeta donde esta lo q se ejecuta" /f
en donde dice nombre pone el nombre de tu bat donde esta la carpeta es donde esta alojado el bat ej mis documentos
#536
a ver lo de hacer guardar la linea y que guarde cada palabra de la linea en variables distintas todo dentro del mismo "ciclo" por definirlo de alguna forma :rolleyes: me parece parecido a lo que intente hacer hace un tiempo  :) es como trabajar con vectores y no se puede  :-\ , podemos intentar simularlos  :silbar: pero bue es no ...ahora como no hay que darse por vencido y se puede siempre buscar la vuelta
de ultima lee lo que hice y fijate si te sirve es una simulacion de un vector jajaja no es por hacer propaganda pero parece lo que queria hacer  :silbar:
http://foro.elhacker.net/scripting/vectores_solucionado-t297506.0.html
che una cosita q vi en tu code para que salga en pantalla una variable es echo %variable% no echo %%variable
#537
Scripting / Re: Agregar Servicios con Batch
21 Julio 2010, 21:07 PM
esa no me la sabia  :rolleyes:...me copio esta info  ;) gracias Novlucker  ;-)
#538
bueno como es costumbre te van a decir q no se hace trabajos....lo cual es verdad aunque suene chocante  :-\ pero te doy unas ideas y las vas a tener que modificar como te guste a vos como son iguales te muestro para un txt y vos lo vas intercalando para 1.txt y a.txt  para colmo va a ser modular la cosa xq es un poco complejo ;)
primero contar los renglones de  1.txt para saber cuando no queden mas renglones  :laugh:
:variables
set /a contador=0
for /f "tokens=*" %%_ in (1.txt) do (
set /a contador+=1)
set /a var=%contador%

despues fijarte si la variable "var" es igual a cero asi deja de trabajar por medio de bucles, si no es asi copie y borre una linea
set var=%a%
linea=0
:bucledelprimertxt
set /a linea=%linea%+1
if %var%==0 (goto echo listo) else set /A var=%var%-1
<"1.txt" set /p "primera_linea="
set "primera_linea"
(
ECHO 1d
ECHO E
) | EDLIN /B 1.txt > nul 2>&1
::aca iria la duplicacion para a.txt
goto bucledelprimertxt

bue es una idea cubriria los dos txt de una obvio intercalando las filas...pero bue a modo de ejemplo y que averigues un poquito http://foro.elhacker.net/scripting/acciones_sobre_archivos_de_texto_batch-t242748.0.html
para adaptarlo te puede servir....pero leo es mas especialista en el trabajo de textos en bat  ;D
#539
Scripting / Re: Bath
20 Julio 2010, 14:11 PM
hola La ZeNoN  bienvenida al foro estaba fijandome en tu bat y bue voy a comentar...no soy el mejor pero bue  :silbar: asi aprendi yo tambien tu code es este @echo off
cls
set \p escribe tu nombre:
if %var%==%var% (
echo hola %var%
)

lo vamos a comentar linea a linea
el echo off es para q no salga el molesto C:\Documen....etc
el cls...su funcion es q si esta toda la pantallita llena de palabras las borre o sea aca estaria de mas xq no tenes nada escrito
el set \p es en realidad set /p o sea la barra no es invertida
de una ahi no reconoce nada
despues el tema del if....la idea es que analise si dos variables son distinta..o iguales o lo q sea pero son dos variables con nombre distintos...q su valor sea igual es otra cosa...
otra cosa para practicar vos y manosear tu code  ;D lo mejor es
borra el @echo off
le pones un nombre facil ejemplo 1.bat y lo ejecutas desde la consola...esta en C:\WINDOWS\system32  :rolleyes: desde ahi pones lo siguiente todo a mano sin bat   :rolleyes:
Citarcd C:\
start 1.bat
modificacion el 1.bat debe estar en C:\
y ves q se abre otra ventanita y veras q esta haciendo este bat...si ves q algo sale mal no cierres la primer consola cerra tu bat vas a C:\  opcion editar lo manoseas a tu code cerra y desde la consola abierta con las teclita de arriba vas a ver q sale de vuelta start 1.bat...asi q lo ejecutas las veces q haga falta hasta q veas q sale bien....recien ahi vas a tu bat le pones @echo off asi queda bonito
ojala sirva de ayuda te pongo un code q hace algo parecido a lo q vos queres...como veras en este foro "hay mas de una forma de llegar a roma"...jajaja
segui estudiandote algun tutorial hay muchos por aca
@echo off
set var1=flony
set /p var=escribe tu nombre:
if %var1%==%var% (echo hola %var%
pause>nul
exit
) else (
echo no sos flony XD
pause>nul
exit
)
#540
Scripting / Re: Bath
20 Julio 2010, 03:34 AM
hola La ZeNoN a ver a mi  me lo dijeron y lo uso y da resultado...ponele un nombre rapidito al bat...ejm 1.bat le sacas el famosos @echo off, lo pones en el disco c, abris otra ventana de cmd y pones cd C:\
start 1.bat

y de ahi vas a ver los que hace el bat...y los errores  :silbar:
ahi vas a ver que esta mal definida la variable para que salga el "hola La ZeNoN"