Weblogs Código

RecorteX

73 usuarios y 244 recortes de código
Usuario

Contraseña
Crear cuenta
asp csharp css fechas Flash html imagenes java javascript linux mysql oracle php sql SQLServer url vbnet web xhtml xml
Top Usuarios
fjmp76 (41)
albin (31)
josuebasurto (31)
juanjo (30)
pedrocaro (9)
stanz (8)
AndiXTRM (7)
Joserra (7)
miiglesi (6)
aplyca (5)
Top Etiquetas
php (38)
vbnet (28)
javascript (26)
html (25)
csharp (25)
java (24)
sql (18)
xml (13)
mysql (13)
css (10)
xhtml (7)
Flash (7)
imagenes (7)
fechas (6)
asp (6)
linux (6)
oracle (5)
url (5)
web (5)
SQLServer (5)
RecorteX es un repositorio público de código.
Puedes crear tu colección personal de recortes y compartirlos con todo el mundo.
Regístrate y participa.

Encontrar texto entre parentesis

Encontrar texto entre parentesis

 
  string output = txt.Split(new char[] { '(', ')' })[1];
 

SortableBindingList para Winforms

SortableBindingList para Winforms

hay que agregar el evento ColumnHeaderMouseClick al dataGridView

 
        private void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            SortOrder order = this.dataGridView1.Columns[e.ColumnIndex].HeaderCell.SortGlyphDirection;
            ListSortDirection _direction = (order == SortOrder.Descending) ? ListSortDirection.Descending : ListSortDirection.Ascending;
            this.dataGridView1.Sort(dataGridView1.Columns[e.ColumnIndex], _direction);
        }
 

Y la lista que usemos será la SortableBindingList del objeto

 
      public class SortableBindingList<T> : BindingList<T>
    {
        private ArrayList sortedList;
        private bool isSortedValue;
 
        public SortableBindingList()
        {
        }
 
        public SortableBindingList(IList<T> list)
        {
            foreach (object o in list)
            {
                this.Add((T)o);
            }
        }
 
        protected override bool SupportsSortingCore
        {
            get { return true; }
        }
 
 
        protected override bool IsSortedCore
        {
            get { return isSortedValue; }
        }
 
        ListSortDirection sortDirectionValue;
        PropertyDescriptor sortPropertyValue;
 
        protected override void ApplySortCore(PropertyDescriptor prop,
            ListSortDirection direction)
        {
            sortedList = new ArrayList();
 
            Type interfaceType = prop.PropertyType.GetInterface("IComparable");
 
            if (interfaceType == null && prop.PropertyType.IsValueType)
            {
                Type underlyingType = Nullable.GetUnderlyingType(prop.PropertyType);
 
                if (underlyingType != null)
                {
                    interfaceType = underlyingType.GetInterface("IComparable");
                }
            }
 
            if (interfaceType != null)
            {
                sortPropertyValue = prop;
                sortDirectionValue = direction;
 
                IEnumerable<T> query = base.Items;
                if (direction == ListSortDirection.Ascending)
                {
                    query = query.OrderBy(i => prop.GetValue(i));
                }
                else
                {
                    query = query.OrderByDescending(i => prop.GetValue(i));
                }
                int newIndex = 0;
                foreach (object item in query)
                {
                    this.Items[newIndex] = (T)item;
                    newIndex++;
                }
                isSortedValue = true;
                this.OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, -1));
 
            }
            else
            {
                throw new NotSupportedException("Cannot sort by " + prop.Name +
                    ". This" + prop.PropertyType.ToString() +
                    " does not implement IComparable");
            }
        }
 
        protected override PropertyDescriptor SortPropertyCore
        {
            get { return sortPropertyValue; }
        }
 
        protected override ListSortDirection SortDirectionCore
        {
            get { return sortDirectionValue; }
        }
 
    }
 

Redirect and Post in asp.net

Algo como Response.Redirect, pero para metodos post en vez de get

 
public static void RedirectAndPOST(Page page, string destinationUrl, NameValueCollection data)
{
//Prepare the Posting form
string strForm = PreparePOSTForm(destinationUrl, data);
//Add a literal control the specified page holding 
//the Post Form, this is to submit the Posting form with the request.
page.Controls.Add(new LiteralControl(strForm));
}
 
