Páginas

martes, 24 de febrero de 2015

HTML y CSS: Varias formas de alinear un DIV dentro de otro DIV

Esto es lo que hay, tres elementos dentro de un contenedor:
Este es el HTML:
Este es el CSS:
#container{
 height: 400px;
 width: 700px;
 background-color: orange;
}

#item{
 height: 100px;
 width: 200px;
 background-color: yellow;
 border: 1px solid black;

}

Primero hay que agregar la propiedad de display:inline-block; a los items para que se ordenen en una sola linea
Ahora podemos alinear verticalmente aplicando display:flex; align-items:center en el contenedor y margin:0 auto; en los elementos internos para alinear horizontalmente. El resultado:
Y aqui el CSS:
#container{
 height: 400px;
 width: 700px;
 background-color: orange;
        display:flex;
        align-items:center;
}

#item{
 height: 100px;
 width: 200px;
 background-color: yellow;
 border: 1px solid black;
 display: inline-block;
        margin: 0 auto;
}

lunes, 23 de febrero de 2015

CSS: Como alinear horizontalmente dos DIVs sin dejar espacio entre ellos.

La forma mas sencilla que encontré es mediante el uso de la propiedad display:table para el contenedor y display:table-cell para el elemento.

Y para que exista cero espacio entre ellos, en el contenedor se utiliza tambien la propiedad border-spacing:0px

 En el ejemplo el borde rojo representa el ancho de la pagina:

Este es el HTML:

<div id="body">
      <div id="contenedor">
                <div id="elemento">
                         <h3> Elemento 1</h3>
                  </div>
                <div id="elemento">
                          <h3>Elemento 2</h3>
                </div>
       </div>
</div>


El CSS:

#body{
        height: 500px;
        border:2px solid red;
    }
    #contenedor{
        height:300px;
        width: 100%;
        margin:0px;
        display:table;
        border-spacing:0px;
    }
    #elemento{
        height:100%;
        width:50%;
        border: 1px solid black;
        display:table-cell;
    }


Y el resutado:



Elemento 1

Elemento 2

viernes, 13 de febrero de 2015

Una idea nueva para practicar todo lo aprendido

Para mezclar todos esos conceptos basicos que he estudiado de HTML, CSS, Javascript, y VBA voy a crear una página que cuyo contenido será un mini curso de VBA.
Este es el "pensum" que se ma ha ocurrido hasta ahora:


Bueno solo falta lo mas facil, desarrollar cada punto, ja! Acepto sugerencias...

viernes, 6 de febrero de 2015

Python: Como extraer texto de entre varias lineas

Me plantearon este problema, mas de mil registros similares a este:


DSP BRDMFRINFO:CN=0,SRN=80,SN=0;
CDLAGATAZOW08
+++    CDLAGATAZOW08        2015-02-06 09:58:08
O&M    #356423
%%/*36154325*/DSP BRDMFRINFO:CN=0,SRN=80,SN=0;%%
RETCODE = 0  Operation succeeded.

Display Board Manufacturing Information
---------------------------------------
               Type  =  WD5MJRUCC50
      Serial Number  =  210231964410C3000394
        Description  =  DBS3900,WD5MJRUCC50,MRRU V2,Multi-mode Multi-carries Remote Radio Unit(TX869-894MHz/RX824-849MHz,-48VDC,2.5G)
Date of Manufacture  =  2012-03-19
             Vendor  =  Huawei
       Issue Number  =  00
(Number of results = 1)


---    ENDDSP BRDMFRINFO:CN=0,SRN=80,SN=0;

Y de cada regisstro debe quedar una linea asi:

CDLAGATAZOW08,  WD5MJRUCC50

Como decirle a Python que extraiga lo que está despues de "+++" y lo que está despues de "Type"?
Bueno con una expresion regular basta, pero el problema es que se encuentran en diferentes líneas.

Lo resolví utilizando un "flag" que se encendiera cuando encontrara el "+++" en una linea, y que se apagara cuando encontrara "ENDDSP"

Mientras el flag estuviera "on" grabaría el contenido de la linea en una lista. Luego busco los patrones de texto y los escribo en otro archivo. Aqui el codigo:

import re
inFile = open("d:/byron/type.txt")
outFile = open("d:/byron/typeResponse.txt", "w")
siteList = []

#un listado con los nombres de los sitios

for line in inFile:
    match = re.search(r'^\+{3}\s{4}\w+W08', line)
    if match:
        siteName = match.group()[7:]
        siteList.append(siteName)

inFile.close()

#convierte la lista a set para evitar duplicados
siteList = set(siteList)

#crea listas con los nombres de los sitios y agrega las lineas ente +++ y ---

for site in siteList: #toma cada nombre de sitios
    inFile = open("d:/byron/type.txt")
    flag = "off"
    sList = [] # crea una lista con los datos del sitio
    for line in inFile: #lo busca en cada linea del archivo
        if ("+++" in line) and (site in line): #si encuentra el comando enviado al sitio
            #print "Flag on " + line
            flag = "on" #enciende la grabacion
        if "ENDDSP" in line:
            flag = "off" #apaga la grabacion
            #print "flag off " + line
            #deja grabar las lineas

        if flag == "on":
            sList.append(line)

    for element in sList: #toma cada dato grabado del sitio
        if "Type" in element:
            match = re.search(r'=\s\s.+', element)
            if match:
                print site +", "+ match.group()[3:] + "\n"
                outFile.write(site +", "+ match.group()[3:] + "\n")
     

    #una vez llenada la lista de datos del sitio
    #busca si existe BoardType

    inFile.close()
 
outFile.close()