| 
			 | 
			
				
				
	
		 
			
		
	
	
		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
					 
				 
				
				
			 
		 
		
 
				 
				 |   
			 | 
			
			 |