private static String PreparePOSTForm(string url, NameValueCollection data)
{
    //Set a name for the form
    string formID = "PostForm";
    //Build the form using the specified data to be posted.
    StringBuilder strForm = new StringBuilder();
    strForm.Append("<form id=\"" + formID + "\" name=\"" + 
                   formID + "\" action=\"" + url + 
                   "\" method=\"POST\">");
 
    foreach (string key in data)
    {
        strForm.Append("<input type=\"hidden\" name=\"" + key + 
                       "\" value=\"" + data[key] + "\">");
    }
 
    strForm.Append("</form>");
    //Build the JavaScript which will do the Posting operation.
    StringBuilder strScript = new StringBuilder();
    strScript.Append("<script language='javascript'>");
    strScript.Append("var v" + formID + " = document." + 
                     formID + ";");
    strScript.Append("v" + formID + ".submit();");
    strScript.Append("</script>");
    //Return the form and the script concatenated.
    //(The order is important, Form then JavaScript)
    return strForm.ToString() + strScript.ToString();
}
 

Serializar y deserializar a xml cualquier objeto

 
//Serializar a XML (UTF-16) un objeto cualquiera 
public static string SerializarToXml(this object obj) 
{ 
  try 
  { 
    StringWriter strWriter = new StringWriter(); 
    XmlSerializer serializer = new XmlSerializer(obj.GetType()); 
 
    serializer.Serialize(strWriter, obj); 
    string resultXml = strWriter.ToString(); 
    strWriter.Close(); 
 
    return resultXml; 
  } 
  catch 
  { 
      return string.Empty; 
  } 
} 
 
//Deserializar un XML a un objeto T 
public static T DeserializarTo<T>(this string xmlSerializado) 
{ 
  try 
  { 
    XmlSerializer xmlSerz = new XmlSerializer(typeof(T)); 
 
    using (StringReader strReader = new StringReader(xmlSerializado)) 
    { 
        object obj = xmlSerz.Deserialize(strReader); 
        return (T)obj; 
    } 
  } 
  catch { return default(T); } 
}
 

Serializar a UTF-8

 
    private static string ChangeXmlEncodingDeclaration(string txt)
    {
        XmlDocument doc= new XmlDocument();
        doc.LoadXml(txt);
        XmlElement element = doc.DocumentElement;
        XmlDeclaration xmlDeclaration;
        xmlDeclaration = doc.CreateXmlDeclaration("1.0", "utf-8", null);
        doc.ReplaceChild(xmlDeclaration, doc.FirstChild);
        return doc.OuterXml;
    }
 
    public static string Utf16ToUtf8(string utf16String)
    {
        // Get UTF16 bytes and convert UTF16 bytes to UTF8 bytes
        byte[] utf16Bytes = Encoding.Unicode.GetBytes(utf16String);
        byte[] utf8Bytes = Encoding.Convert(Encoding.Unicode, Encoding.UTF8, utf16Bytes);
 
        // Return UTF8 bytes as ANSI string
        string ret= Encoding.Default.GetString(utf8Bytes);
        return ret;
    }
 
    public static string SerializeToXmlUtf8(this object obj)
    {
        string ret = SerializeToXml(obj);
        ret = Utf16ToUtf8(ret);
        ret = ChangeXmlEncodingDeclaration(ret);
        return ret;
    }
 

Cambiar de string a byte[] de byte[] a string

 
static byte[] GetBytes(string str)
{
    byte[] bytes = new byte[str.Length * sizeof(char)];
    System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
    return bytes;
}
 
static string GetString(byte[] bytes)
{
    char[] chars = new char[bytes.Length / sizeof(char)];
    System.Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
    return new string(chars);
}
 

llamando form con jquery en symfony2

esta parte va en el view

 
 
<h3>Manejo Bodega</h3>
 
<form id='formBodega' action="{{ path(action,{'id': idPro}) }}" method="post">
        {{ form_widget(form) }}
        <input type="submit" value="Guardar" class="symfony-button-ajax"/>
    </form>
 
 
