|
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 - tirengarfio
1
« en: Lunes 5 de Abril de 2010, 20:04 »
Hola, tengo el siguiente script que me elimina cualquier cosa que haya entre lineas que contengan "//inicio-borrar-inicio" y "//fin-borrar-fin". Tambien borra esas mismas lineas que contienen las susodichas cadenas. import re,fileinput,os for path, dirs, files in os.walk(path): for filename in files: fullpath = os.path.join(path, filename) # open for reading first since we need to get the text out f = open(fullpath,'r') # step 1 data = f.read() patter = re.compile('//inicio-borrar-inicio.*?//fin-borrar-fin', re.I | re.S) data = patter.sub("", data) # step 2 f.close() # *now* open for writing f = open(fullpath, 'w') # step 3 f.write(data) f.close()
Mi problema: tras ejecutar el script sobre esto por ejemplo: public function preFetchAll(Doctrine_Event $event){ //inicio-borrar-inicio $a = sfContext::getInstance()->getUser()->getAttribute("passw.formulario"); var_dump($a); //fin-borrar-fin foreach ($this->_listeners as $listener) { $listener->preFetchAll($event); } }
el resultado es este: public function preFetchAll(Doctrine_Event $event){ foreach ($this->_listeners as $listener) { $listener->preFetchAll($event); } }
Como podeis ver hay un linea en blanco entre "public function..." y "foreach..." ¿Alguien sabe como puedo hacer para que esa linea en blanco no aparezca? Saludos Javi
2
« en: Miércoles 30 de Diciembre de 2009, 02:04 »
Hola, me he dado cuenta que (por lo menos en la pagina que cito a continuacion) el codigo fuente que aparece en Firebug es distinto del codigo fuente que me aparece si pulso Ctrl+U. La pagina a la que me refiero es esta. Por ejemplo, mientras en el codigo fuente me aparece esta etiqueta [html:1vt0f7ux] - <div id="testWrap">
- <img src="castle.jpg" alt="Castle on a hill" id="testImage" width="500" height="333" /> </div>
-
[/html:1vt0f7ux] en Firebug aparece esto otro: [html:1vt0f7ux] - <div id="testWrap">
- <div style="width: 500px; height: 333px;" class="imgCrop_wrap"><img src="castle.jpg" alt="Castle on a hill" id="testImage" width="500" height="333"><div class="imgCrop_dragArea"><div style="height: 0pt;" class="imgCrop_overlay imgCrop_north"><span></span></div><div style="width: 0pt; height: 0pt;" class="imgCrop_overlay imgCrop_east"><span></span></div><div style="height: 0pt;" class="imgCrop_overlay imgCrop_south"><span></span></div><div style="width: 0pt; height: 0pt;" class="imgCrop_overlay imgCrop_west"><span></span></div><div style="display: none;" class="imgCrop_selArea"><div class="imgCrop_marqueeHoriz imgCrop_marqueeNorth"><span></span></div><div class="imgCrop_marqueeVert imgCrop_marqueeEast"><span></span></div><div class="imgCrop_marqueeHoriz imgCrop_marqueeSouth"><span></span></div><div class="imgCrop_marqueeVert imgCrop_marqueeWest"><span></span></div><div class="imgCrop_handle imgCrop_handleN"></div><div class="imgCrop_handle imgCrop_handleNE"></div><div class="imgCrop_handle imgCrop_handleE"></div><div class="imgCrop_handle imgCrop_handleSE"></div><div class="imgCrop_handle imgCrop_handleS"></div><div class="imgCrop_handle imgCrop_handleSW"></div><div class="imgCrop_handle imgCrop_handleW"></div><div class="imgCrop_handle imgCrop_handleNW"></div><div class="imgCrop_clickArea"></div></div><div class="imgCrop_clickArea"></div></div></div></div>
[/html:1vt0f7ux] Alguien sabe a que obedece esto? Un saludo Javi
3
« en: Viernes 19 de Junio de 2009, 20:35 »
Hola, estoy leyendo el manual de symfony (un framework PHP orientado a la creación de aplicaciones web). En la sección 9.3.3 aparecen las siguientes palabras: "En ocasiones, los programadores web utilizan peticiones GET para realizar acciones más propias de una petición POST. Si se considera por ejemplo la siguiente URL:
http://www.ejemplo.com/index.php/carrit ... dir/id/100
Este tipo de petición modifica los datos de la aplicación, ya que añade un elemento al objeto que representa el carrito de la compra y que se almacena en la sesión del servidor o en una base de datos. Si los usuarios añaden esta URL a los favoritos de sus navegadores o si la URL se cachea o es indexada por un buscador, se pueden producir problemas en la base de datos y en las métricas del sitio web. En realidad, esta petición debería tratarse como una petición de tipo POST, ya que los robots que utilizan los buscadores no hacen peticiones POST para indexar las páginas."Mi pregunta: ¿en que se nota que la la peticion que menciona es de tipo GET y no POST? Ciao
4
« en: Jueves 24 de Julio de 2008, 18:48 »
Saludos, cuando intento compilar este codigo int main(int argc, char* argv[]) { char cad1[100]="javi"; char * cad2; cad2 ="hola"; strcpy( cad2, cad1); printf ("%s", cad1); return 0; }
me da un error al ejecutarlo pero cuando ejecuto este de aqui abajo no me da errores, por que? int main(int argc, char* argv[]) { char cad1[100]="javi"; char * cad2; cad2 ="hola"; strcpy( cad1, cad2); // SOLO CAMBIO ESTA LINEA printf ("%s", cad1); return 0; }
Ciao Javi
5
« en: Lunes 17 de Marzo de 2008, 01:31 »
Hola, el siguiente codigo imprime inicialmente un simbolo $ en mitad de la pantalla. Despues, si presionas la letra "i", se imprime otro $ encima del primero, y si presionas de nuevo la "i", se deberia imprimir otro $ encima del segundo $, pero ese tercer $ no se imprime... ¿Por qué? Bueno, a decir verdad, ese tercer $ se imprime, pero cuando pulso "i" una tercera vez... Mi objetivo es que se imprima cuando le doy a la "i" la segunda vez, no la tercera. DOSSEG .MODEL SMALL .STACK 100h .DATA .CODE INICIO: mov ax, @data mov ds, ax mov ax, 03h; Peticion para limpiar pantalla int 10h ;funcion de la interrupcion que nos permite posicionarnos mov ah, 02h; colocar el cursor en una posicion definida mov dh, 0Ah; fila mov dl, 019h; columna int 10h; interrupcion de video bucle: mov dl, 024h; Escribo el caracter "$" mov ah, 02h int 21h bucle2: mov ah, 08h; Leo un caracter del teclado sin reproducirlo en la pantalla. int 21h cmp al, 069h; Compruebo si el caracter pulsado es la letra "i". je arriba cmp al, 06Bh; Compruebo si el caracter pulsado es la letra "k". je abajo jmp bucle2 arriba: mov ah, 02h; Colocar el cursor en una posicion definida sub dh, 1 mov dl, 026h; columna mov bh,0; pagina de video activa generalmente la cero int 10h jmp bucle abajo: mov ah, 02h; Colocar el cursor en una posicion definida add dh, 1 mov dl, 026h; columna mov bh,0; pagina de video activa generalmente la cero int 10h jmp bucle FIN: mov ah, 4ch int 21h end INICIO
Un saludo JAvi
6
« en: Lunes 17 de Marzo de 2008, 01:00 »
Saludos, el codigo que tengo aqui abajo es el comienzo de un programa que deberia dibujar un cuadrado en la pantalla. Como se ve, empiezo dibujando el vertice superior izquierdo del cuadrado. El problema es que si pongo las dos lineas del * no me funciona correctamente: el vertice no se me dibuja en la posicion (6,6) (columna, fila) sino en el (0,0). ¿Cual es el problema? He visto la pagina de Brown pero no aparece nada sobre que BX interfiera en las interrupciones que manejo. .MODEL SMALL .STACK 100h .DATA ; Tomando como origen de coordenadas la esquina superior derecha de la ventana. six DB 06h ; Coordenada x de la esquina superior izquierda del cuadrado siy DB 06h ; Coordenada y de la esquina superior izquierda del cuadrado idx DB 0Ah ; Coordenada x de la esquina inferior derecha del cuadrado idy DB 0Ah ; Coordenada y de la esquina inferior derecha del cuadrado .CODE INICIO: mov ax, @data mov ds, ax mov bh, six ; * mov bl, siy ; * mov ch, idx mov cl, idy mov ax, 03h ; Peticion para limpiar pantalla int 10h mov ah, 02h ; colocar el cursor en el vertice superior izquierdo. mov dh, 06h; y mov dl, 06h ; x int 10h ; interrupcion de video mov dl, 024h; Escribo el caracter "$" mov ah, 02h int 21h FIN: mov ah, 4ch int 21h end INICIO
Un saludo Javi
7
« en: Lunes 17 de Marzo de 2008, 00:31 »
Gracias Eternal
8
« en: Domingo 16 de Marzo de 2008, 23:15 »
Saludos,
tengo unas tablas con algunas de la funciones de las interrupciones 21h, 10h y 16h.
Hechandoles un ojo, veo que la funcion 02h (interrupcion 21h) y la funcion 09h (interrupcion 10h) son muy parecidas.
Si quiero es escribir un caracter sin tener en cuenta ni el color ni la pagina, ¿cual de estas dos debere usar? ¿será indiferente usar una u otra? ¿hay ciertas ocasiones en la que se aconseja usar una más una que otra?
Un saludo
Javi
9
« en: Jueves 13 de Marzo de 2008, 22:14 »
Saludos, este codigo de aqui abajo deberia de imprimir dos lineas una debajo de la otra, pero, ¿porque no salta de linea? DOSSEG .MODEL SMALL .STACK 100h .DATA .CODE INICIO: mov ax, @data mov ds, ax mov cx, 10 bucle1: mov dl, 0h; Escribimos el numero de espacios en blanco indicados por CX. mov ah, 06h int 21h loop bucle1 mov cx, 10 bucle2: mov dl, 5Fh ; Imprimimos por pantalla el lado superior del cuadrado. mov ah, 06h int 21h loop bucle2 mov dl, 0Dh mov ah, 06h; ¿¿¿¿¿¿¿¿¿¿¿No deberia saltar de linea???????????????? int 21h mov cx, 10 bucle3: mov dl, 0h; Escribimos el numero de espacios en blanco indicados por CX. mov ah, 06h int 21h loop bucle3 mov cx, 10 bucle4: mov dl, 5Fh mov ah, 06h; int 21h loop bucle4 FIN: mov ah, 4ch int 21h end INICIO
Ciao
10
« en: Miércoles 12 de Marzo de 2008, 21:39 »
Saludos, ejecutando paso a paso el codigo de aqui debajo, tras ejecutar la linea "int 21h(*)", el valor de al pasa a ser 24. ¿Alguien me sabe de decir por qué ocurre eso? DOSSEG .MODEL SMALL .STACK 100h .DATA cadena DB "Has pulsado la tecla:$" .CODE INICIO: mov ax, @data mov ds, ax mov ah, 08h int 21h lea dx, cadena mov ah, 09h int 21h (*) mov dl, al mov ah, 02h int 21h FIN: mov ah, 4ch int 21h end INICIO
Un saludo Javi
11
« en: Miércoles 12 de Marzo de 2008, 20:14 »
Saludos, viendo como se va ejecutando paso a paso este codigo de aqui abajo con CV, me he dado cuenta que tras ejecutar la linea "mul tabla[1h]" el resultado es: DX: 0023 AX: 2800 ¿El resultado no deberia de ser este?: DX:0000 AX:2328 ¿Que estoy haciendo mal? DOSSEG .MODEL SMALL .STACK 100h .DATA tabla DW 5h DUP (2h, 9h, 3h, 7h, 1h) ; Trabajaremos con el rango 0-65535, ; tabla1<=50h .CODE INICIO: mov ax, @data mov ds, ax mov ax, 2710h mul tabla[0h]; Multiplicamos por 10.000 (2710h) el 1er elemento de tabla. ; El resultado se guarda en DX AX mov bx, ax; Ahora vamos a mover el resultado almacenado en DXAX a BXCX. mov cx, dx mov ax, 3E8h; Multiplicamos por 1.000 (3E8h) el 2º elemento de tabla. mul tabla[1h] FIN: mov ah, 4ch int 21h end INICIO
Un saludo
12
« en: Martes 11 de Marzo de 2008, 10:33 »
hola,
shr no funciona con datos de 32 bits.
ya lo se...
multiplicando 4 veces por 10h lo consigo
EI: uniendo mensajes.
13
« en: Lunes 10 de Marzo de 2008, 23:07 »
Saludos,
¿alguien sabe alguna manera de desplazar hacia la izquierda 16 bits un dato dd añadiendo un cero a la derecha cada vez que se desplaza un bit?
0000 0000 0000 0000 0000 0000 0000 0001
Al final quedaria:
0000 0000 0000 0001 0000 0000 0000 0000
Un saludo
Javi
14
« en: Martes 26 de Febrero de 2008, 17:21 »
Saludos, en un codigo que he visto, aparecela siguiente linea: p1 dd ? .code les si, [bp].p1
¿Alguien me puede decir que quiere decir el punto de la ultima linea? Ciao
15
« en: Viernes 22 de Febrero de 2008, 18:36 »
¿Quien dijo que hay un tabla1[4]? Esta fuera de los limites y simplemente estas accediendo a carac que justamente es 'a' Ya se que esta fuera de los limites, pero ¿no te parece curioso que tabla1[4] albergue el mismo caracter que tabla1[3] siempre? Incializa asi: tabla1 DB "Hola",0 y recorre las cadenas justo hasta encontrarte el 0 terminador de las mismas.
Ok, aqui abajo esta mi codigo haciendo lo que tu me dices. Pero en el caso de que la letra que estoy contando (la "a") sea la que termina la palabra (Hola), tu consejo no funciona, al menos como yo lo hago... DOSSEG .MODEL SMALL .STACK 100h .DATA
tabla1 DB "Hola", 0 ; Una tabla de 0Ah caracteres carac DB "a"
.CODE
INICIO:
mov ax, @data mov ds, ax
xor di, di
mov bh, carac[0]
numero:
add cl, 1
bucle:
mov bl, tabla1[di]
inc di
cmp bl, carac je numero
cmp tabla1[di], 0 jnz bucle
FIN:
mov ah, 4ch int 21h end INICIO
16
« en: Viernes 22 de Febrero de 2008, 14:52 »
Deberia decir "Hola Eternal" , he escrito un codigo que me cuenta el numero de letras "a" en la palabra "Hola". El problema es que tabla1[4] es siempre igual que tabla1[3], con lo que la cuenta siempre es incorrecta. Mis preguntas son dos: - ¿Porque tabla1[4] es siempre igual a tabla1[3]? (Es que soy curioso...) - ¿Hay alguna manera de correctamente este ejercicio? Se me ocurre que la linea "sub cl, 1" se podria sustituir por "sub cl, 2", pero quiza haya alguna manera mas "seria"... DOSSEG .MODEL SMALL .STACK 100h .DATA tabla1 DB "Hola" ; Una tabla de 0Ah caracteres carac DB "a" .CODE INICIO: mov ax, @data mov ds, ax xor di, di mov bh, carac[0] numero: add cl, 1 bucle: mov bl, tabla1[di] inc di cmp bl, carac je numero cmp di, 05h jl bucle sub cl, 1 FIN: mov ah, 4ch int 21h end INICIO
Un saludo Javier
17
« en: Viernes 22 de Febrero de 2008, 12:04 »
Ok, ya he descubierto cual es el fallo...
Incremento di en mal sitio...
18
« en: Viernes 22 de Febrero de 2008, 11:57 »
Saludos, tengo el siguiente bucle en un programita: bucle: mov bl, tabla1[di] inc di cmp bl, carac je numero cmp di, 0Ah jnz bucle
Como veis, el bucle termina cuando di alcanza el valor 0Ah, pero el problema es que no termina cuando alcanza esa cantidad..... He probado con otras cantidades y no tengo ningun problema... ¿Que puede estar pasando? Un saludo Javier
19
« en: Viernes 22 de Febrero de 2008, 11:50 »
Gracias Eternal.
Ok. Seguiré tu consejo.
20
« en: Miércoles 20 de Febrero de 2008, 22:37 »
Hola, en un codigo tengo este array: memo DB 04h DUP (-4, 3h, 250, -250)
Si es cierto que el rango de DB es [127, -128], ¿por que no me da error el poner numeros como 250 o -250 en mi tabla?. Cuando supero 255 ó -256 si que se produce un error del tipo "Out of range". Por otra parte, tengo un codigo que deberia contar el numero de datos negativos en mi tabla (-4 y -250) pero no lo hace. Es este: xor di, di bucle2: shl memo[di], 1 adc cl, 0; Al final del bucle, bl contendrá el numero de datos negativos inc di cmp di, 04h jnz bucle2 mov ch, 04h sub ch, cl; Restamos el numero de datos negativos encontrados del numero de ; datos de la tabla (4). Así obtendremos el numero de datos positivos.
Un saludo Javi
21
« en: Miércoles 20 de Febrero de 2008, 22:16 »
Gracias,
efectivamente estoy trabajando con 16 bits (8086) y ensamblando con MASM 5.1.
22
« en: Miércoles 20 de Febrero de 2008, 13:07 »
Saludos, tengo que escribir un codigo que localice el mayor y el menor de entre 16 datos de un byte almacenados en una tabla, considerándolos como números sin signo. He escrito una parte. Esto: DOSSEG .MODEL SMALL .STACK 100h .DATA memo1 DB 10h DUP (0h, 1h, 2h, 3h, 4h, 5h, 6h, 7h, 8h, 9h, 0Ah, 0Bh, 0Ch, 0Dh, 0Eh, 0Fh) masalto DB ? masbajo DB ? .CODE INICIO: mov ax,@data mov ds,ax xor di, di ; Inicializamos a cero di mayor: mov masalto, bl END mayor mov masalto, memo1[di] mov masbajo, memo1[di] bucle: mov bl, memo1[di]; mov memo2[di], memo1[di]" esta prohibido, asi que inc di ; Incrementamos el contador cmp bl, masalto jg mayor cmp di, 10h ; Comprobamos que el contador no haya llegado a 10h jnz bucle FIN: mov ah, 4ch int 21h END INICIO
No me da error al ensamblar/enlazar, pero al cargarlo en codeview y ejecutarlo me dice "Illegal instruction".
23
« en: Martes 19 de Febrero de 2008, 19:30 »
Se les dio la gana; podian usar 8 bits de cualquier registro general.
Pero por ejemplo, el enlace de de la wikipedia que me has dejado, dice que solo se puede usar CX como contador de la instruccion loop. A pesar de esa restriccion, ¿podria entonces usar CL o CH en mi codigo en vez de BL? Gracias Javi
24
« en: Martes 19 de Febrero de 2008, 13:38 »
Saludos, en este codigo que pongo aqui abajo, el acarreo de la suma se pasa a bl. Segun he visto, el registro bl se usa en transferencias de datos entre la memoria y el procesador. ¿Por que se usa entonces bl si no estamos haciendo una transferencia entre la memoria y el procesador?¿Se podria haber usado cualquier otro registo aritmetico(bh, dl, dh...)? DOSSEG .MODEL SMALL .STACK 100h .DATA ;Segmento de datos. dato1 DB 35h ;Primer operando dato2 DB 47h ;Segundo operando resul DW ? ;Para almacenar el resultado .CODE INICIO: mov ax,@data mov ds,ax mov ah,dato1;Primer operando mov al,dato2;Segundo operando xor bl,bl;Pone a cero BL. Donde se guardará el acarreo...ANTES DE LA SUMA!!! add al,ah;Suma AL+AH y guarda el resultado en AL. CF se puede activar adc bl,0;Esta es la manera de almacenar el valor del acarreo (CF) de la suma ;(0 ó 1) en bl... mov ah,bl;En AX el resultado completo (2 bytes): SUMA + ACARREO. mov resul,ax;Guarda el resultado FIN: mov ah,4ch int 21h END inicio
Un saludo Javier
25
« en: Viernes 15 de Febrero de 2008, 21:24 »
Hola,
¿que aplicaciones tengo que descargar para empezar a programar (compilar, linkar,...) en ensamblador (8086)?
Lo he intentado descargando esta de aqui (donde pone "masm32.zip"):
webster.cs.ucr.edu/AsmTools/MASM/index.html
y despues de instalarlo me aparece un icono en el Escritorio que pone "MASM32 Editor". Despues pego el codigo de un .asm y le doy "Project>Assemble ASM file" pero me sale una ventana que dice:
masm32\bin\assmbl.bat No file loaded
Tengo Windows XP. No busco IDE's complicadas, tan solo algo como el link que he pegado arriba.
Javi
|
|
|