29 de mayo de 2009

Regular Expression - Expresiones Regulares


Hola a todos.. buscando una expresión regular que evaluara un URL, encontré este post con un enlace a una aplicación que contiene muchos tipos de expresiones regulares.. está demasiado fino.. espero les sea de utilidad.


El creador de la aplicación Ryan Swanson, la pueden ver directamente en el url http://ryanswanson.com/regexp/#start

22 de mayo de 2009

Utilizando el IViewCursor en Flex

Estuve haciendo una aplicación tipo buzón de correo. Tenía que encontrar el id de un usuario en la lista de contactos dado. Para encontrarlo dentro del ArrayCollection sin tener que hacer un for, utilizé un cursor, todo fino cuando encuentra lo que quiero, pero cómo obtener el index de lo que se encontró?... Bueh.. hice lo siguiente, el ArrayCollection tiene un método que se llama getItemIndex que recibe como paramétro un Objeto.. así que bueno.. esto fue lo que resolví.

1. Primero ordenamos la lista
private function sortCollection():void{
var col:ICollectionView = nuestroArrayCollection;
var sort:Sort = new Sort();
       
       //Los ordeno por id, 
       sort.fields = [new SortField("id",true,false,true)];
      
      //Asignamos la instancia de sort al CollectionView
      col.sort = sort;

      //Refrescamos la lista
      col.refresh();
}

2. Buscamos el id dentro de la colección de la siguiente manera:


//Creamos un cursor con la interfaz IViewCursor
private var myCursor          :IViewCursor;

//Asignamos a myCursor lo siguiente
myCursor = nuestroArrayCollection.createCursor()

//Usamos el método findAny un Object de lo que queremos buscar, en este caso mi arrayCollection tiene un atributo id, lo que hacemos es crear el objeto con esa información {id:studentId}
myCursor.findAny({id:studentId});

//Y finalmente, para obtener el indice o el objeto encontrado por el Cursor, usamos los métodos que ya trae el ArrayCollection (getItemAt, o getItemIndex)
indexContactList    = nuestroArrayCollection.getItemIndex(myCursor.current);


Y ya, es todo, leyendo un poco sobre el IViewCursor en langref explica que si tenemos una colección con ids únicos, el método findAny, es más efectivo que findFirst, o findLast.

Para más información: http://www.adobe.com/livedocs/flex/3/langref/mx/collections/IViewCursor.html