<script type="text/javascript">
            {# añadirmos una función al evento click de todos los enlaces a.notice_link, para
usar AJAX en vez de su comportamiento por defecto #}
$(document).ready(function(){
    $('input.symfony-button-ajax').click(function(event){
        event.preventDefault(); //cancela el comportamiento por defecto
        
        //alert("lol");
        
        $.ajax({
            type: "POST",
            url: $('#formBodega').attr('action'),
            data: $('#formBodega').serialize(),
            //cache: false,
            success: function(data){
                //$('#index-response').load($(this).attr('href'));
                $('#index-response').html(data);
                //alert("Success!");
                // Output something                  
            }});
        
        
        //$('#index-response').load($(this).attr('href')); //carga por ajax a la capa "notice_viewer"
    });
});
{# añadirmos una función al evento click de todos los enlaces a.notice_link, para
usar AJAX en vez de su comportamiento por defecto #}
       
            </script>
 

Ver foreign keys en la bd

Escribe aquí el texto

 
  
SELECT f.name AS ForeignKey,
OBJECT_NAME(f.parent_object_id) AS TableName,
COL_NAME(fc.parent_object_id,
fc.parent_column_id) AS ColumnName,
OBJECT_NAME (f.referenced_object_id) AS ReferenceTableName,
COL_NAME(fc.referenced_object_id,
fc.referenced_column_id) AS ReferenceColumnName
FROM sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc
ON f.OBJECT_ID = fc.constraint_object_id
 

Arrancar JVM con debug remoto activado

Se debe utilizar el siguiente parámetro de arranque:


  -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n

Edit Contacts Android

 
package com.uned.contacts;
 
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.ContentValues;
import android.content.DialogInterface;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds;
import android.view.View;
import android.widget.AdapterView;
import android.widget.SimpleCursorAdapter;
 
/**
 * Muestra una lista de todas las entradas de contactos de la base de datos.
 * Pulsando en cada contacto podremos añadir una nueva dirección de correo (se
 * añadirá la dirección 'ejemplo@email.com' por defecto).
 * 
 * <p>
 * Permisos necesarios: &lt;uses-permission
 * android:name="android.permission.READ_CONTACTS" /> &lt;uses-permission
 * android:name="android.permission.WRITE_CONTACTS" />
 * </p>
 */
public class ContactsEditActivity extends ListActivity implements
		AdapterView.OnItemClickListener, DialogInterface.OnClickListener {
 
	private static final String TEST_EMAIL = "ejemplo@email.com";
	private Cursor contactsCursor, emailCursor;
	private int selectedId;
	private static int i = 1;
 
	/*
	 * (non-Javadoc)
	 * 
	 * @see android.app.Activity#onCreate(android.os.Bundle)
	 */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
 
		// Campos de proyección de la query, nombre que se muestra en la agenda
		String[] projection = new String[] { ContactsContract.Contacts._ID,
				ContactsContract.Contacts.DISPLAY_NAME };
 
		// Devolverá todos los contactos ordenados por su DISPLAY_NAME.
		// Con la claúsula IN_VISIBLE_GROUP = 1 limitaremos el resultado a los
		// contactos visibles al usuario
		contactsCursor = managedQuery(ContactsContract.Contacts.CONTENT_URI,
				projection,
				ContactsContract.Contacts.IN_VISIBLE_GROUP + " = 1", null,
				ContactsContract.Contacts.DISPLAY_NAME);
 
		// Con SimpleCursosAdaptar 'adaptamos' el cursor 'contactsCursor'
		// obtenido de la consulta anterior para mostrarse como una ListView
		// básica
		SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this,
				android.R.layout.simple_list_item_1, contactsCursor,
				new String[] { ContactsContract.Contacts.DISPLAY_NAME },
				new int[] { android.R.id.text1 });
		setListAdapter(mAdapter);
 
		// Listener de acción cuando se pulsa en un contacto
		getListView().setOnItemClickListener(this);
	}
 
	/*
	 * Acción cuando se pulsa en un contacto. Se mostrará un diálogo con
	 * información del contacto seleccionado.
	 * 
	 * @see
	 * android.widget.AdapterView.OnItemClickListener#onItemClick(android.widget
	 * .AdapterView, android.view.View, int, long)
	 */
	@Override
	public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
 
		// Movemos el cursor a la posición del contacto seleccionado
		if (contactsCursor.moveToPosition(position)) {
			selectedId = contactsCursor.getInt(0); // columna _ID
 
			// Obtenemos los emails del contacto; consulta a la tabla de
			// Email 'CommonDataKinds.Email.DATA'
			emailCursor = getContentResolver().query(
					CommonDataKinds.Email.CONTENT_URI,
					new String[] { ContactsContract.Data._ID,
							CommonDataKinds.Email.DATA },
					ContactsContract.Data.CONTACT_ID + " = " + selectedId,
					null, null);
 
			// Construimos el diálogo con los diferentes emails del cursos
			// obtenido
			AlertDialog.Builder builder = new AlertDialog.Builder(this);
			builder.setTitle("Emails");
			builder.setCursor(emailCursor, this,
					ContactsContract.CommonDataKinds.Email.DATA);
			builder.setPositiveButton("Añadir", this);
			builder.setNegativeButton("Cancelar", null);
			builder.create().show();
		}
	}
 
	/*
	 * Acción cuando se pulsa en el botón de añadir del diálogo del emails del
	 * contacto.
	 * 
	 * @see
	 * android.content.DialogInterface.OnClickListener#onClick(android.content
	 * .DialogInterface, int)
	 */
	@Override
	public void onClick(DialogInterface dialog, int which) {
 
		// Un 'Contacto' conceptualmente representa una persona; estará
		// compuesto por todos los RawContacts que Android identifique que
		// representan a la misma persona.
 
		// Un 'RawContacts' representa una colección de 'Data' almacenados en el
		// dispositivo y asociados a una cuenta (generalmente Gmail)
 
		// 'Data' son las piexas de información asociadas a cada 'RawContact'
		// como el email, número de teléfono,...
 
		// Para añadir un dato nuevo, email en esta caso, se debe añadir a un
		// RAWContact
		// Por ello primero obtenemos el id del primer RawContact del contacto
		// seleccionado
		try {
			Cursor raw = getContentResolver().query(
					ContactsContract.RawContacts.CONTENT_URI,
					new String[] { ContactsContract.Contacts._ID },
					ContactsContract.Data.CONTACT_ID + " = " + selectedId,
					null, null);
			if (!raw.moveToFirst()) {
				return;
			}
			// Id del primer RawContact
			int rawContactId = raw.getInt(0);
 
			// ContentValues nos servirá para construir el dato a añadir o
			// modificar
			ContentValues values = new ContentValues();
			switch (which) {
			case DialogInterface.BUTTON_POSITIVE:
				// Se pulsa el botón aceptar para añadir un nuevo email
 
				// Asociado al RawContact del contacto seleccionado
				values.put(
						ContactsContract.CommonDataKinds.Email.RAW_CONTACT_ID,
						rawContactId);
 
				// Especificamos el MIMETYPE
				values.put(
						ContactsContract.Data.MIMETYPE,
						ContactsContract.CommonDataKinds.Email.CONTENT_ITEM_TYPE);
				// El tipo de dato y el valor a añadir
				values.put(ContactsContract.CommonDataKinds.Email.DATA,
						TEST_EMAIL);
				values.put(ContactsContract.CommonDataKinds.Email.TYPE,
						ContactsContract.CommonDataKinds.Email.TYPE_OTHER);
				// URI de inserción y modificación (diferente de la de lecutura
				// ContactsContract.Contacts.CONTENT_URI)
				getContentResolver().insert(ContactsContract.Data.CONTENT_URI,
						values);
				break;
			default:
				// Si se pulsa sobre la dirección simplemente la actualizamos
				// con otro valor.
 
				values.put(ContactsContract.CommonDataKinds.Email.DATA, (i++)
						+ TEST_EMAIL);
				values.put(ContactsContract.CommonDataKinds.Email.TYPE,
						ContactsContract.CommonDataKinds.Email.TYPE_OTHER);
				getContentResolver().update(
						ContactsContract.Data.CONTENT_URI,
						values,
						ContactsContract.Data._ID + " = "
								+ emailCursor.getInt(0), null);
				break;
			}
 
		} finally {
			// Cerramos el cursor
			emailCursor.close();
		}
	}
}
 

List contacts android

 
package com.uned.contacts;
 
import android.app.AlertDialog;
import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.CommonDataKinds;
import android.view.View;
import android.widget.AdapterView;
import android.widget.SimpleCursorAdapter;
 
/**
 * Muestra una lista de todas las entradas de contactos de la base de datos.
 * Pulsando en cada contacto podremos ver información más detallada de cada uno,
 * en concreto, email's, números de teléfono y direcciones.
 * 
 * <p>
 * Permisos necesarios: &lt;uses-permission
 * android:name="android.permission.READ_CONTACTS" />
 * </p>
 */
public class ContactsActivity extends ListActivity implements
		AdapterView.OnItemClickListener {
	Cursor contactsCursor;
 
	/*
	 * (non-Javadoc)
	 * 
	 * @see android.app.Activity#onCreate(android.os.Bundle)
	 */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
 
		// Campos de proyección de la query, nombre que se muestra en la agenda
		String[] projection = new String[] { ContactsContract.Contacts._ID,
				ContactsContract.Contacts.DISPLAY_NAME };
 
		// Devolverá todos los contactos ordenados por su DISPLAY_NAME.
		// Con la claúsula IN_VISIBLE_GROUP = 1 limitaremos el resultado a los
		// contactos visibles al usuario
		contactsCursor = managedQuery(ContactsContract.Contacts.CONTENT_URI,
				projection,
				ContactsContract.Contacts.IN_VISIBLE_GROUP + " = 1", null,
				ContactsContract.Contacts.DISPLAY_NAME);
 
		// Con SimpleCursosAdaptar 'adaptamos' el cursor 'contactsCursor'
		// obtenido de la consulta anterior para mostrarse como una ListView
		// básica
		SimpleCursorAdapter mAdapter = new SimpleCursorAdapter(this,
				android.R.layout.simple_list_item_1, contactsCursor,
				new String[] { ContactsContract.Contacts.DISPLAY_NAME },
				new int[] { android.R.id.text1 });
		setListAdapter(mAdapter);
 
		// Listener de acción cuando se pulsa en un contacto
		getListView().setOnItemClickListener(this);
	}
 
	/*
	 * Acción cuando se pulsa en un contacto. Se mostrará un diálogo con
	 * información del contacto seleccionado.
	 * 
	 * @see
	 * android.widget.AdapterView.OnItemClickListener#onItemClick(android.widget
	 * .AdapterView, android.view.View, int, long)
	 */
	@Override
	public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
 
		// Movemos el cursor a la posición del contacto seleccionado
		if (contactsCursor.moveToPosition(position)) {
 
			// Cursores de la información que vamos a obtener del contacto
			// seleccionado
			Cursor emailCursor = null;
			Cursor phoneCursor = null;
			Cursor addressCursor = null;
 
			try {
				int selectedId = contactsCursor.getInt(0); // columna _ID
 
				// Obtenemos los emails del contacto; consulta a la tabla de
				// Email 'CommonDataKinds.Email.DATA'
				emailCursor = getContentResolver().query(
						CommonDataKinds.Email.CONTENT_URI,
						new String[] { CommonDataKinds.Email.DATA },
						ContactsContract.Data.CONTACT_ID + " = " + selectedId,
						null, null);
 
				// Obtenemos los números de teléfono del contacto; consulta a la
				// tabla de Phone 'CommonDataKinds.Phone.NUMBER'
				phoneCursor = getContentResolver().query(
						CommonDataKinds.Phone.CONTENT_URI,
						new String[] { CommonDataKinds.Phone.NUMBER },
						ContactsContract.Data.CONTACT_ID + " = " + selectedId,
						null, null);
 
				// Obtenemos las direcciones del contacto; consulta a la
				// tabla de StructuredPostal
				// 'CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS'
				addressCursor = getContentResolver()
						.query(CommonDataKinds.StructuredPostal.CONTENT_URI,
								new String[] { CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS },
								ContactsContract.Data.CONTACT_ID + " = "
										+ selectedId, null, null);
 
				// Construimos la información a mostrar en el diálogo
				StringBuilder sb = new StringBuilder();
				// Número de emails
				sb.append(emailCursor.getCount() + " Emails\n");
				// Emails
				if (emailCursor.moveToFirst()) {
					do {
						sb.append("Email: " + emailCursor.getString(0));
						sb.append('\n');
					} while (emailCursor.moveToNext());
					sb.append('\n');
				}
				// Número de teléfonos
				sb.append(phoneCursor.getCount() + " Teléfonos\n");
				// Teléfonos
				if (phoneCursor.moveToFirst()) {
					do {
						sb.append("Teléfono: " + phoneCursor.getString(0));
						sb.append('\n');
					} while (phoneCursor.moveToNext());
					sb.append('\n');
				}
				// Direcciones
				sb.append(addressCursor.getCount() + " Direcciones\n");
				// Dirección
				if (addressCursor.moveToFirst()) {
					do {
						sb.append("Dirección:\n" + addressCursor.getString(0));
					} while (addressCursor.moveToNext());
					sb.append('\n');
				}
 
				// Construimos el diálogo con la información del contacto
				// seleccionado
				AlertDialog.Builder builder = new AlertDialog.Builder(this);
				builder.setTitle(contactsCursor.getString(1)); // DISPLAY_NAME
				builder.setMessage(sb.toString());
				builder.setPositiveButton("Aceptar", null);
				builder.create().show();
 
			} finally {
				// Cerramos los cursores utilizados
				emailCursor.close();
				phoneCursor.close();
				addressCursor.close();
			}
		}
	}
}
 
Proyecto: Juanjo Navarro, 2006 - Diseño: Albin