<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5523525714977873646</id><updated>2011-12-08T13:28:37.757-08:00</updated><category term='Redes'/><category term='Php'/><category term='Visual Basic 6.0'/><category term='Varios'/><category term='Base de Datos'/><category term='JavaScript'/><category term='Html'/><category term='Java'/><category term='Programación General'/><category term='Mysql'/><title type='text'>Shark ' VR</title><subtitle type='html'>Blog con contenidos referentes a la programación: ActionScript, C, C++,Java,JavaScript,Html,Php,Visual Basic 6.0. Contiene Tutoriales y algunos codigos que pueden despejar muchas dudas.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default?start-index=101&amp;max-results=100'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>117</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-4383837760440143191</id><published>2009-11-20T19:42:00.001-08:00</published><updated>2009-11-20T19:42:50.695-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Función Name para el manejo de archivos y directorios en visual basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Name se utiliza para renombrar archivos y directorios. Esta función no se puede utilizar para renombrar archivos abiertos. &lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;Name "path del archivo viejo a renombrar" as "path y nombre nuevo del archivo"&lt;br /&gt;&lt;br /&gt;También con esta sentencia podemos mover archivos y directorios a otra ubicación. para ello debemos cambiar en el segundo parámetro la ruta del archivo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-4383837760440143191?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/4383837760440143191/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=4383837760440143191' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4383837760440143191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4383837760440143191'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/11/funcion-name-para-el-manejo-de-archivos.html' title='Función Name para el manejo de archivos y directorios en visual basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8441679937510436263</id><published>2009-11-20T19:41:00.001-08:00</published><updated>2009-11-20T19:41:43.361-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Función FileLen para el manejo de Archivos y directorios en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Esta función nos devuelve el tamaño en bytes de un archivo. &lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;Dim tamaño As Long&lt;br /&gt;&lt;br /&gt;tamaño = FileLen("c:\windows\system32\control.exe")&lt;br /&gt;&lt;br /&gt;MsgBox tamaño &amp; " bytes"&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;FileLen es muy útil para trabajar con archivos aleatorios, ya que si queremos conocer la cantidad de registros que tiene el archivo, debemos dividir el tamaño del archivo por el tamaño de la estructura. &lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;Private Type t_personas&lt;br /&gt;&lt;br /&gt;nombre As String * 20&lt;br /&gt;apellido As String * 20&lt;br /&gt;&lt;br /&gt;End Type&lt;br /&gt;&lt;br /&gt;Dim cant_reg As Long&lt;br /&gt;&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;&lt;br /&gt;cant_reg = FileLen("c:\miarchivo.dat") / Len(t_personas)&lt;br /&gt;&lt;br /&gt;End Sub&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8441679937510436263?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8441679937510436263/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8441679937510436263' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8441679937510436263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8441679937510436263'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/11/funcion-filelen-para-el-manejo-de.html' title='Función FileLen para el manejo de Archivos y directorios en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-920057904705459977</id><published>2009-11-20T19:39:00.000-08:00</published><updated>2009-11-20T19:40:05.614-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Función kill para el manejo de ficheros y directorios en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La función kill se utiliza para eliminar archivos. También es muy fácil de utilizar, y el único parámetro que lleva es la ruta del archivo que queremos eliminar. Si queremos eliminar varios archivos de un directorio podemos utilizar el comodín"*", y si queremos excluir ciertos archivos utilizamos el comodín "?".&lt;br /&gt;&lt;br /&gt;&lt;em&gt;kill "c:\*.txt"&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-920057904705459977?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/920057904705459977/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=920057904705459977' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/920057904705459977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/920057904705459977'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/11/funcion-kill-para-el-manejo-de-ficheros.html' title='Función kill para el manejo de ficheros y directorios en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8189173821627179352</id><published>2009-11-20T19:36:00.001-08:00</published><updated>2009-11-20T19:36:38.802-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Función MkDir para el manejo de ficheros y directorios en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Esta función se utiliza para crear directorios, pero crea un directorio por vez, es decir que no crea varios niveles al mismo tiempo. La sintaxis es:&lt;br /&gt;&lt;br /&gt;MkDir "Ruta directorio"&lt;br /&gt;&lt;br /&gt;para poder crear un Directorio que contiene varios subdirectorios, podemos hacer lo siguiente:&lt;br /&gt;&lt;br /&gt;El ejemplo despliega un InputBox para ingresar el path a crear:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub Command1_Click()&lt;br /&gt;&lt;br /&gt;Dim i As Integer&lt;br /&gt;Dim Array_Dir As Variant&lt;br /&gt;Dim Sub_Dir As String&lt;br /&gt;Dim El_Path As String&lt;br /&gt;&lt;br /&gt;El_Path = InputBox("Escriba la ruta del directorio a crear" &amp; _&lt;br /&gt;          "con los subdirectorios", " Crear varios niveles de directorios")&lt;br /&gt;    &lt;br /&gt;If El_Path = vbNullString Then Exit Sub&lt;br /&gt;    &lt;br /&gt;    'Desglosa el path&lt;br /&gt;    Array_Dir = Split(El_Path, "\")&lt;br /&gt;    &lt;br /&gt;    El_Path = vbNullString&lt;br /&gt;    &lt;br /&gt;    'Recorre el array anterior para ir creando uno por uno&lt;br /&gt;    For i = LBound(Array_Dir) To UBound(Array_Dir)&lt;br /&gt;        &lt;br /&gt;        Sub_Dir = Array_Dir(i)&lt;br /&gt;&lt;br /&gt;        If Len(Sub_Dir) &gt; 0 Then&lt;br /&gt;           El_Path = El_Path &amp; Sub_Dir &amp; "\"&lt;br /&gt;&lt;br /&gt;           If Right$(Sub_Dir, 1) &lt;&gt; ":" Then&lt;br /&gt;              ' Verificamos que no exista&lt;br /&gt;              If Dir$(El_Path, vbDirectory) = vbNullString Then&lt;br /&gt;                 'Crea la carpeta&lt;br /&gt;                 Call MkDir(El_Path)&lt;br /&gt;              End If&lt;br /&gt;           End If&lt;br /&gt;        End If&lt;br /&gt;    Next i&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8189173821627179352?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8189173821627179352/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8189173821627179352' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8189173821627179352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8189173821627179352'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/11/funcion-mkdir-para-el-manejo-de.html' title='Función MkDir para el manejo de ficheros y directorios en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-2703982203944398288</id><published>2009-11-20T19:34:00.001-08:00</published><updated>2009-11-20T19:34:36.280-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Función FileCopy para el manejo de ficheros y directorios en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;FileCopy nos permite copiar archivos. Esta función es muy fácil de usar. ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;FileCopy "origen", "destino"&lt;br /&gt;&lt;br /&gt;Nota: si el archivo existe la función lo sobre escribe.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-2703982203944398288?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/2703982203944398288/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=2703982203944398288' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2703982203944398288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2703982203944398288'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/11/funcion-filecopy-para-el-manejo-de.html' title='Función FileCopy para el manejo de ficheros y directorios en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-6926910971698937267</id><published>2009-11-20T19:32:00.000-08:00</published><updated>2009-11-20T19:33:07.420-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Función Dir para el manejo de ficheros y directorios en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La función Dir se utiliza o para buscar archivos y devuelve una cadena que representa el nombre de un archivo o directorio de acuerdo a un determinado patrón de búsqueda. La sintaxis de la función es: &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dir (ruta, atributos)&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;En el parámetro ruta debemos indicar el path de un archivo, directorio o unidad. Si el path no existe, la función Dir devuelve una cadena vacía.&lt;br /&gt;&lt;br /&gt;En el parámetro atributos podemos especificar los siguientes:&lt;br /&gt;&lt;br /&gt;vbnormal : cualquier atributo de archivo. &lt;br /&gt;vbreadonly : archivos de solo lectura. &lt;br /&gt;vbhidden: archivos ocultos &lt;br /&gt;vbsystem : archivos de sistema &lt;br /&gt;vbvolume : etiqueta de volumen de una unidad &lt;br /&gt;vbdirectory : directorios &lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;Si el archivo existe Dir devuelve "autoexec.bat"&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Archivoabuscar = Dir("c:\autoexec.bat")&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;También podemos utilizar los comodines * y ? para filtrar búsquedas.&lt;br /&gt;&lt;br /&gt;En este ejemplo devuelve el primer archivo exe que encuentra, si es que existe.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Archivoabuscar = Dir("c:\windows\*.exe")&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;En este ejemplo la función Dir devuelve directorios además de archivos&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Archivoabuscar = Dir("c:\, vbdirectory")&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;El único inconveniente de esta función es que siempre devuelve el primer archivo que encuentra. Para que continúe buscando los demás archivos debemos poner la función sin parámetros. Ejemplo&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim archivo As String&lt;br /&gt;&lt;br /&gt;archivo = Dir("c:\*.exe")&lt;br /&gt;&lt;br /&gt;While archivo &lt;&gt; ""&lt;br /&gt;archivo = Dir&lt;br /&gt;Wend&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;En el ejemplo anterior buscará todos los archivos exe en el directorio c:\. cuando ya no encuentre mas devolverá una cadena vacía y saldrá del bucle While.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Este otro ejemplo verifica si un archivo existe:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Function Verificar_Existe(path) As Boolean&lt;br /&gt;    &lt;br /&gt;    If Len(Trim$(Dir$(path))) Then&lt;br /&gt;        Verificar_Existe = True&lt;br /&gt;    Else&lt;br /&gt;        Verificar_Existe = False&lt;br /&gt;    End If&lt;br /&gt;    &lt;br /&gt;    MsgBox Verificar_Existe&lt;br /&gt;    &lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;&lt;br /&gt;Call Verificar_Existe("c:\autoexec.bat")&lt;br /&gt;&lt;br /&gt;End Sub &lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-6926910971698937267?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/6926910971698937267/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=6926910971698937267' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6926910971698937267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6926910971698937267'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/11/funcion-dir-para-el-manejo-de-ficheros.html' title='Función Dir para el manejo de ficheros y directorios en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-7127837661752665751</id><published>2009-11-20T19:31:00.001-08:00</published><updated>2009-11-20T19:31:48.000-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Posicionarse en un registro determinado con Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Supongamos que tenemos un archivo aleatorio que contiene 452 registros. Ahora queremos recuperar los datos del registro 258. Para posicionarse en un determinado registro hay una sentencia , hay una sentencia llamada Seek. Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Seek #1, 258&lt;br /&gt;Get #1, , mivariable&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;si queremos posicionarnos en un registro determinado, pero en vez de leer, queremos grabar datos, hacemos la misma operación pero con la sentencia Put:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Seek #1, 258&lt;br /&gt;Put #1, , mivariable&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-7127837661752665751?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/7127837661752665751/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=7127837661752665751' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7127837661752665751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7127837661752665751'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/11/posicionarse-en-un-registro-determinado.html' title='Posicionarse en un registro determinado con Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-6463723596221742878</id><published>2009-11-20T19:30:00.001-08:00</published><updated>2009-11-20T19:30:31.502-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Leer datos en archivos aleatorios en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para leer los registros o datos de un archivo aleatorio se utiliza la sentencia Get. Esta sentencia es exactamente igual que Put, pero la diferencia es que en vez de grabar los datos los recupera para poder utilizarlos luego en el programa.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-6463723596221742878?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/6463723596221742878/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=6463723596221742878' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6463723596221742878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6463723596221742878'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/11/leer-datos-en-archivos-aleatorios-en.html' title='Leer datos en archivos aleatorios en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-1358915536197194247</id><published>2009-11-20T19:27:00.000-08:00</published><updated>2009-11-20T19:28:35.933-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Grabar datos en archivos aleatorios en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para grabar datos en un archivo de acceso aleatorio se utiliza la sentencia Put. &lt;br /&gt;&lt;br /&gt;Un ejemplo paso a paso:&lt;br /&gt;&lt;br /&gt;primero declaramos una estructura de datos que contendrá la información de cada registro:&lt;br /&gt;&lt;br /&gt;Private Type t_empleados&lt;br /&gt;nombre As String * 15&lt;br /&gt;apellido As String * 15&lt;br /&gt;dirección As String * 30&lt;br /&gt;edad As Integer&lt;br /&gt;End Type&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Luego creamos una variable que sea de tipo t_empleados.&lt;br /&gt;&lt;br /&gt;Dim empleados As t_empleados&lt;br /&gt;Ahora abrimos el archivo e indicamos en la función Len el tamaño de la estructura&lt;br /&gt;&lt;br /&gt;Open "datos.dat" For Random As #1 Len = Len(clientes)&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Ahora le asignamos un valor a cada campo de la estructura de esta forma:&lt;br /&gt;&lt;br /&gt;empleados.nombre = "Carlos"&lt;br /&gt;empleados.apellido = "Martinez"&lt;br /&gt;empleados.dirección = "Avenida 9 de julio n° 2054"&lt;br /&gt;empleados.edad = 45&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Ahora grabamos en el registro n°1 del archivo los datos de esta forma:&lt;br /&gt;&lt;br /&gt;Put #1, 1, empleados&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Si queremos grabar mas datos, por ejemplo en el registro n° 2 del archivo hacemos lo siguiente:&lt;br /&gt;&lt;br /&gt;empleados.nombre = "María"&lt;br /&gt;empleados.apellido = "Gonzales"&lt;br /&gt;empleados.dirección = "Avenida 13 n° 1100"&lt;br /&gt;empleados.edad = 35&lt;br /&gt;&lt;br /&gt;Put #1, 2, empleados&lt;br /&gt;&lt;br /&gt;Close #1&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;como vemos ver la sentencia Put lleva 3 parámetros. El primero indica el numero de archivo abierto en el cual estamos trabajando. en el segundo debemos indicar el número de registro en el que se grabarán los datos. Si no ponemos el número de registro, los datos se grabarán en el último registro. Por último en el tercer parámetro le pasamos la variable asociada con la estructura de datos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-1358915536197194247?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/1358915536197194247/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=1358915536197194247' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/1358915536197194247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/1358915536197194247'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/11/grabar-datos-en-archivos-aleatorios-en.html' title='Grabar datos en archivos aleatorios en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-270680073229041723</id><published>2009-11-20T19:25:00.000-08:00</published><updated>2009-11-20T19:26:09.292-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Archivos aleatorios o directos con Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A diferencia de los archivos secuenciales, los archivos aleatorios almacenan datos en forma de registros. Como habíamos dicho en el capítulo anterior para leer datos de un archivo secuencial había que leer todo el archivo, es decir que no podíamos leer por ejemplo los datos que estuviesen en la línea 35 del mismo sin antes pasar por todos los datos anteriores, por eso su nombre de archivo secuencial. &lt;br /&gt;&lt;br /&gt;En cambio los archivos aleatorios, también llamados archivos directos, almacenan los datos con una estructura diferente. Los datos se guardan en registros mediante una estructura definida de tipo Type (estructura definida por nosotros) también llamada UDT&lt;br /&gt;&lt;br /&gt;Por ejemplo si tuviesemos 25 registros, cada uno con datos (apellido, email, telefono,etc..), y quisiera acceder al registro 17, puedo leer los datos del registro 17 sin tener que leer los 16 registros anteriores, ganando con ello mas velocidad y teniendo una estructura de datos definida.&lt;br /&gt;&lt;br /&gt;Para abrir un archivo aleatorio para trabajar con él, se utiliza la sentencia Open con algunos cambios en lo que se refiere a los archivos secuenciales&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;open "elarchivo.dat" for random as #1 len = len(mivariable)&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Como podemos ver para abrir un archivo de acceso aleatorio se utiliza la palabra Random (aleatorio). Luego debemos indicar el número de archivo para identificarlo, y por último una opción nueva : Len.&lt;br /&gt;&lt;br /&gt;cada registro en el archivo, que es una estructura de datos Type, tiene que tener una longitud fija. Mediante la función Len de visual Basic debemos indicar el tamaño de la estructura de datos que vamos a utilizar. para que quede mas claro un ejemplo:&lt;br /&gt;&lt;br /&gt;Primero definimos una estructura de datos:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Private Type t_clientes&lt;br /&gt;&lt;br /&gt;nombre As String * 20&lt;br /&gt;apellido As String * 15&lt;br /&gt;dirección As String * 30&lt;br /&gt;edad As Integer&lt;br /&gt;&lt;br /&gt;End Type&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Después creamos una variable llamada clientes de tipo t_clientes&lt;br /&gt;&lt;br /&gt;Dim clientes As t_clientes&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;ahora abrimos nuestro archivo, y en el parámetro de la función Len le pasamos la variable para que visual basic calcule el tamaño de la estructura t_clientes &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Open "datos.dat" For Random As #1 Len = Len(clientes)&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;La estructura de datos debe tener un tamaño fijo, no datos variables como en el caso de los archivos secuenciales, de ahí que se indicara en el Type en las variables mediante el asterisco en el caso de los String.&lt;br /&gt;&lt;br /&gt;En cada campo de la estructura de datos debemos indicar el tamaño de la variable. En el caso del campo nombre de tipo string le hemos asignado una longitud fija de 20 bytes, en el apellido 15 y en la dirección 30 bytes. La variable o el campo edad que es de tipo integer, no debemos indicar el tamaño de la variable, ya que sabemos que un número integer ocupa 2 bytes.&lt;br /&gt;&lt;br /&gt;En total esta estructura t_clientes tiene una longitud de 67 bytes (30 + 20 + 15 + 2 ).&lt;br /&gt;&lt;br /&gt;Si no indicáramos en la sentencia Open el tamaño de la estructura, visual basic, por defecto asumiría la estructura de un tamaño de 128 bytes, y si nuestra estructura tendría mayor tamaño ocurriría un error en tiempo de ejecución, por lo cual siempre debemos utilizar la función len para calcular el tamaño de la misma.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-270680073229041723?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/270680073229041723/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=270680073229041723' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/270680073229041723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/270680073229041723'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/11/archivos-aleatorios-o-directos-con.html' title='Archivos aleatorios o directos con Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8366997189208928073</id><published>2009-06-28T09:46:00.001-07:00</published><updated>2009-06-28T09:46:56.051-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Escribir datos en archivos de texto con Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para escribir datos en archivos de texto se utiliza la sentencia Print y Write.&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim nombre As String&lt;br /&gt;                Dim edad As Integer&lt;br /&gt;                Dim telefono As String &lt;br /&gt;                Open "c:\miarchivo.txt" For Append As #1Print #1, "esta es una línea"&lt;br /&gt;                  Print #1, "esta es otra línea"&lt;br /&gt;                  Print #1, nombre, edad, telefonoClose #1 &lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;En este ejemplo agregamos datos a un archivo existente llamado miArchivo.txt con la sentencia Print.&lt;br /&gt;&lt;br /&gt;Primero abrimos el archivo con Open. luego la sentencia Print lleva 2 parámetros. el primero indica el archivo que estamos manipulando (el archivo n°1, dentro del código), el segundo parámetro indica los datos que se agregarán en el mismo. En el segundo parámetro podemos poner un dato directamente (una cadena, número, etc...),, por último cerramos el archivo.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Escribir datos con la sentencia Write&lt;br /&gt;&lt;br /&gt;A diferencia de Print, la sentencia Write escribe datos en un archivo separados por comas. &lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Dim nombre As StringDim apellido As String &lt;br /&gt;apellido = "Peres"&lt;br /&gt;nombre = "Carlos"Open App.Path &amp; "\Archivo.txt" For Output As #1Write #1, nombre, apellidoClose #1 &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Como podemos ver la sentencia Write escribe los datos en el archivo separados por coma. En la primera línea escribirá el contenido de las variables nombre y apellido . También se pueden pasar los datos directamente a Write sin usar variables, por ejemplo:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Write #1, "Un dato", "Otro dato", "Otro mas"&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Nota importante: cuando escribimos datos con la sentencia Print se utiliza la sentencia Line Input para leer los datos del archivo. En cambio cuando escribimos datos separados por comas con la sentencia Write debemos utilizar la sencia Input&lt;br /&gt;&lt;br /&gt;Para que esta página no sea tan extensa, he armado 10 ejercicios que utilizan todo lo visto hasta aquí, o sea el tema relacionado a los archivos secuenciales. Dentro del código se encuentra detallado cada paso y lo podés descargar al final de esta página.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8366997189208928073?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8366997189208928073/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8366997189208928073' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8366997189208928073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8366997189208928073'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/06/escribir-datos-en-archivos-de-texto-con.html' title='Escribir datos en archivos de texto con Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-1060973091665351867</id><published>2009-06-28T09:44:00.000-07:00</published><updated>2009-06-28T09:45:02.848-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Leer el contenido de un archivo de texto con la función Input con Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La función input, a diferencia de Line Input que Lee por línea, Input lee todo el contenido del archivo de una sola ves, es decir no necesitamos, como en el ejemplo anterior, utilizar un bucle.&lt;br /&gt;&lt;br /&gt;El modo de usarlo es el siguiente:&lt;br /&gt;&lt;br /&gt;Primero se abre el archivo con Open, por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Open Path_Archivo For Input As #1&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Luego se asigna a una variable, el contenido que devolverá la función Input:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Contenido = Input(LOF(1), #1)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Un ejemplo:&lt;br /&gt;&lt;br /&gt;Lo siguiente lee el contenido de un archivo txt y lo carga en un textBox multilínea&lt;br /&gt;&lt;br /&gt;Colocar un TextBox llamado txt_Path ( para especificar la ruta del archivo ).&lt;br /&gt;&lt;br /&gt;El Textbox que mostrará los datos del fichero, colocarle el nombre txt_Contenido&lt;br /&gt;&lt;br /&gt;Código en un botón:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;On Error GoTo Err_Sub&lt;br /&gt;&lt;br /&gt;Dim n_File As Integer&lt;br /&gt;Dim Contenido As String&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    'Número de archivo libre&lt;br /&gt;    n_File = FreeFile&lt;br /&gt;    &lt;br /&gt;    'Abre el archivo indicado&lt;br /&gt;    Open txt_Path For Input As n_File&lt;br /&gt;    &lt;br /&gt;    'Lee todo los datos del archivo y lo almacena en la variable&lt;br /&gt;    Contenido = Input$(LOF(n_File), #n_File)&lt;br /&gt;    &lt;br /&gt;    'Cierra el archivo abierto&lt;br /&gt;    Close n_File&lt;br /&gt;    &lt;br /&gt;    'Carga el contenido de la variable en el TextBox&lt;br /&gt;    txt_Contenido = Contenido&lt;br /&gt;    &lt;br /&gt;    Exit Sub&lt;br /&gt;&lt;br /&gt;Err_Sub:&lt;br /&gt;    &lt;br /&gt;    MsgBox Err.Description, vbCritical &lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-1060973091665351867?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/1060973091665351867/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=1060973091665351867' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/1060973091665351867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/1060973091665351867'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/06/leer-el-contenido-de-un-archivo-de.html' title='Leer el contenido de un archivo de texto con la función Input con Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-9051587555675072884</id><published>2009-06-28T09:40:00.000-07:00</published><updated>2009-06-28T09:41:37.759-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Ejemplo para leer un archivo de texto utilizando Line Input en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lo siguiente, lee un archivo de texto línea por línea, y carga el contenido en un control ListBox. colocar un control List1, un Command1 y un Text1 para indicar el path del archivo a leer:&lt;br /&gt;&lt;br /&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub Command1_Click()&lt;br /&gt;On Error GoTo errSub&lt;br /&gt;&lt;br /&gt;Dim n_File As Integer&lt;br /&gt;Dim Linea As String&lt;br /&gt;    &lt;br /&gt;    'Elimina el contenido del listbox&lt;br /&gt;    List1.Clear&lt;br /&gt;    &lt;br /&gt;    'Número de archivo libre&lt;br /&gt;    n_File = FreeFile&lt;br /&gt;    &lt;br /&gt;    'Abre el archivo para leer los datos&lt;br /&gt;    Open text1.Text For Input As n_File&lt;br /&gt;    &lt;br /&gt;    'Recorre linea a linea el mismo y añade las lineas al control List&lt;br /&gt;    Do While Not EOF(n_File)&lt;br /&gt;        &lt;br /&gt;        'Lee la linea&lt;br /&gt;        Line Input #n_File, Linea&lt;br /&gt;        List1.AddItem Linea&lt;br /&gt;    Loop&lt;br /&gt;    &lt;br /&gt;Exit Sub&lt;br /&gt;errSub:&lt;br /&gt;'error&lt;br /&gt;MsgBox "Número de error: " &amp; Err.Number &amp; vbNewLine &amp; _&lt;br /&gt;       "Descripción del error: " &amp; Err.Description, vbCritical&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;&lt;br /&gt;Command1.Caption = " Cargar en Listbox "&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-9051587555675072884?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/9051587555675072884/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=9051587555675072884' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/9051587555675072884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/9051587555675072884'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/06/ejemplo-para-leer-un-archivo-de-texto.html' title='Ejemplo para leer un archivo de texto utilizando Line Input en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-814949941174181046</id><published>2009-02-18T20:21:00.000-08:00</published><updated>2009-02-18T20:35:55.987-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Eliminar Objetos no Utilizados en Java</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s1600-h/java.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s320/java.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5236643669842396210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Muchos otros lenguajes orientados a objetos necesitan que se siga&lt;br /&gt;la pista de los objetos que se han ceado y luego se destruyan &lt;br /&gt;cuando no se necesiten. Escribir código para manejar la memoria de&lt;br /&gt;esta es forma es aburrido y propenso a errores. Java permite &lt;br /&gt;ahorrarse esto, permitiéndo crear tantos objetos como se quiera &lt;br /&gt;(sólo limitados por los que el sistema pueda manejar) pero nunca &lt;br /&gt;tienen que ser destruidos. El entorno de ejecución Java borra los &lt;br /&gt;objetos cuando determina que no se van autilizar más. Este proceso &lt;br /&gt;es conocido como recolección de basura.&lt;br /&gt;&lt;br /&gt;Un objeto es elegible para la recolección de basura cuando no existen&lt;br /&gt;más referencias a ese objeto. Las referencias que se mantienen en una&lt;br /&gt;variable desaparecen de forma natural cuando la variable sale de su&lt;br /&gt;ámbito. O cuando se borra explicitamente un objeto referencia mediante &lt;br /&gt;la selección de un valor cuyo tipo de dato es una referencia a null.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Recolector de Basura&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;El entorno de ejecución de Java tiene un recolector de basura que&lt;br /&gt;periódicamente libera la memoria ocupada por los objetos que no se van&lt;br /&gt;a necesitar más. El recolector de basura de Java es un barredor de&lt;br /&gt;marcas que escanea dinamicamente la memoria de Java buscando&lt;br /&gt;objetos, marcando aquellos que han sido referenciados. Después de&lt;br /&gt;investigar todos los posibles paths de los objetos, los que no están&lt;br /&gt;marcados (esto es, no han sido referenciados) se les conoce como&lt;br /&gt;basura y son eliminados.&lt;br /&gt;&lt;br /&gt;El colector de basura funciona en un thread (hilo) de baja prioridad y&lt;br /&gt;funciona tanto síncrona como asíncronamente dependiendo de la situación &lt;br /&gt;y del sistema en el que se esté ejecutando el entorno Java.&lt;br /&gt;&lt;br /&gt;El recolector de basura se ejecuta síncronamente cuando el sistema&lt;br /&gt;funciona fuera de memoria o en respuesta a una petición de un&lt;br /&gt;programa Java. Un programa Java le puede pedir al recolector de basura&lt;br /&gt;que se ejecute en cualquier momento mediane una llamada a System.gc().&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Pedir que se ejecute el recolector de basura no &lt;br /&gt;garantiza que los objetos sean recolectados.&lt;br /&gt;&lt;br /&gt;En sistemas que permiten que el entorno de ejecución Java note cuando&lt;br /&gt;un thread a empezado a interrumpir a otro thread (como Windows&lt;br /&gt;95/NT), el recolector de basura de Java funciona asíncromamente&lt;br /&gt;cuando el sistema está ocupado. Tan pronto como otro thread se vuelva&lt;br /&gt;activo, se pedira al recolector de basura que obtenga un estado&lt;br /&gt;consistente y termine.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Finalización&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Antes de que un objeto sea recolectado, el recolector de basura le da&lt;br /&gt;una oportunidad para limpiarse él mismo mediante la llamada al método&lt;br /&gt;finalize() del propio objeto. Este proceso es conocido como finalización.&lt;br /&gt;Durante la finalización un objeto se podrían liberar los recursos del&lt;br /&gt;sistema como son los ficheros, etc y liberar referencias en otros objetos&lt;br /&gt;para hacerse elegible por la recolección de basura.&lt;br /&gt;&lt;br /&gt;El método finalize() es un miembro de la clase java.lang.Object. Una&lt;br /&gt;clase debe sobreescribir el método finalize() para realizar cualquier&lt;br /&gt;finalización necesaria para los objetos de ese tipo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-814949941174181046?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/814949941174181046/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=814949941174181046' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/814949941174181046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/814949941174181046'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/02/eliminar-objetos-no-utilizados-en-java.html' title='Eliminar Objetos no Utilizados en Java'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s72-c/java.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8546550118224730514</id><published>2009-02-18T20:18:00.000-08:00</published><updated>2009-02-18T20:21:42.278-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Arrays y Cadenas en Java</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s1600-h/java.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s320/java.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5236643669842396210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Al igual que otros lenguajes de programación, Java permite juntar y manejar múltiples&lt;br /&gt;valores a través de un objeto array (matriz). También se pueden manejar datos&lt;br /&gt;compuestos de múltiples caracteres utilizando el objeto String (cadena).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Arrays&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Esta sección te enseñará todo lo que necesitas para crear y utilizar arrays en&lt;br /&gt;tus programas Java.&lt;br /&gt;&lt;br /&gt;Como otras variables, antes de poder utilizar un array primero se debe&lt;br /&gt;declarar. De nuevo, al igual que otras variables, la declaración de un array&lt;br /&gt;tiene dos componentes primarios: el tipo del array y su nombre. Un tipo de&lt;br /&gt;array incluye el tipo de dato de los elementos que va contener el array. Por&lt;br /&gt;ejemplo, el tipo de dato para un array que sólo va a contener elementos&lt;br /&gt;enteros es un array de enteros. No puede existir un array de tipo de datos&lt;br /&gt;genérico en el que el tipo de sus elementos esté indefinido cuando se declara&lt;br /&gt;el array. Aquí tienes la declaración de un array de enteros:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;int[] arrayDeEnteros;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;La parte int[] de la declaración indica que arrayDeEnteros es un array de&lt;br /&gt;enteros. La declaración no asigna ninguna memoria para contener los&lt;br /&gt;elementos del array.&lt;br /&gt;&lt;br /&gt;Si se intenta asignar un valor o acceder a cualquier elemento de&lt;br /&gt;arrayDeEnteros antes de haber asignado la memoria para él, el compilador&lt;br /&gt;dará un error como este y no compilará el programa:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;testing.java:64: Variable arraydeenteros may not have been initialized.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Para asignar memoria a los elementos de un array, primero se debe&lt;br /&gt;ejemplarizar el array. Se puede hacer esto utilizando el operador new de Java.&lt;br /&gt;(Realmente, los pasos que se deben seguir para crear un array son similares a&lt;br /&gt;los se deben seguir para crear un objeto de una clase: declaración,&lt;br /&gt;ejemplarización e inicialización.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Strings&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Una secuencia de datos del tipo carácter se llama un string (cadena) y en el&lt;br /&gt;entorno Java está implementada por la clase String (un miembro del paquete&lt;br /&gt;java.lang).&lt;br /&gt;&lt;br /&gt;&lt;em&gt;String[] args;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Este código declara explícitamente un array, llamado args, que contiene&lt;br /&gt;objetos del tipo String. Los corchetes vacios indican que la longitud del array&lt;br /&gt;no se conoce en el momento de la compilación, porque el array se pasa en el&lt;br /&gt;momento de la ejecución.&lt;br /&gt;&lt;br /&gt;El segundo uso de String es el uso de cadenas literales (una cadena de&lt;br /&gt;caracteres entre comillas " y "):&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"Hola mundo!"&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;El compilador asigna implicitamente espacio para un objeto String cuando&lt;br /&gt;encuentra una cadena literal.&lt;br /&gt;&lt;br /&gt;Los objetos String son inmutables - es decir, no se pueden modificar una vez&lt;br /&gt;que han sido creados. El paquete java.lang proporciona una clase diferente,&lt;br /&gt;StringBuffer, que se podrá utilizar para crear y manipular caracteres al vuelo.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Concatenación de Cadenas&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Java permite concatenar cadenas facilmente utilizando el operador&lt;br /&gt;+. El siguiente fragmento de código concatena tres cadenas para&lt;br /&gt;producir su salida:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;"La entrada tiene " + contador + " caracteres."&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Dos de las cadenas concatenadas son cadenas literales: "La&lt;br /&gt;entrada tiene " y " caracteres.". La tercera cadena - la del medioes&lt;br /&gt;realmente un entero que primero se convierte a cadena y luego&lt;br /&gt;se concatena con las otras.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8546550118224730514?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8546550118224730514/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8546550118224730514' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8546550118224730514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8546550118224730514'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/02/arrays-y-cadenas-en-java.html' title='Arrays y Cadenas en Java'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s72-c/java.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-61693057520543086</id><published>2009-02-18T20:14:00.000-08:00</published><updated>2009-02-18T20:17:20.568-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Expresiones en Java</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s1600-h/java.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s320/java.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5236643669842396210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Las expresiones realizan el trabajo de un programa Java. Entre otras cosas, las&lt;br /&gt;expresiones se utilizan para calcular y asignar valores a las variables y para&lt;br /&gt;controlar el flujo de un programa Java. El trabajo de una expresión se divide en&lt;br /&gt;dos partes: realizar los cálculos indicados por los elementos de la expresión y&lt;br /&gt;devolver algún valor.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Definición:&lt;/strong&gt; &lt;em&gt;Una expresión es una serie de variables, operadores y llamadas a métodos (construida de acuerdo a la sintaxis del lenguaje) que evalúa a un valor sencillo&lt;/em&gt;.&lt;br /&gt;&lt;br /&gt;El tipo del dato devuelto por una expresión depende de los elementos utilizados en&lt;br /&gt;la expresión. La expresión count++ devuelve un entero porque ++ devuelve un&lt;br /&gt;valor del mismo tipo que su operando y count es un entero. Otras expresiones&lt;br /&gt;devuelven valores booleanos, cadenas, etc...&lt;br /&gt;&lt;br /&gt;Una expresión de llamada a un método devuelve el valor del método; así el tipo de&lt;br /&gt;dato de una expresión de llamada a un método es el mismo tipo de dato que el&lt;br /&gt;valor de retorno del método. El método System.in.read() se ha declarado como&lt;br /&gt;un entero, por lo tanto, la expresión System.in.read() devuelve un entero.&lt;br /&gt;&lt;br /&gt;La segunda expresión contenida en la sentencia System.in.read() != -1 utiliza el&lt;br /&gt;operador !=. Recuerda que este operador comprueba si los dos operandos son&lt;br /&gt;distintos. En esta sentencia los operandos son System.in.read() y -1.&lt;br /&gt;System.in.read() es un operando válido para != porque devuelve un entero. Así&lt;br /&gt;System.in.read() != -1 compara dos enteros, el valor devuelto por&lt;br /&gt;System.in.read() y -1. El valor devuelto por != es true o false dependiendo de&lt;br /&gt;la salida de la comparación.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-61693057520543086?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/61693057520543086/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=61693057520543086' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/61693057520543086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/61693057520543086'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/02/expresiones-en-java.html' title='Expresiones en Java'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s72-c/java.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-3604499238793236096</id><published>2009-02-18T19:59:00.000-08:00</published><updated>2009-02-18T20:12:34.218-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Operadores en Java</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s1600-h/java.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s320/java.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5236643669842396210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Los operadores realizan algunas funciones en uno o dos operandos. Los operadores&lt;br /&gt;que requieren un operador se llaman operadores unarios. Por ejemplo, ++ es un&lt;br /&gt;operador unario que incrementa el valor su operando en uno.&lt;br /&gt;&lt;br /&gt;Los operadores que requieren dos operandos se llaman operadores binarios. El&lt;br /&gt;operador = es un operador binario que asigna un valor del operando derecho al&lt;br /&gt;operando izquierdo.&lt;br /&gt;&lt;br /&gt;Los operadores unarios en Java pueden utilizar la notación de prefijo o de sufijo. La&lt;br /&gt;notación de prefijo significa que el operador aparece antes de su operando:&lt;br /&gt;operador operando&lt;br /&gt;&lt;br /&gt;La notación de sufijo significa que el operador aparece después de su operando:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;operando operador&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Todos los operadores binarios de Java tienen la misma notación, es decir&lt;br /&gt;aparencen entre los dos operandos:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;op1 operator op2&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Además de realizar una operación también devuelve un valor. El valor y su tipo&lt;br /&gt;dependen del tipo del operador y del tipo de sus operandos. Por ejemplo, los&lt;br /&gt;operadores aritméticos (realizan las operaciones de aritmética básica como la suma&lt;br /&gt;o la resta) devuelven números, el resultado típico de las operaciones aritmétcias.&lt;br /&gt;El tipo de datos devuelto por los operadores aritméticos depende del tipo de sus&lt;br /&gt;operandos: si sumas dos enteros, obtendrás un entero. Se dice que una operación&lt;br /&gt;evalúa su resultado.&lt;br /&gt;&lt;br /&gt;Es muy útil dividir los operadores Java en las siguientes categorías: aritméticos,&lt;br /&gt;relacionales y condicionales. lógicos y de desplazamiento y de asignación.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Operadores Aritméticos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;El lenguaje Java soporta varios operadores aritéticos - incluyendo +&lt;br /&gt;(suma), - (resta), * (multiplicación), / (división), y % (módulo)-- en&lt;br /&gt;todos los números enteros y de coma flotante. Por ejemplo, puedes&lt;br /&gt;utilizar este código Java para sumar dos números:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;sumaEsto + aEsto&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;O este código para calcular el resto de una división:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;divideEsto % porEsto&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Esta tabla sumariza todas las operaciones aritméticas binarias en Java:&lt;br /&gt;&lt;br /&gt;Operador          Uso           Descripción&lt;br /&gt;+                 op1 + op2     Suma op1 y op2&lt;br /&gt;-                 op1 - op2     Resta op2 de op1&lt;br /&gt;*                 op1 * op2     Multiplica op1 y op2&lt;br /&gt;/                 op1 / op2     Divide op1 por op2&lt;br /&gt;%                 op1 % op2     Obtiene el resto de dividir op1 por op2&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Nota:&lt;/strong&gt; El lenguaje Java extiende la definición del operador + para incluir la concatenación de cadenas.&lt;br /&gt;&lt;br /&gt;Los operadores + y - tienen versiones unarias que seleccionan el signo&lt;br /&gt;del operando:&lt;br /&gt;&lt;br /&gt;Operador          Uso           Descripción&lt;br /&gt;+                 + op          Indica un valor positivo&lt;br /&gt;-                 - op          Niega el operando&lt;br /&gt;&lt;br /&gt;Además, existen dos operadores de atajos aritméticos, ++ que&lt;br /&gt;incrementa en uno su operando, y -- que decrementa en uno el valor de su operando.&lt;br /&gt;&lt;br /&gt;Operador          Uso          Descripción&lt;br /&gt;++                op ++        Incrementa op en 1; evalúa el valor antes de incrementar&lt;br /&gt;++                ++ op        Incrementa op en 1; evalúa el valor después de&lt;br /&gt;incrementar&lt;br /&gt;--                op --        Decrementa op en 1; evalúa el valor antes de decrementar&lt;br /&gt;--                -- op        Decrementa op en 1; evalúa el valor después de&lt;br /&gt;decrementar&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Operadores Relacionales y Condicionales&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Los valores relacionales comparan dos valores y determinan la relación&lt;br /&gt;entre ellos. Por ejemplo, != devuelve true si los dos operandos son&lt;br /&gt;distintos.&lt;br /&gt;&lt;br /&gt;Esta tabla sumariza los operadores relacionales de Java:&lt;br /&gt;&lt;br /&gt;Operador          Uso          Devuelve true si&lt;br /&gt;&gt;                 op1 &gt; op2    op1 es mayor que op2&lt;br /&gt;&gt;=                op1 &gt;= op2   op1 es mayor o igual que op2&lt;br /&gt;&lt;                 op1 &lt; op2    op1 es menor que op2&lt;br /&gt;&lt;=                op1 &lt;= op2   op1 es menor o igual que op2&lt;br /&gt;==                op1 == op2   op1 y op2 son iguales&lt;br /&gt;!=                op1 != op2   op1 y op2 son distintos&lt;br /&gt;&lt;br /&gt;Frecuentemente los operadores relacionales se utilizan con otro juego de&lt;br /&gt;operadores, los operadores condicionales, para construir expresiones de&lt;br /&gt;decisión más complejas. Uno de estos operadores es &amp;&amp; que realiza la&lt;br /&gt;operación Y booleana . Por ejemplo puedes utilizar dos operadores&lt;br /&gt;relacionales diferentes junto con &amp;&amp; para determinar si ambas relaciones&lt;br /&gt;son ciertas. La siguiente línea de código utiliza esta técnica para&lt;br /&gt;determinar si un indice de un array está entre dos límites- esto es, para&lt;br /&gt;determinar si el indice es mayor que 0 o menor que NUM_ENTRIES (que&lt;br /&gt;se ha definido préviamente como un valor constante):&lt;br /&gt;&lt;br /&gt;&lt;em&gt;0 &lt; index &amp;&amp; index &lt; NUM_ENTRIES&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Observa que en algunas situaciones, el segundo operando de un&lt;br /&gt;operador relacional no será evaluado. Consideremos esta sentencia:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;((count &gt; NUM_ENTRIES) &amp;&amp; (System.in.read() != -1))&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Si count es menor que NUM_ENTRIES, la parte izquierda del operando de&lt;br /&gt;&amp;&amp; evalúa a false. El operador &amp;&amp; sólo devuelve true si los dos&lt;br /&gt;operandos son verdaderos. Por eso, en esta situación se puede&lt;br /&gt;deteminar el valor de &amp;&amp; sin evaluar el operador de la derecha. En un&lt;br /&gt;caso como este, Java no evalúa el operando de la derecha. Así no se&lt;br /&gt;llamará a System.in.read() y no se leerá un carácter de la entrada&lt;br /&gt;estandard.&lt;br /&gt;&lt;br /&gt;Aquí tienes tres operadores condicionales:&lt;br /&gt;&lt;br /&gt;Operador         Uso          Devuelve true si&lt;br /&gt;&amp;&amp;               op1 &amp;&amp; op2   op1 y op2 son verdaderos&lt;br /&gt;||               op1 || op2   uno de los dos es verdadero&lt;br /&gt;!                ! op         op es falso&lt;br /&gt;&lt;br /&gt;El operador &amp; se puede utilizar como un sinónimo de &amp;&amp; si ambos&lt;br /&gt;operadores son booleanos. Similarmente, | es un sinonimo de || si&lt;br /&gt;ambos operandos son booleanos.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Operadores de Desplazamiento&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Los operadores de desplazamiento permiten realizar una manipualción&lt;br /&gt;de los bits de los datos. Esta tabla sumariza los operadores lógicos y de&lt;br /&gt;desplazamiento disponibles en el lenguaje Java:&lt;br /&gt;&lt;br /&gt;Operador          Uso          Descripción&lt;br /&gt;&gt;&gt;                op1 &gt;&gt; op2   desplaza a la derecha op2 bits de op1&lt;br /&gt;&lt;&lt;                op1 &lt;&lt; op2   desplaza a la izquierda op2 bits de op1&lt;br /&gt;&gt;&gt;&gt;               op1 &gt;&gt;&gt; op2  desplaza a la derecha op2 bits de op1(sin&lt;br /&gt;signo)&lt;br /&gt;&amp;                 op1 &amp; op2    bitwise and&lt;br /&gt;|                 op1 | op2    bitwise or&lt;br /&gt;^                 op1 ^ op2    bitwise xor&lt;br /&gt;~                 ~ op         bitwise complemento&lt;br /&gt;&lt;br /&gt;Los tres operadores de desplazamiento simplemente desplazan los bits&lt;br /&gt;del operando de la izquierda el número de posiciones indicadas por el&lt;br /&gt;operador de la derecha. Los desplazamientos ocurren en la dirección&lt;br /&gt;indicada por el propio operador. Por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;13 &gt;&gt; 1;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;desplaza los bits del entero 13 una posición a la derecha. La&lt;br /&gt;representación binaria del número 13 es 1101. El resultado de la&lt;br /&gt;operación de desplazamiento es 110 o el 6 decimal. Observe que el bit&lt;br /&gt;situado más a la derecha desaparece. Un desplazamiento a la derecha de&lt;br /&gt;un bit es equivalente, pero más eficiente que, dividir el operando de la&lt;br /&gt;izquierda por dos. Un desplazamiento a la izquierda es equivalente a&lt;br /&gt;multiplicar por dos.&lt;br /&gt;&lt;br /&gt;Los otros operadores realizan las funciones lógicas para cada uno de los&lt;br /&gt;pares de bits de cada operando. La función "y" activa el bit resultante si&lt;br /&gt;los dos operandos son 1.&lt;br /&gt;&lt;br /&gt;op1     op2     resultado&lt;br /&gt;0       0       0&lt;br /&gt;0       1       0&lt;br /&gt;1       0       0&lt;br /&gt;1       1       1&lt;br /&gt;&lt;br /&gt;Supon que quieres evaluar los valores 12 "and" 13:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;12 &amp; 13&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;El resultado de esta operación es 12. ¿Por qué? Bien, la representación&lt;br /&gt;binaria de 12 es 1100 y la de 13 es 1101. La función "and" activa los bits&lt;br /&gt;resultantes cuando los bits de los dos operandos son 1, de otra forma el&lt;br /&gt;resultado es 0. Entonces si colocas en línea los dos operandos y realizas&lt;br /&gt;la función "and", puedes ver que los dos bits de mayor peso (los dos bits&lt;br /&gt;situados más a la izquierda de cada número) son 1 así el bit resultante&lt;br /&gt;de cada uno es 1. Los dos bits de menor peso se evalúan a 0 poque al&lt;br /&gt;menos uno de los dos operandos es 0:&lt;br /&gt;&lt;br /&gt;  1101&lt;br /&gt;&amp; 1100&lt;br /&gt;------&lt;br /&gt;  1100&lt;br /&gt;&lt;br /&gt;El operador | realiza la operación O inclusiva y el operador ^ realiza la&lt;br /&gt;operación O exclusiva. O inclusiva significa que si uno de los dos&lt;br /&gt;operandos es 1 el resultado es 1.&lt;br /&gt;&lt;br /&gt;op1     op2     resultado&lt;br /&gt;0       0       0&lt;br /&gt;0       1       1&lt;br /&gt;1       0       1&lt;br /&gt;1       1       1&lt;br /&gt;&lt;br /&gt;O exclusiva significa que si los dos operandos son diferentes el resultado&lt;br /&gt;es 1, de otra forma el resultado es 0:&lt;br /&gt;&lt;br /&gt;op1     op2     resultado&lt;br /&gt;0       0       0&lt;br /&gt;0       1       1&lt;br /&gt;1       0       1&lt;br /&gt;1       1       0&lt;br /&gt;&lt;br /&gt;Y finalmente el operador complemento invierte el valor de cada uno de&lt;br /&gt;los bites del operando: si el bit del operando es 1 el resultado es 0 y si el&lt;br /&gt;bit del operando es 0 el resultado es 1.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Operadores de Asignación&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Puedes utilizar el operador de asignación =, para asignar un valor a otro.&lt;br /&gt;Además del operador de asignación básico, Java proporciona varios&lt;br /&gt;operadores de asignación que permiten realizar operaciones aritmétcias,&lt;br /&gt;lógicas o de bits y una operación de asignación al mismo tiempo.&lt;br /&gt;Especificamente, supon que quieres añadir un número a una variable y&lt;br /&gt;asignar el resultado dentro de la misma variable, como esto:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;i = i + 2;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Puedes ordenar esta sentencia utilizando el operador +=.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;i += 2;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Las dos líneas de código anteriores son equivalentes.&lt;br /&gt;Esta tabla lista los operadores de asignación y sus equivalentes:&lt;br /&gt;&lt;br /&gt;Operador Uso Equivale a&lt;br /&gt;+= op1 += op2 op1 = op1 + op2&lt;br /&gt;-= op1 -= op2 op1 = op1 - op2&lt;br /&gt;*= op1 *= op2 op1 = op1 * op2&lt;br /&gt;/= op1 /= op2 op1 = op1 / op2&lt;br /&gt;%= op1 %= op2 op1 = op1 % op2&lt;br /&gt;&amp;= op1 &amp;= op2 op1 = op1 &amp; op2&lt;br /&gt;|= op1 |= op2 op1 = op1 | op2&lt;br /&gt;^= op1 ^= op2 op1 = op1 ^ op2&lt;br /&gt;&lt;&lt;= op1 &lt;&lt;= op2 op1 = op1 &lt;&lt; op2&lt;br /&gt;&gt;&gt;= op1 &gt;&gt;= op2 op1 = op1 &gt;&gt; op2&lt;br /&gt;&gt;&gt;&gt;= op1 &gt;&gt;&gt;= op2 op1 = op1 &gt;&gt;&gt; op2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-3604499238793236096?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/3604499238793236096/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=3604499238793236096' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3604499238793236096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3604499238793236096'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/02/operadores-en-java.html' title='Operadores en Java'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s72-c/java.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-2534913030915654543</id><published>2009-02-18T19:48:00.000-08:00</published><updated>2009-02-18T19:58:00.681-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Variables y Tipos de Datos en Java</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s1600-h/java.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s320/java.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5236643669842396210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Las variables son las partes importantes de un lenguaje de programación: ellas son&lt;br /&gt;las entidades (valores, datos) que actúan y sobre las que se actúa.&lt;br /&gt;Una declaración de variable siempre contiene dos componentes, el tipo de la&lt;br /&gt;variable y su nombre:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;tipoVariable nombre;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tipos de Variables&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Todas las variables en el lenguaje Java deben tener un tipo de dato. El&lt;br /&gt;tipo de la variable determina los valores que la variable puede contener y&lt;br /&gt;las operaciones que se pueden realizar con ella.&lt;br /&gt;&lt;br /&gt;Existen dos categorias de datos principales en el lenguaje Java: los tipos&lt;br /&gt;primitivos y los tipos referenciados.&lt;br /&gt;&lt;br /&gt;Los tipos primitivos contienen un sólo valor e incluyen los tipos como los&lt;br /&gt;enteros, coma flotante, los caracteres, etc... La tabla siguiente muestra&lt;br /&gt;todos los tipos primitivos soportados por el lenguaje Java, su formato, su&lt;br /&gt;tamaño y una breve descripción de cada uno:&lt;br /&gt;&lt;br /&gt;Tipo          Tamaño/Formato          Descripción&lt;br /&gt;(Números enteros)&lt;br /&gt;byte 8-bit    complemento a 2         Entero de un Byte&lt;br /&gt;short 16-bit  complemento a 2         Entero corto&lt;br /&gt;int 32-bit    complemento a 2         Entero&lt;br /&gt;long 64-bit   complemento a 2         Entero largo&lt;br /&gt;(Números reales)&lt;br /&gt;float         32-bit IEEE 754         Coma flotante de precisión simple&lt;br /&gt;double        64-bit IEEE 754         Coma flotante de precisión doble&lt;br /&gt;(otros tipos)&lt;br /&gt;char          16-bit                  Caracter Un sólo carácter&lt;br /&gt;boolean       true o false            Un valor booleano (verdadero o falso)&lt;br /&gt;&lt;br /&gt;Los tipos referenciados se llaman así porque el valor de una variable de&lt;br /&gt;referencia es una referencia (un puntero) hacia el valor real. En Java&lt;br /&gt;tenemos los arrays, las clases y los interfaces como tipos de datos&lt;br /&gt;referenciados.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Nombres de Variables&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Un programa se refiere al valor de una variable por su nombre. Por&lt;br /&gt;convención, en Java, los nombres de las variables empiezan con una&lt;br /&gt;letra minúscula (los nombres de las clases empiezan con una letra&lt;br /&gt;mayúscula).&lt;br /&gt;&lt;br /&gt;Un nombre de variable Java:&lt;br /&gt;&lt;br /&gt;debe ser un identificador legal de Java comprendido en una serie de&lt;br /&gt;caracteres Unicode. Unicode es un sistema de codificación que&lt;br /&gt;soporta texto escrito en distintos lenguajes humanos.Unicode&lt;br /&gt;perminte la codificación de 34.168 caracteres. Esto le permite&lt;br /&gt;utilizar en sus programas Java varios alfabetos como el Japonés, el&lt;br /&gt;Griego, el Ruso o el Hebreo. Esto es importante para que los&lt;br /&gt;programadores pueden escribir código en su lenguaje nativo.&lt;br /&gt;&lt;br /&gt;1. no puede ser el mismo que una palabra clave o el nombre de un&lt;br /&gt;valor booleano (true or false)&lt;br /&gt;2. no deben tener el mismo nombre que otras variables cuyas&lt;br /&gt;declaraciones aparezcan en el mismo ámbito.&lt;br /&gt;3. La regla número 3 implica que podría existir el mismo nombre en otra&lt;br /&gt;variable que aparezca en un ámbito diferente.&lt;br /&gt;&lt;br /&gt;Por convención, los nombres de variables empiezan por un letra&lt;br /&gt;minúscula. Si una variable está compuesta de más de una palabra, como&lt;br /&gt;'nombreDato' las palabras se ponen juntas y cada palabra después de la&lt;br /&gt;primera empieza con una letra mayúscula.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-2534913030915654543?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/2534913030915654543/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=2534913030915654543' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2534913030915654543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2534913030915654543'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/02/variables-y-tipos-de-datos-en-java.html' title='Variables y Tipos de Datos en Java'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s72-c/java.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-7546025038694200376</id><published>2009-02-15T07:36:00.000-08:00</published><updated>2009-02-15T07:37:09.552-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Leer datos de un archivo utilizando Line Input con Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;Para leer datos de un archivo se utiliza la sentencia Input.&lt;br /&gt;pero para leer los datos del archivo y poder utilizarlos en nuestro programa se utilizan 2 sentencias o instrucciones: Line Input e Input.&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim mivariable As String&lt;br /&gt;&lt;br /&gt;Open "c:\nombres.txt" For Input As #1&lt;br /&gt;&lt;br /&gt;While Not EOF(1)&lt;br /&gt;&lt;br /&gt;Line Input #1, mivariable&lt;br /&gt;&lt;br /&gt;Wend&lt;br /&gt;&lt;br /&gt;Close #1&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;En el ejemplo anterior aparece una función nueva llamada EOF. Esta función significa End Of File o fin de archivo. &lt;br /&gt;&lt;br /&gt;Cuando abrimos un archivo para leer información con Input, debemos saber en que momento llegamos al final del archivo, por que de lo contrario la sentencia Line Input o Input seguiría leyendo líneas donde no existen datos después del fin del archivo, y por lo tanto se produciría un error en tiempo de ejecución por querer leer un dato que no existe.&lt;br /&gt;&lt;br /&gt;Mediante la condición Not Eof(1) leeremos los datos hasta que llegue al final del archivo, y en cada pasada del bucle While se almacenará en la variable mivariable, línea por línea los datos del mismo. Es evidente que como está planteado el ejemplo habría que manipular los datos leídos y agregar otras instrucciones, por que en este ejemplo la variable mivariable solo almacenaría los datos de la línea que está leyendo y borrando los datos de las líneas que almacenó anteriormente. Mas adelante veremos como solucionar esto.&lt;br /&gt;&lt;br /&gt;conclusión : para leer datos de un archivo se utiliza la sentencia Line Input y luego de la coma debemos poner una variable nuestra para almacenar los datos que se van leyendo de la línea actual&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Line Input #1, nuestravariable&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-7546025038694200376?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/7546025038694200376/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=7546025038694200376' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7546025038694200376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7546025038694200376'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/02/leer-datos-de-un-archivo-utilizando.html' title='Leer datos de un archivo utilizando Line Input con Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8427663942271570935</id><published>2009-02-15T07:35:00.001-08:00</published><updated>2009-02-15T07:43:16.703-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Tipos de acceso de un archivo en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;strong&gt;Append:&lt;/strong&gt; esta sentencia se utiliza para agregar información a un archivo de texto.&lt;br /&gt;&lt;br /&gt;Ejemplo : &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Open "c:\miarchivo.txt" For Append As #1&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Si el archivo ya contiene datos, se le agregarán al mismo al final del archivo, si no contenía datos los agrega igual. Si el archivo no existe, lo crea y le agrega los datos.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Input:&lt;/strong&gt; la sentencia Input se utiliza para leer datos de un archivo de texto, ejemplo: &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Open "c:\miarchivo.txt" For Input As #2&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Este ejemplo abre un archivo para leer los datos del mismo. En las próximas líneas veremos ejemplos de como leer los datos , escribir y guardar. &lt;br /&gt;&lt;br /&gt;Una cosa importante con respecto a leer datos de un archivo con Input es que, si el archivo que queremos abrir, no existe, se producirá un error en tiempo de ejecución al intentar abrir un archivo que no existe, por eso debemos verificar la ruta del mismo siempre que esté bien escrita en la sentencia Open y evitarnos dolores de cabeza, y simpre añadir algún manejador de error para este caso&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Output:&lt;/strong&gt; esta sentencia se utiliaza para crear un archivo de texto y grabar datos. Esta es igual que Append salvo por un gran detalle: &lt;br /&gt;&lt;br /&gt;Output crea el archivo y le agrega información, pero si el archivo existía y contenía información previa, sobre escribe todos los datos del archivo por los datos nuevos, perdiendo los anteriores datos.&lt;br /&gt;&lt;br /&gt;Si accedemos con Output a un archivo que no existe, no se produce un error, si no que se crea dicho archivo.&lt;br /&gt;&lt;br /&gt;Conclusión : si vamos a añadir datos a un archivo existente (para actualizarlo por ejemplo) hay que utilizar la sentencia Append. si vamos a crear un archivo vacío y nuevo para grabar nuevos datos, hay que utilizar la sentencia Output. si vamos a abrir un archivo para leer datos utilizamos la sentencia Input.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8427663942271570935?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8427663942271570935/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8427663942271570935' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8427663942271570935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8427663942271570935'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/02/tipos-de-acceso-de-un-archivo-en-visual.html' title='Tipos de acceso de un archivo en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-3988779683136069792</id><published>2009-02-15T07:33:00.000-08:00</published><updated>2009-02-15T07:34:09.590-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Manejo de archivos secuenciales en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;Los archivos secuenciales se denominan de esta manera por que la forma de escribir y leer los datos en un archivo es, desde el principio hasta el fin del archivo, es decir, si yo quisiera acceder a un determinado dato del archivo y este dato se encuentra en la mitad del archivo, para llegar a ese dato necesito pasar por todos los demás datos, de forma secuencial.&lt;br /&gt;&lt;br /&gt;Por lo general se suelen utilizar los archivos secuenciales, para trabajar con archivos que contengan una estructura de datos no muy compleja. por que por ejemplo, si utilizáramos un archivo para almacenar 50000 nombres con sus respectivos datos (apellido, teléfono, dirección etc...) , este mecanismo resultaría ineficiente, ya que si quisiera recuperar por ejemplo el registro n° 3650, para leer este dato tendría que pasar previamente por los 3649 registros anteriores a este, haciendo mas lento el acceso y por lo tanto desperdiciando recursos del sistema.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-3988779683136069792?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/3988779683136069792/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=3988779683136069792' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3988779683136069792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3988779683136069792'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/02/manejo-de-archivos-secuenciales-en.html' title='Manejo de archivos secuenciales en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-1092907257340465963</id><published>2009-02-15T07:32:00.001-08:00</published><updated>2009-02-15T07:32:48.875-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Sentencia Open en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;Esta sentencia es la encargada de abrir o crear un archivo, ya sea para leer datos del mismo, sobre escribirlos y/o para agregarle datos.&lt;br /&gt;&lt;br /&gt;Esta sentencia tiene una serie de parámetros que varían de acuerdo a lo que queramos hacer.&lt;br /&gt;&lt;br /&gt;Por ejemplo :&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Open "c:\prueba.txt" For Input As #1&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Este ejemplo abre un archivo para poder acceder a los datos que contenga en su interior. cuando decimos abrir, estamos diciendo que se encuentra actualmente abierto y alojado en la memoria ram para poder manipularlo. &lt;br /&gt;&lt;br /&gt;En el primer parámetro indicamos el path del archivo en el que queremos trabajar. &lt;br /&gt;&lt;br /&gt;Luego la palabra "As #1" indica el número de archivo que estamos utilizando. Este número lo asignamos nosotros y va desde el rango 1 al 511. El "número de archivo" se utiliza para poder diferenciar al archivo en el código. Cada archivo que se encuentra abierto no se puede asignar un número de archivo igual, ya que nos daría un error en tiempo de ejecución.&lt;br /&gt;&lt;br /&gt;Por ejemplo no podríamos hacer esto:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Open "archivo1.txt" For Input As #1&lt;br /&gt;Open "otroarchivo1.txt" For Input As #1&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Una vez que terminamos de trabajar con un archivo que se encuentra abierto y que no lo vamos a utilizar mas, debemos cerrarlo. para ello se utiliza la sentencia Close seguido del número de archivo que lo identifica.&lt;br /&gt;&lt;br /&gt;Por ejemplo: &lt;br /&gt;&lt;br /&gt;Close #2&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Esto cerrará al archivo abierto que anteriormente le asignamos el número de archivo 2. También si tengo 3 archivos abiertos podría hacer lo siguiente: &lt;br /&gt;&lt;br /&gt;Close #1, #2, #3&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Si utilizamos la sentencia Close sin ningún parámetro, o mejor dicho ningún número de archivo, se cerrarán todos los archivos cargados en memoria por nuestra aplicación (los que nosotros abrimos con Open).&lt;br /&gt;&lt;br /&gt;Por lo general, si trabajamos con varios archivos abiertos simultáneamente, es aconsejable utilizar la sentencia Close sin ningún parámetro, de este modo cuando termine de ejecutarse el procedimiento se cerrarán todos los archivos abiertos.&lt;br /&gt;&lt;br /&gt;Hay una función en Visual basic llamada FreeFile. Esta función lo que hace es darnos un número de archivo que esté libre y que se pueda usar, para que de este modo no intentamos abrir uno esté siendo utilizado, y evitar un error en tiempo de ejecución. Para usar la función es muy fácil, por ejemplo:&lt;br /&gt;&lt;br /&gt;Dim NumeroArchivo As Integer&lt;br /&gt;&lt;br /&gt;NumeroArchivo = FreeFile&lt;br /&gt;&lt;br /&gt;Open "La ruta de un archivo" For Input As #NumeroArchivo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-1092907257340465963?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/1092907257340465963/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=1092907257340465963' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/1092907257340465963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/1092907257340465963'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/02/sentencia-open-en-visual-basic-60.html' title='Sentencia Open en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-351397745552922291</id><published>2009-02-15T07:27:00.000-08:00</published><updated>2009-02-15T07:29:58.786-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>¿como pasar un arreglo o vector de controles como parámetro a una Sub o function en visual basic 6.0?</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Una tarea habitual es la de poder pasar un arreglo o vector de controles como parámetro a una Sub o function.&lt;br /&gt;&lt;br /&gt;Por ejemplo supongamos que tenemos un programa que tiene muchos formularios. y varios de esos formularios tienen una función que se encarga de limpiar todas los textBox y eliminar el contenido de los mismos&lt;br /&gt;&lt;br /&gt;Para solucionar esto, y no tener que repetir código, podríamos crear en un módulo de código, una SubRutina para que la puedan utilizar y acceder desde todos los formularios.&lt;br /&gt;&lt;br /&gt;Para poder pasar un vector como parámetro a una rutina, la variable o argumento en la Subrutina, debe estar declarada como de tipo Object&lt;br /&gt;&lt;br /&gt;Ejemplo&lt;br /&gt;&lt;br /&gt;Colocar en un formulario un arreglo de textBox, por ejemplo TextBox1(0), TextBox1(1) y TextBox1(2)&lt;br /&gt;&lt;br /&gt;Colocar un CommandButton para limpiar el contenido de las cajas de texto&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Código fuente en el formulario&lt;br /&gt;&lt;br /&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;Private Sub Command1_Click()&lt;br /&gt;    Call Limpiar_TextBox(Text1)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;' Recibe el vector como parámetro&lt;br /&gt;Sub Limpiar_TextBox(El_TextBox As Object)&lt;br /&gt;&lt;br /&gt;    Dim i As Integer&lt;br /&gt;    &lt;br /&gt;    For i = 0 To El_TextBox.Count - 1&lt;br /&gt;        El_TextBox(i).Text = vbNullString&lt;br /&gt;    Next&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-351397745552922291?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/351397745552922291/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=351397745552922291' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/351397745552922291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/351397745552922291'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2009/02/como-pasar-un-arreglo-o-vector-de.html' title='¿como pasar un arreglo o vector de controles como parámetro a una Sub o function en visual basic 6.0?'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8082672855894308120</id><published>2008-12-07T10:34:00.000-08:00</published><updated>2008-12-07T10:35:48.787-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mysql'/><title type='text'>Clave primaria en Mysql</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s1600-h/mysql.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s320/mysql.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5253811671749381298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Una clave primaria es un campo (o varios) que identifica 1 solo registro (fila) en una tabla.&lt;br /&gt;&lt;br /&gt;Para un valor del campo clave existe solamente 1 registro. Los valores no se repiten ni pueden ser nulos.&lt;br /&gt;&lt;br /&gt;Veamos un ejemplo, si tenemos una tabla con datos de personas, el número de documento puede establecerse como clave primaria, es un valor que no se repite; puede haber personas con igual apellido y nombre, incluso el mismo domicilio (padre e hijo por ejemplo), pero su documento será siempre distinto.&lt;br /&gt;&lt;br /&gt;Si tenemos la tabla "usuarios", el nombre de cada usuario puede establecerse como clave primaria, es un valor que no se repite; puede haber usuarios con igual clave, pero su nombre de usuario será siempre distinto.&lt;br /&gt;&lt;br /&gt;Establecemos que un campo sea clave primaria al momento de creación de la tabla:&lt;br /&gt;&lt;br /&gt; &lt;em&gt;create table usuarios (&lt;br /&gt;  nombre varchar(20),&lt;br /&gt;  clave varchar(10),&lt;br /&gt;  primary key(nombre)&lt;br /&gt; );&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Para definir un campo como clave primaria agregamos "primary key" luego de la definición de todos los campos y entre paréntesis colocamos el nombre del campo que queremos como clave.&lt;br /&gt;&lt;br /&gt;Si visualizamos la estructura de la tabla con "describe" vemos que el campo "nombre" es clave primaria y no acepta valores nulos(más adelante explicaremos esto detalladamente).&lt;br /&gt;&lt;br /&gt;Ingresamos algunos registros:&lt;br /&gt;&lt;br /&gt; &lt;em&gt;insert into usuarios (nombre, clave)&lt;br /&gt;  values ('Leonardo','payaso'); &lt;br /&gt; insert into usuarios (nombre, clave)&lt;br /&gt;  values ('MarioPerez','Marito');&lt;br /&gt; insert into usuarios (nombre, clave)&lt;br /&gt;  values ('Marcelo','River');&lt;br /&gt; insert into usuarios (nombre, clave)&lt;br /&gt;  values ('Gustavo','River');&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Si intentamos ingresar un valor para el campo clave que ya existe, aparece un mensaje de error indicando que el registro no se cargó pues el dato clave existe. Esto sucede porque los campos definidos como clave primaria no pueden repetirse.&lt;br /&gt;&lt;br /&gt;Ingresamos un registro con un nombre de usuario repetido, por ejemplo:&lt;br /&gt;&lt;br /&gt; &lt;em&gt;insert into usuarios (nombre, clave)&lt;br /&gt;  values ('Gustavo','Boca');&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Una tabla sólo puede tener una clave primaria. Cualquier campo (de cualquier tipo) puede ser clave primaria, debe cumplir como requisito, que sus valores no se repitan.&lt;br /&gt;&lt;br /&gt;Al establecer una clave primaria estamos indexando la tabla, es decir, creando un índice para dicha tabla; a este tema lo veremos más adelante.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8082672855894308120?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8082672855894308120/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8082672855894308120' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8082672855894308120'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8082672855894308120'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/12/clave-primaria-en-mysql.html' title='Clave primaria en Mysql'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s72-c/mysql.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-7214386135700167764</id><published>2008-12-07T10:29:00.000-08:00</published><updated>2008-12-07T10:30:19.119-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mysql'/><title type='text'>Modificación de registros de una tabla (update) en Mysql</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s1600-h/mysql.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s320/mysql.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5253811671749381298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para modificar uno o varios datos de uno o varios registros utilizamos "update" (actualizar).&lt;br /&gt;&lt;br /&gt;Por ejemplo, en nuestra tabla "usuarios", queremos cambiar los valores de todas las claves, por "RealMadrid":&lt;br /&gt;&lt;br /&gt; &lt;em&gt;update usuarios set clave='RealMadrid';&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Utilizamos "update" junto al nombre de la tabla y "set" junto con el campo a modificar y su nuevo valor.&lt;br /&gt;&lt;br /&gt;El cambio afectará a todos los registros. &lt;br /&gt;&lt;br /&gt;Podemos modificar algunos registros, para ello debemos establecer condiciones de selección con "where".&lt;br /&gt;&lt;br /&gt;Por ejemplo, queremos cambiar el valor correspondiente a la clave de nuestro usuario llamado 'MarioPerez', queremos como nueva clave 'Boca', necesitamos una condición "where" que afecte solamente a este registro:&lt;br /&gt;&lt;br /&gt; &lt;em&gt;update usuarios set clave='Boca'&lt;br /&gt;  where nombre='MarioPerez';&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Si no encuentra registros que cumplan con la condición del "where", ningún registro es afectado. &lt;br /&gt;&lt;br /&gt;Las condiciones no son obligatorias, pero si omitimos la cláusula "where", la actualización afectará a todos los registros.&lt;br /&gt;&lt;br /&gt;También se puede actualizar varios campos en una sola instrucción:&lt;br /&gt;&lt;br /&gt;&lt;em&gt; update usuarios set nombre='MarceloDuarte', clave='Marce'&lt;br /&gt;  where nombre='Marcelo';&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Para ello colocamos "update", el nombre de la tabla, "set" junto al nombre del campo y el nuevo valor y separado por coma, el otro nombre del campo con su nuevo valor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-7214386135700167764?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/7214386135700167764/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=7214386135700167764' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7214386135700167764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7214386135700167764'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/12/modificacin-de-registros-de-una-tabla.html' title='Modificación de registros de una tabla (update) en Mysql'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s72-c/mysql.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-1414576477934565849</id><published>2008-12-07T10:27:00.000-08:00</published><updated>2008-12-07T10:28:50.906-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mysql'/><title type='text'>Borrado de registros de una tabla (delete) en Mysql</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s1600-h/mysql.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s320/mysql.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5253811671749381298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para eliminar los registros de una tabla usamos el comando "delete":&lt;br /&gt;&lt;br /&gt;&lt;em&gt;delete from usuarios;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;La ejecución del comando indicado en la línea anterior borra TODOS los registros de la tabla.&lt;br /&gt;&lt;br /&gt;Si queremos eliminar uno o varios registros debemos indicar cuál o cuáles, para ello utilizamos el comando "delete" junto con la clausula "where" con la cual establecemos la condición que deben cumplir los registros a borrar. Por ejemplo, queremos eliminar aquel registro cuyo nombre de usuario es 'Leonardo':&lt;br /&gt;&lt;br /&gt;&lt;em&gt;delete from usuarios where nombre='Leonardo';&lt;/em&gt;&lt;br /&gt;Si solicitamos el borrado de un registro que no existe, es decir, ningún registro cumple con la condición especificada, no se borrarán registros, pues no encontró registros con ese dato.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-1414576477934565849?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/1414576477934565849/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=1414576477934565849' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/1414576477934565849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/1414576477934565849'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/12/borrado-de-registros-de-una-tabla.html' title='Borrado de registros de una tabla (delete) en Mysql'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s72-c/mysql.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-3517945611159041136</id><published>2008-12-07T10:25:00.000-08:00</published><updated>2008-12-07T10:33:53.223-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mysql'/><title type='text'>Operadores Relacionales ( = &lt;&gt; &lt; &lt;= &gt; &gt;= ) en Mysql</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s1600-h/mysql.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s320/mysql.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5253811671749381298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hemos aprendido a especificar condiciones de igualdad para seleccionar registros de una tabla; por ejemplo:&lt;br /&gt;&lt;br /&gt;select titulo,autor,editorial from libros where autor='Borges';&lt;br /&gt;&lt;br /&gt;Utilizamos el operador relacional de igualdad.&lt;br /&gt;&lt;br /&gt;Los operadores relacionales vinculan un campo con un valor para que MySQL compare cada registro (el campo especificado) con el valor dado.&lt;br /&gt;&lt;br /&gt;Los operadores relacionales son los siguientes:&lt;br /&gt;&lt;br /&gt;= igual&lt;br /&gt;&lt;&gt; distinto&lt;br /&gt;&gt; mayor&lt;br /&gt;&lt; menor&lt;br /&gt;&gt;= mayor o igual&lt;br /&gt;&lt;= menor o igual&lt;br /&gt;&lt;br /&gt;Podemos seleccionar los registros cuyo autor sea diferente de 'Borges', para ello usamos la condición:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;select titulo,autor,editorial from libros where autor&lt;&gt;'Borges';&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Podemos comparar valores numéricos. Por ejemplo, queremos mostrar los libros cuyos precios sean mayores a 20 pesos:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;select titulo,autor,editorial,precio from libros where precio&gt;20;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;También, los libros cuyo precio sea menor o igual a 30:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;select titulo,autor,editorial,precio from libros where precio&lt;=30;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-3517945611159041136?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/3517945611159041136/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=3517945611159041136' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3517945611159041136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3517945611159041136'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/12/operadores-relacionales.html' title='Operadores Relacionales ( = &lt;&gt; &lt; &lt;= &gt; &gt;= ) en Mysql'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s72-c/mysql.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-7848502180240434751</id><published>2008-12-07T10:23:00.000-08:00</published><updated>2008-12-07T10:33:16.067-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mysql'/><title type='text'>Recuperación de registros específicos (select - where) en Mysql</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s1600-h/mysql.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s320/mysql.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5253811671749381298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hemos aprendido cómo ver todos los registros de una tabla:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;select nombre, clave from usuarios;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;El comando "select" recupera los registros de una tabla. Detallando los nombres de los campos separados por comas, indicamos que seleccione todos los campos de la tabla que nombramos.&lt;br /&gt;&lt;br /&gt;Existe una cláusula, "where" que es opcional, con ella podemos especificar condiciones para la consulta "select". Es decir, podemos recuperar algunos registros, sólo los que cumplan con ciertas condiciones indicadas con la cláusula "where". Por ejemplo, queremos ver el usuario cuyo nombre es "MarioPerez", para ello utilizamos "where" y luego de ella, la condición:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;select nombre, clave from usuarios where nombre='MarioPerez';&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Para las condiciones se utilizan operadores relacionales (tema que trataremos más adelante en detalle). El signo igual(=) es un operador relacional. Para la siguiente selección de registros especificamos una condición que solicita los usuarios cuya clave es igual a 'bocajunior':&lt;br /&gt;&lt;br /&gt;&lt;em&gt;select nombre, clave from usuarios where clave='bocajunior';&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Si ningún registro cumple la condición establecida con el "where", no aparecerá ningún registro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-7848502180240434751?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/7848502180240434751/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=7848502180240434751' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7848502180240434751'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7848502180240434751'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/12/recuperacin-de-registros-especficos.html' title='Recuperación de registros específicos (select - where) en Mysql'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s72-c/mysql.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8654573258051076046</id><published>2008-12-07T10:19:00.000-08:00</published><updated>2008-12-07T10:32:40.596-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mysql'/><title type='text'>Recuperación de algunos campos (select) en Mysql</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s1600-h/mysql.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s320/mysql.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5253811671749381298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Ya hemos visto cómo ver todos los registros de una tabla:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;select * from libros;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;El comando "select" recupera los registros de una tabla. Con el asterisco (*) indicamos que seleccione todos los campos de la tabla que nombramos.&lt;br /&gt;&lt;br /&gt;Podemos especificar el nombre de los campos que queremos ver separándolos por comas:&lt;br /&gt;&lt;br /&gt;&lt;em&gt; select titulo,autor,editorial from libros; &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;En la sentencia anterior la consulta mostrará sólo los campos "titulo", "autor" y "editorial". En la siguiente sentencia, veremos los campos correspondientes al título y precio de todos los libros:&lt;br /&gt;&lt;br /&gt; &lt;em&gt;select titulo,precio from libros;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Para ver solamente la editorial y la cantidad de libros tipeamos:&lt;br /&gt;&lt;br /&gt; &lt;em&gt;select editorial,cantidad from libros;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8654573258051076046?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8654573258051076046/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8654573258051076046' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8654573258051076046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8654573258051076046'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/12/recuperacin-de-algunos-campos-select.html' title='Recuperación de algunos campos (select) en Mysql'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s72-c/mysql.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-2878458618255907401</id><published>2008-12-07T10:16:00.000-08:00</published><updated>2008-12-07T10:32:03.035-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mysql'/><title type='text'>Típos de datos básicos de un campo de una tabla en Mysql</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s1600-h/mysql.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s320/mysql.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5253811671749381298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;como sabemos que al crear una tabla debemos resolver qué campos (columnas) tendrá y que tipo de datos almacenará cada uno de ellos, es decir, su estructura. Estos son algunos tipos de datos básicos:&lt;br /&gt;&lt;br /&gt;- varchar: se usa para almacenar cadenas de caracteres. Una cadena es una secuencia de caracteres. Se coloca entre comillas (simples): 'Hola'. El tipo "varchar" define una cadena de longitud variable en la cual determinamos el máximo de caracteres. Puede guardar hasta 255 caracteres. Para almacenar cadenas de hasta 30 caracteres, definimos un campo de tipo varchar(30). Si asignamos una cadena de caracteres de mayor longitud que la definida, la cadena se corta. Por ejemplo, si definimos un campo de tipo varchar(10) y le asignamos la cadena 'Buenas tardes', se almacenará 'Buenas tar' ajustándose a la longitud de 10 caracteres.&lt;br /&gt;&lt;br /&gt;- integer: se usa para guardar valores numéricos enteros, de -2000000000 a 2000000000 aprox. Definimos campos de este tipo cuando queremos representar, por ejemplo, cantidades.&lt;br /&gt;&lt;br /&gt;- float: se usa para almacenar valores numéricos decimales. Se utiliza como separador el punto (.). Definimos campos de este tipo para precios, por ejemplo.&lt;br /&gt;&lt;br /&gt;Antes de crear una tabla debemos pensar en sus campos y optar por el tipo de dato adecuado para cada uno de ellos. Por ejemplo, si en un campo almacenaremos números enteros, el tipo "float" sería una mala elección; si vamos a guardar precios, el tipo "float" es correcto, no así "integer" que no tiene decimales.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-2878458618255907401?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/2878458618255907401/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=2878458618255907401' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2878458618255907401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2878458618255907401'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/12/tpos-de-datos-bsicos-de-un-campo-de-una.html' title='Típos de datos básicos de un campo de una tabla en Mysql'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s72-c/mysql.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-3369216507224491502</id><published>2008-12-07T10:12:00.000-08:00</published><updated>2008-12-07T10:31:34.374-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mysql'/><title type='text'>Carga de registros a una tabla y su recuperación en Mysql</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s1600-h/mysql.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s320/mysql.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5253811671749381298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Un registro es una fila de la tabla que contiene los datos propiamente dichos. Cada registro tiene un dato por cada columna.&lt;br /&gt;&lt;br /&gt;Recordemos como crear la tabla "usuarios":&lt;br /&gt;&lt;br /&gt;&lt;em&gt;create table usuarios (&lt;br /&gt;  nombre varchar(30),&lt;br /&gt;  clave varchar(10)&lt;br /&gt;);&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Al ingresar los datos de cada registro debe tenerse en cuenta la cantidad y el orden de los campos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ahora vamos a agregar un registro a la tabla:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;insert into usuarios (nombre, clave) values ('MarioPerez','Mariope');&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Usamos "insert into". Especificamos los nombres de los campos entre paréntesis y separados por comas y luego los valores para cada campo, también entre paréntesis y separados por comas. &lt;br /&gt;&lt;br /&gt;La tabla usuarios ahora la podemos graficar de la siguiente forma:&lt;br /&gt;&lt;br /&gt;nombre          clave &lt;br /&gt;MarioPerez      Mariope &lt;br /&gt;&lt;br /&gt;Es importante ingresar los valores en el mismo orden en que se nombran los campos, si ingresamos los datos en otro orden, no aparece un mensaje de error y los datos se guardan de modo incorrecto.&lt;br /&gt;&lt;br /&gt;Note que los datos ingresados, como corresponden a campos de cadenas de caracteres se colocan entre comillas simples. Las comillas simples son OBLIGATORIAS.&lt;br /&gt;&lt;br /&gt;Para ver los registros de una tabla usamos "select":&lt;br /&gt;&lt;br /&gt; select nombre,clave from usuarios;&lt;br /&gt;&lt;br /&gt;Aparece un registro.&lt;br /&gt;&lt;br /&gt;El comando "select" recupera los registros de una tabla. Luego del comando select indicamos los nombres de los campos a rescatar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-3369216507224491502?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/3369216507224491502/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=3369216507224491502' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3369216507224491502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3369216507224491502'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/12/carga-de-registros-una-tabla-y-su.html' title='Carga de registros a una tabla y su recuperación en Mysql'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s72-c/mysql.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-2666841545274719657</id><published>2008-12-07T10:03:00.000-08:00</published><updated>2008-12-07T10:31:05.848-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mysql'/><title type='text'>Creación de una tabla y Mostrar sus campos en Mysql</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s1600-h/mysql.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s320/mysql.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5253811671749381298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Una base de datos almacena sus datos en tablas.&lt;br /&gt;&lt;br /&gt;Una tabla es una estructura de datos que organiza los datos en columnas y filas; cada columna es un campo (o atributo) y cada fila, un registro. La intersección de una columna con una fila, contiene un dato específico, un solo valor.&lt;br /&gt;&lt;br /&gt;Cada registro contiene un dato por cada columna de la tabla.&lt;br /&gt;&lt;br /&gt;Cada campo (columna) debe tener un nombre. El nombre del campo hace referencia a la información que almacenará.&lt;br /&gt;&lt;br /&gt;Cada campo (columna) también debe definir el tipo de dato que almacenará.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;NOMBRE                CLAVE &lt;br /&gt;MarioPerez            Mariope &lt;br /&gt;MariaGarcia           Mary &lt;br /&gt;DiegoRodriguez        z8080 &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Gráficamente acá tenemos la tabla usuarios, que contiene dos campos llamados:nombre y clave. Luego tenemos tres registros almacenados en esta tabla, el primero almacena en el campo nombre el valor "MarioPerez" y en el campo clave "Mariope", y así sucesivamente con los otros dos registros.&lt;br /&gt;&lt;br /&gt;Las tablas forman parte de una base de datos.&lt;br /&gt;&lt;br /&gt;Nosotros trabajaremos con la base de datos llamada "administracion", que ya hemos creado en el servidor mysqlya.com.ar.&lt;br /&gt;&lt;br /&gt;Para ver las tablas existentes en una base de datos tipeamos:&lt;br /&gt;&lt;br /&gt; show tables;&lt;br /&gt;&lt;br /&gt;Deben aparecer todas las tablas que han creado los visitantes al sitio mysqlya.com.ar&lt;br /&gt;&lt;br /&gt;Al crear una tabla debemos resolver qué campos (columnas) tendrá y que tipo de datos almacenarán cada uno de ellos, es decir, su estructura.&lt;br /&gt;&lt;br /&gt;La tabla debe ser definida con un nombre que la identifique y con el cual accederemos a ella.&lt;br /&gt;&lt;br /&gt;Creamos una tabla llamada "usuarios", tipeamos:&lt;br /&gt;&lt;br /&gt;create table usuarios (&lt;br /&gt;  nombre varchar(30),&lt;br /&gt;  clave varchar(10)&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;Si intentamos crear una tabla con un nombre ya existente (existe otra tabla con ese nombre), mostrará un mensaje de error indicando que la acción no se realizó porque ya existe una tabla con el mismo nombre.&lt;br /&gt;&lt;br /&gt;Para ver las tablas existentes en una base de datos tipeamos nuevamente:&lt;br /&gt;&lt;br /&gt; show tables;&lt;br /&gt;&lt;br /&gt;Ahora aparece "usuarios" entre otras que ya pueden estar creadas.&lt;br /&gt;&lt;br /&gt;Cuando se crea una tabla debemos indicar su nombre y definir sus campos con su tipo de dato. En esta tabla "usuarios" definimos 2 campos:&lt;br /&gt;&lt;br /&gt;- nombre: que contendrá una cadena de hasta 30 caracteres de longitud, &lt;br /&gt;          que almacenará el nombre de usuario y&lt;br /&gt;- clave:  otra cadena de caracteres de 10 de longitud, que guardará la clave de &lt;br /&gt;          cada usuario.&lt;br /&gt;&lt;br /&gt;Cada usuario ocupará un registro de esta tabla, con su respectivo nombre y clave.&lt;br /&gt;&lt;br /&gt;Para ver la estructura de una tabla usamos el comando "describe" junto al nombre de la tabla:&lt;br /&gt;&lt;br /&gt; describe usuarios;&lt;br /&gt;&lt;br /&gt;Aparece lo siguiente:&lt;br /&gt;&lt;br /&gt;Field  Type          Null&lt;br /&gt;_________________________&lt;br /&gt;nombre varchar(30)   YES&lt;br /&gt;clave  varchar(10)   YES&lt;br /&gt;&lt;br /&gt;Esta es la estructura de la tabla "usuarios"; nos muestra cada campo, su tipo, lo que ocupa en bytes y otros datos como la aceptación de valores nulos etc, que veremos más adelante en detalle. &lt;br /&gt;&lt;br /&gt;Para eliminar una tabla usamos "drop table". Tipeamos:&lt;br /&gt;&lt;br /&gt; drop table usuarios;&lt;br /&gt;&lt;br /&gt;Si tipeamos nuevamente:&lt;br /&gt;&lt;br /&gt; drop table usuarios;&lt;br /&gt;&lt;br /&gt;Aparece un mensaje de error, indicando que no existe, ya que intentamos borrar una tabla inexistente.&lt;br /&gt;&lt;br /&gt;Para evitar este mensaje podemos tipear:&lt;br /&gt;&lt;br /&gt; drop table if exists usuarios;&lt;br /&gt;&lt;br /&gt;En la sentencia precedente especificamos que elimine la tabla "usuarios" si existe.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-2666841545274719657?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/2666841545274719657/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=2666841545274719657' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2666841545274719657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2666841545274719657'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/12/creacin-de-una-tabla-y-mostrar-sus.html' title='Creación de una tabla y Mostrar sus campos en Mysql'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s72-c/mysql.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8988551790182797232</id><published>2008-10-26T18:23:00.000-07:00</published><updated>2008-10-26T18:24:56.378-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Ejemplo para crear un arreglo de controles en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para crear un arreglo de controles podemos hacerlo de 2 maneras.&lt;br /&gt;&lt;br /&gt;La primera opción es copiar un control ya dibujado y pegarlo en el formulario. Luego visual basic nos mostrará un diálogo preguntándonos si queremos crear una matriz de controles. Al contestar que si, ya se ha creado un arreglo con 2 controles, en este caso el primer control tendrá el índice 0 y el que pegamos el índice 1. Si queremos seguir agregando mas controles cuando peguemos nuevamente otro control visual basic no nos preguntará nuevamente si deseamos crear una matriz del control ya que esta ya está creada, y por lo tanto agregará un nuevo control y le agregará el número de índice correspondiente para diferenciarlo del resto, en este caso el 2. Ahora si observas en la propiedad index de los controles que forman el arreglo verás que estos tienen un número de índice que antes no tenían al no formar parte de un arreglo de controles&lt;br /&gt;&lt;br /&gt;Nota: cualquier control de visual basic que no tenga un arreglo creado, la propiedad index de los mismos no tendrá ningún número o valor, ya que esta propiedad está reservada para los controles que formen parte de un vector o arreglo.&lt;br /&gt;&lt;br /&gt;La otra opción para crear un arreglo, es ingresar directamente el número de índice en la propiedad index del control del cual queremos crear un arreglo.&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;El ejemplo consiste en crear 10 Arreglos de TextBox y lo que se va a hacer es mediante un bucle poner la propiedad Enabled de los controles en False, es decir los vamos a deshabilitar a todos.&lt;br /&gt;&lt;br /&gt;Como te darás cuenta, si tuvieses que hacer esto manualmente, es decir deshabilitar cada TextBox individualmente tendrías que escribir &lt;br /&gt;&lt;br /&gt;&lt;em&gt;text1.enabled = False&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;y así para cada uno de los controles. en cambio haciendo un arreglo de controles, recorremos mediante un For todos los controles refiriendonos al índice y estableciéndole la propiedad Enabled en False para deshabilitarlos.&lt;br /&gt;&lt;br /&gt;Create un arreglo de 10 TextBox Para eso coloca un text1 en el formulario. después copialo y pegalo, vb te va a preguntará si querés hacer un arreglo, decile que si, hasta que tengas 10 o los que quieras.&lt;br /&gt;&lt;br /&gt;Si te fijás ahora en la ventana de propiedades, cuando seleccionas un textBox en la propiedad index te vas a dar cuenta que poseen un número, ese es el índice que los identifica, y por medio de ese índice nos vamos a referir en el bucle For&lt;br /&gt;&lt;br /&gt;El código de este ejemplo bien simple quedaría así:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim i As Integer&lt;br /&gt;&lt;br /&gt;For i = 0 To 9&lt;br /&gt;&lt;br /&gt;text1(i).Enabled = False&lt;br /&gt;&lt;br /&gt;Next&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Como podés ver, le pasamos en el parámetro índice el valor de la variable i para referirnos a ese text1 en particular y asignarle la propiedad Enabled en False.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8988551790182797232?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8988551790182797232/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8988551790182797232' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8988551790182797232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8988551790182797232'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/ejemplo-para-crear-un-arreglo-de.html' title='Ejemplo para crear un arreglo de controles en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-3308272764981678568</id><published>2008-10-26T18:20:00.000-07:00</published><updated>2008-10-26T18:21:25.764-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Arreglos de controles en visual basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;hasta ahora se vió los aspectos de los vectores y matrices como estructuras que nos permiten almacenar datos y resolver problemas lógicos en nuestros programas. Ahora veremos los Arreglos de controles o vectores de controles&lt;br /&gt;&lt;br /&gt;Un arreglo de controles es un conjunto de controles, todos de la misma clase (todos TextBox, todos Label, etc...) que poseen un mismo nombre y cada uno posee un número de índice que los identifica y los hace únicos con respecto a los demás, y conformando entonces un vector de controles. por ejemplo en vez de tener 3 Command, llamados command1, command2 y command3, puedo crear un arreglo de 3 botones. Estos 3 botones comparten el mismo nombre pero cada botón se distingue del resto por un número de índice, es decir si por ejemplo nuestro botón de comando se llama cmd pasaría a tener un cmd(1), un cmd (2) y un cmd(3).&lt;br /&gt;&lt;br /&gt;En un arreglo de controles todos los controles deben ser del mismo tipo y además no puede haber un control dentro del arreglo que tenga el mismo número de índice, ya que sería imposible identificarlo en el conjunto, además VB no lo permitiría y nos mostraría un error.&lt;br /&gt;&lt;br /&gt;Las ventajas principales que tenemos cuando trabajamos con un vector de controles son las siguientes:&lt;br /&gt;&lt;br /&gt;Todos los controles que forman el arreglo comparten el mismo procedimiento de código, con lo cual si tenemos muchos controles que tienen que ejecutar la misma instrucción no debemos escribir código de más en cada control. &lt;br /&gt;Tener 20 cajas de texto, por ejemplo, consumen mucha mas memoria que utilizar un vector de 20 cajas de texto. &lt;br /&gt;&lt;br /&gt;Es posible crear controles en tiempo de ejecución, a partir de un arreglo de controles ya creado. &lt;br /&gt;&lt;br /&gt;Es mas fácil manipular y establecer las propiedades en un vector de controles refiriendonos al subíndice de los mismos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-3308272764981678568?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/3308272764981678568/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=3308272764981678568' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3308272764981678568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3308272764981678568'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/arreglos-de-controles-en-visual-basic.html' title='Arreglos de controles en visual basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-6074039120824165242</id><published>2008-10-26T18:15:00.000-07:00</published><updated>2008-10-26T18:16:12.465-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Funciónes Join, Split y Filter  en visual basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Visual basic en su sexta versión incorpora estas 3 funciones para trabajar solo con vectores. Estas funciones están relacionadas con el tratamiento de las cadenas de caracteres.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Función Join&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Esta función se utiliza para unir en una sola variable el conjunto de subcadenas de un vector. Esta función tiene solo 2 parámetros y es muy fácil de usar. Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim micadena as string&lt;br /&gt;Dim vector(1 To 3) As String&lt;br /&gt;&lt;br /&gt;vector(1) = "Carlos"&lt;br /&gt;vector(2) = "Pedro"&lt;br /&gt;vector(3) = "Juan"&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Ahora ejecutando Join, la variable micadena pasaría a valer "Carlos-Pedro-Juan"&lt;br /&gt;&lt;br /&gt;&lt;em&gt;micadena = join (vector, "-")&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Nota: En el primer parámetro de la función debemos indicar el vector en el cual trabajar, y en el segundo se debe indicar un delimitador de caracter para separar las cadenas. Si no especificamos ninguno, visual basic utilizará por defecto un espacio vacío o en blanco (" ") para separar cada subcadena .&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Función Split:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Esta función hace el trabajo inverso de la función Join.&lt;br /&gt;&lt;br /&gt;Split se utiliza para rellenar un vector dinámico que contiene un número de subcadenas a partir de una cadena que le pasamos como parámetro a la función. &lt;br /&gt;&lt;br /&gt;Para aclarar un poco un ejemplo&lt;br /&gt;&lt;br /&gt; &lt;em&gt;Private Sub Form_Load()&lt;br /&gt;&lt;br /&gt;    'Una variable para almacenar una cadena&lt;br /&gt;    Dim Micadena As String 'Vector dinámico&lt;br /&gt;    Dim Vector() As String&lt;br /&gt;&lt;br /&gt;    'Le damos un valor a la variable&lt;br /&gt;    Micadena = "maria/natalia/romina"&lt;br /&gt;&lt;br /&gt;    'Ejecutamos la función Split&lt;br /&gt;    Vector = Split(Micadena, "/")&lt;br /&gt;&lt;br /&gt;    'Ahora el vector dinámico pasaría a _&lt;br /&gt;     contener los siguientes valores:&lt;br /&gt;&lt;br /&gt;    Vector(0) = "maría"&lt;br /&gt;    Vector(1) = "natalia"&lt;br /&gt;    Vector(2) = "Romina"&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Nota: una cosa importante es que en el vector anterior no se ha declarado un rango , ya que la función devuelve un vector cuya cantidad de elementos se ignora, es decir no se conoce.&lt;br /&gt;&lt;br /&gt;Enlaces relacionados a split&lt;br /&gt;Pasar un archivo de texto a un array o matriz usando split&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Función Filter :&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;La función Filter se utiliza para filtrar subcadenas de un vector dependiendo de un determinado criterio de búsqueda. Los parámetros que lleva la función son los siguientes:&lt;br /&gt;&lt;br /&gt;Filter (vector donde buscar, cadena a buscar, valor booleano que indica si incluir o excluir la cadena)&lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;    &lt;em&gt;' Vector&lt;br /&gt;    Dim Alumnos(1 To 4) As String&lt;br /&gt;&lt;br /&gt;    ' Vector dinámico para almacenar el resultado&lt;br /&gt;    Dim Resultado() As String&lt;br /&gt;&lt;br /&gt;    Alumnos(1) = "Luciano"&lt;br /&gt;    Alumnos(2) = "Lucas"&lt;br /&gt;    Alumnos(3) = "juan"&lt;br /&gt;    Alumnos(4) = "Natalia"&lt;br /&gt;&lt;br /&gt;    ' Ejecutamos Filter&lt;br /&gt;&lt;br /&gt;    Resultado = Filter(Alumnos, "Lu", True)&lt;br /&gt;&lt;br /&gt;    ' Ahora el vector dinámico "resultado" pasa a contener&lt;br /&gt;&lt;br /&gt;    MsgBox Resultado(0), vbInformation ' Luciano&lt;br /&gt;    MsgBox Resultado(1), vbInformation ' Lucas&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-6074039120824165242?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/6074039120824165242/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=6074039120824165242' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6074039120824165242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6074039120824165242'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/funcines-join-split-y-filter-en-visual.html' title='Funciónes Join, Split y Filter  en visual basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8359585120992219635</id><published>2008-10-26T18:12:00.000-07:00</published><updated>2008-10-26T18:13:16.155-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Funciones de VB para trabajar con Arreglos (LBound y UBound) en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Estas funciones son ideales para trabajar con vectores y matrices que han sido declaradas dinámicamente&lt;br /&gt;&lt;br /&gt;Lbound y Ubound nos devuelve un número de tipo Long que nos permite saber el límite superior e inferior de un vector o una matriz. &lt;br /&gt;&lt;br /&gt;Ejemplo de Ubound y Bound&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub Form_Load()&lt;br /&gt;&lt;br /&gt;    'Variables Para almacenar los límites superior e inferior&lt;br /&gt;    Dim LimiteInferior As Long&lt;br /&gt;    Dim LimiteSuperior As Long&lt;br /&gt;&lt;br /&gt;    'Declaramos 3 matrices, de una dimensión, _&lt;br /&gt;     de dos dimensiones y de 3&lt;br /&gt;    Dim UnVector(1 To 520) As Integer&lt;br /&gt;    Dim UnaMatriz(20, 5 To 100) As String&lt;br /&gt;    Dim OtraMatriz(10, 20, 30) As Long&lt;br /&gt;&lt;br /&gt;    ' Devuelve 1&lt;br /&gt;    LimiteInferior = LBound(UnVector)&lt;br /&gt;    ' Devuelve 520&lt;br /&gt;    LimiteSuperior = UBound(UnVector)&lt;br /&gt;    ' Devuelve 0&lt;br /&gt;    LimiteInferior = LBound(UnaMatriz, 1)&lt;br /&gt;    ' Devuelve 20&lt;br /&gt;    LimiteSuperior = UBound(UnaMatriz, 1)&lt;br /&gt;    ' Devuelve 5&lt;br /&gt;    LimiteInferior = LBound(UnaMatriz, 2)&lt;br /&gt;    ' Devuelve 100&lt;br /&gt;    LimiteSuperior = UBound(UnaMatriz, 2)&lt;br /&gt;    ' Devuelve 0&lt;br /&gt;    LimiteInferior = LBound(OtraMatriz, 1)&lt;br /&gt;    ' Devuelve 10&lt;br /&gt;    LimiteSuperior = UBound(OtraMatriz, 1)&lt;br /&gt;    ' Devuelve 0&lt;br /&gt;    LimiteInferior = LBound(OtraMatriz, 2)&lt;br /&gt;    ' Devuelve 20&lt;br /&gt;    LimiteSuperior = UBound(OtraMatriz, 2)&lt;br /&gt;&lt;br /&gt;    ' Devuelve 0&lt;br /&gt;    LimiteInferior = LBound(OtraMatriz, 3)&lt;br /&gt;    ' Devuelve 30&lt;br /&gt;    LimiteSuperior = UBound(OtraMatriz, 3)&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt; &lt;br /&gt; &lt;br /&gt;Como habrás visto en los ejemplos anteriores, para conocer los limites superiores e inferiores en los vectores, solo se debe pasar como parámetro a las funciones Lbound y Ubound, el nombre del vector con el cual queremos trabajar. &lt;br /&gt;&lt;br /&gt;En cambio en las matrices se añade un segundo parámetro en el cual debemos indicar el número de la dimensión en la cual queremos recuperar los valores.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8359585120992219635?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8359585120992219635/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8359585120992219635' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8359585120992219635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8359585120992219635'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/funciones-de-vb-para-trabajar-con.html' title='Funciones de VB para trabajar con Arreglos (LBound y UBound) en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-5244104564837410046</id><published>2008-10-26T18:09:00.001-07:00</published><updated>2008-10-26T18:09:51.381-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Ejemplo de vectores y arreglos dinámicos en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En lo siguiente, primero declaramos un vector de la forma como lo hacemos siempre con la diferencia de que en vez de colocar un tamaño declaramos el vector solo con los paréntesis :&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim alumnos () as string&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Ahora le establecemos un tamaño, por ejemplo de 4 elementos y le agregamos valores:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;ReDim alumnos(1 To 4) As String&lt;br /&gt;&lt;br /&gt;alumnos(1) = "Luciano"&lt;br /&gt;alumnos(2) = "Esteban"&lt;br /&gt;alumnos(3) = "Mariano"&lt;br /&gt;alumnos(4) = "Pedro"&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Ahora para redimensionar el tamaño del vector por ejemplo a 7 elementos, utilizamos la función ReDim Preserve, para preservar los 4 valores anteriores y le agregamos 3 valores mas:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;ReDim Preserve alumnos(1 To 7)&lt;br /&gt;&lt;br /&gt;alumnos(5) = "Karina"&lt;br /&gt;alumnos(6) = "Raúl"&lt;br /&gt;alumnos(7) = "Romina"&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Nota: si utilizamos la sentencia ReDim, o mejor dicho si redimensionamos el vector sin utilizar la sentencia ReDim preserve, los valores que contenía el vector anteriormente se perderán&lt;br /&gt;&lt;br /&gt;Eliminar o vaciar un vector&lt;br /&gt;&lt;br /&gt;Para eliminar un array, arreglo o vector, podemos utilizar Erase, por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Erase Nombre_Del_Vector&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-5244104564837410046?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/5244104564837410046/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=5244104564837410046' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5244104564837410046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5244104564837410046'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/ejemplo-de-vectores-y-arreglos-dinmicos.html' title='Ejemplo de vectores y arreglos dinámicos en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-4762204806704344785</id><published>2008-10-26T18:05:00.000-07:00</published><updated>2008-10-26T18:06:27.231-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Vectores dinámicos en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Visual basic posee una sentencia o función que nos permite cambiar el largo de un vector en tiempo de ejecución, dándonos así mas flexibilidad, y de esta manera no desperdiciar memoria y recursos de la pc creando vectores mas largos de lo que realmente necesitamos. &lt;br /&gt;&lt;br /&gt;Esta función se llama ReDim y ReDim Preserve.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-4762204806704344785?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/4762204806704344785/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=4762204806704344785' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4762204806704344785'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4762204806704344785'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/vectores-dinmicos-en-visual-basic-60.html' title='Vectores dinámicos en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8283431673366469927</id><published>2008-10-26T18:02:00.000-07:00</published><updated>2008-10-26T18:03:47.764-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Ejemplo de matriz de 2 dimensiones en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Matriz bidimensionales de 6 x 8 (de 2 dimensiones).&lt;br /&gt;&lt;br /&gt;Dim personas (1 to 6, 1 to 8) as string&lt;br /&gt; &lt;br /&gt;Si luego quisiera acceder a los datos de la misma basta con referirnos a los subíndices&lt;br /&gt;&lt;br /&gt;Por ejemplo:&lt;br /&gt;&lt;br /&gt;personas (1, 1) = "Natalia"&lt;br /&gt;personas (2, 1) = "pedro"&lt;br /&gt;personas (1, 7) = "valeria"&lt;br /&gt;personas (1, 8) = "josé"&lt;br /&gt;personas (2, 2) = "carolina"&lt;br /&gt;personas (4, 1) = "raquel"&lt;br /&gt;personas (6, 2) = "eustaquio"&lt;br /&gt;personas (6, 5) = "maria"&lt;br /&gt;personas (6, 8) = "mariana"&lt;br /&gt; &lt;br /&gt;El total de índices posibles para almacenar datos o valores en el ejemplo anterior es de 48 datos, ya que si multiplicamos 6 x 8 nos da como total 48 valores posibles para utilizar en la matriz bidimensional.&lt;br /&gt;&lt;br /&gt;En este ejemplo creamos una matriz de 3 dimensiones de 3 x 3 x 3&lt;br /&gt;&lt;br /&gt;Dim cubo (1 to 3, 1 to 3, 1 to 3) as integer&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;para acceder a los datos sería exactamente de la misma manera pero debemos utilizar un índice mas. &lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;cubo (1, 1 , 1) = 50&lt;br /&gt;cubo (1, 1 , 2) = 50&lt;br /&gt;cubo (1, 1 , 3) = 50&lt;br /&gt;cubo (1, 2 , 1) = 50&lt;br /&gt;cubo (1, 2 , 2) = 50&lt;br /&gt;cubo (1, 2 , 3) = 50&lt;br /&gt;cubo (1, 3 , 1) = 50&lt;br /&gt;cubo (1, 3 , 2) = 50&lt;br /&gt;cubo (1, 3 , 3) = 50&lt;br /&gt;cubo (2, 1 , 1) = 50&lt;br /&gt;cubo (2, 1 , 2) = 50&lt;br /&gt;cubo (2, 1 , 3) = 50&lt;br /&gt;cubo (2, 2 , 1) = 50&lt;br /&gt;cubo (2, 2 , 2) = 50&lt;br /&gt;cubo (2, 2 , 3) = 50&lt;br /&gt;cubo (2, 3 , 1) = 50&lt;br /&gt;cubo (2, 3 , 2) = 50&lt;br /&gt;cubo (2, 3 , 3) = 50&lt;br /&gt;cubo (3, 1 , 1) = 50&lt;br /&gt;cubo (3, 1 , 2) = 50&lt;br /&gt;cubo (3, 1 , 3) = 50&lt;br /&gt;cubo (3, 2 , 1) = 50&lt;br /&gt;cubo (3, 2 , 2) = 50&lt;br /&gt;cubo (3, 2 , 3) = 50&lt;br /&gt;cubo (3, 3 , 1) = 50&lt;br /&gt;cubo (3, 3 , 2) = 50&lt;br /&gt;cubo (3, 3 , 3) = 50&lt;br /&gt;&lt;br /&gt;En el ejemplo anterior, que es un poco extenso, es para que veas todos los posibles valores que puedes almacenar en una matriz de 3 x 3 x 3, y que da como resultado un arreglo de 27 valores posibles.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8283431673366469927?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8283431673366469927/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8283431673366469927' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8283431673366469927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8283431673366469927'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/ejemplo-de-matriz-de-2-dimensiones-en.html' title='Ejemplo de matriz de 2 dimensiones en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-7256638812800914215</id><published>2008-10-26T17:58:00.000-07:00</published><updated>2008-10-26T17:59:34.436-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Matrices en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Las matrices son arreglos de mas de 1 dimensión (2 o mas), a diferencia de los vectores que poseen una sola dimensión. &lt;br /&gt;&lt;br /&gt;Podemos imaginar una matriz bidimensional ( 2 dimensiones) , como una cuadrícula con filas y columnas, donde las filas representarían las coordenadas x y las columnas las coordenadas y. &lt;br /&gt;&lt;br /&gt;A una matriz de 3 dimensiones o tridimensional se la puede imaginar con las coordenadas x, y, z, y esta es ideal para representar figuras en el espacio por ejemplo.&lt;br /&gt;&lt;br /&gt;Las matrices se declaran en el código de manera igual que los vectores, con la diferencia que debemos indicar mas subíndices de acuerdo a la cantidad de dimensiones que posea la matriz. &lt;br /&gt;&lt;br /&gt;por lo general no se suele utilizar matrices de mas de 3 dimensiones..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-7256638812800914215?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/7256638812800914215/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=7256638812800914215' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7256638812800914215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7256638812800914215'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/matrices-en-visual-basic-60.html' title='Matrices en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-161310429729865754</id><published>2008-10-21T19:18:00.000-07:00</published><updated>2008-10-21T19:25:47.468-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Varios'/><title type='text'>¡Las Primeras "1000 VISITAS"!</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SOwoZH_I6rI/AAAAAAAAAG4/3Z4YMy5L6ac/s1600-h/P1000.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SOwoZH_I6rI/AAAAAAAAAG4/3Z4YMy5L6ac/s320/P1000.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5254619277340240562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bueno pues aquí estamos festejando las primeras mil visitas de este blog ha escasos 2meses de haberlo publicado, este blog esta diseñado por un servidor para que sea de gran ayuda a todas aquellas personas que desean aprender algo nuevo cada día.&lt;br /&gt;&lt;br /&gt;Mis mas sinceros agradecimientos a aquellas personas que visitan este blog, esperando que la información contenida aquí sea de gran utilidad para los usuarios, reiterandoles que si tienen alguna duda solo escríbanme a mi correo electronico &lt;em&gt;electronico_44@hotmail.com&lt;/em&gt;, y tratare de aclarar las dudas que tengan en el menor tiempo posible.&lt;br /&gt;&lt;br /&gt;Esfuércense por lo que quieren, que en el momento menos esperado obtendremos resultados, solo hay que tener un poco de paciencia. Edg@r&lt;br /&gt;&lt;br /&gt;Muchísimas Gracias.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-161310429729865754?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/161310429729865754/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=161310429729865754' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/161310429729865754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/161310429729865754'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/las-primeras-1000-visitas.html' title='¡Las Primeras &quot;1000 VISITAS&quot;!'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SOwoZH_I6rI/AAAAAAAAAG4/3Z4YMy5L6ac/s72-c/P1000.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-4646720083566310723</id><published>2008-10-21T19:16:00.000-07:00</published><updated>2008-10-21T19:17:46.910-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Utilizar una estructura Type o UDT en un arreglo con Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;Como vimos, en un arreglo podemos almacenar datos de cualquier tipo pero no mezclarlos, es decir podemos crear arreglos de tipo string, de tipo Integer etc,,, pero sin duda que lo mas importante y de mas utilidad a la hora de programar es la utilización de datos definidos por nosotros mediante una estructura Type&lt;br /&gt;&lt;br /&gt;Por ejemplo:&lt;br /&gt;&lt;br /&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;' Estructura de dato para el vector&lt;br /&gt;Private Type agenda&lt;br /&gt;&lt;br /&gt;    nombre As String&lt;br /&gt;    apellido As String&lt;br /&gt;    cpostal As Integer&lt;br /&gt;&lt;br /&gt;End Type&lt;br /&gt;&lt;br /&gt;' Declaramos el vector&lt;br /&gt;Dim personas(1 To 3) As agenda&lt;br /&gt;&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;&lt;br /&gt;    ' Llenamos con datos para el elemento 1 del arreglo&lt;br /&gt;&lt;br /&gt;    personas(1).nombre = "carlos"&lt;br /&gt;    personas(1).apellido = "Martínez"&lt;br /&gt;    personas(1).cpostal = 1900&lt;br /&gt;&lt;br /&gt;    ' Llenamos con datos para el elemento 2 del arreglo&lt;br /&gt;&lt;br /&gt;    personas(2).nombre = "Héctor"&lt;br /&gt;    personas(2).apellido = "rosales"&lt;br /&gt;    personas(2).cpostal = 1898&lt;br /&gt;&lt;br /&gt;    ' Llenamos con datos para el elemento 3 del arreglo&lt;br /&gt;&lt;br /&gt;    personas(3).nombre = "Albert"&lt;br /&gt;    personas(3).apellido = "Einstein"&lt;br /&gt;    personas(3).cpostal = 1324&lt;br /&gt;&lt;br /&gt;End Sub &lt;br /&gt;&lt;br /&gt;Para utilizar una estructura definida por nosotros en vectores o matrices, se hace de la forma habitual, con la diferencia que debemos declarar el arreglo utilizando el tipo de dato Type que hayamos creado, en este caso Dim personas(1 to 3) as agenda&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-4646720083566310723?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/4646720083566310723/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=4646720083566310723' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4646720083566310723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4646720083566310723'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/utilizar-una-estructura-type-o-udt-en.html' title='Utilizar una estructura Type o UDT en un arreglo con Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-3819682045924491025</id><published>2008-10-21T19:11:00.000-07:00</published><updated>2008-10-21T19:12:42.417-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Acceder a los datos de un arreglo en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;Para acceder a los datos de un arreglo o vector, debemos hacerlo mediante el índice o número del elemento del mismo. Por ejemplo:&lt;br /&gt;&lt;br /&gt;Dim alumnos(1 To 4) As String&lt;br /&gt;&lt;br /&gt;alumnos(1) = "juan"&lt;br /&gt;alumnos(2) = "micaela"&lt;br /&gt;alumnos(3) = "maría"&lt;br /&gt;alumnos(4) = "ignacio"&lt;br /&gt;&lt;br /&gt;Primero declaramos un arreglo llamado alumnos, de tipo string y que contendrá 4 elementos. Luego le asignamos un valor de cadena como a cualquier otra variable de tipo string, pero con la diferencia que para referirnos al elemento utilizamos el n° de índice del mismo.&lt;br /&gt;&lt;br /&gt;Otro ejemplo&lt;br /&gt;&lt;br /&gt;Dim paises(2) As String&lt;br /&gt;    &lt;br /&gt;    ' Llena el vector con datos&lt;br /&gt;    paises(0) = "Argentina"&lt;br /&gt;    paises(1) = "Perú"&lt;br /&gt;    paises(2) = "Brasil"&lt;br /&gt;    &lt;br /&gt;    ' Recorre los elementos del vector&lt;br /&gt;    For x = 0 To 2&lt;br /&gt;&lt;br /&gt;        MsgBox "Nombre del país : " &amp; paises(x)&lt;br /&gt;&lt;br /&gt;    Next x &lt;br /&gt;&lt;br /&gt;En este último ejemplo, declaramos y creamos un vector de 3 elementos que contendrá el nombre de 3 países. Luego en un bucle For utilizamos la función MsgBox para mostrar los elementos del arreglo, pasándole como parámetro del índice la variable x del bucle For.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-3819682045924491025?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/3819682045924491025/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=3819682045924491025' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3819682045924491025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3819682045924491025'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/acceder-los-datos-de-un-arreglo-en.html' title='Acceder a los datos de un arreglo en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-4985334975849818877</id><published>2008-10-21T19:09:00.000-07:00</published><updated>2008-10-21T19:10:07.068-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Declaración de los arreglos en el código con Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;Para crear un arreglo se debe en primer lugar declararlo como cualquier otra variable, la única diferencia es que debemos indicar la cantidad de elementos que contendrá el arreglo, colocando el número de índice entre paréntesis. Por ejemplo :&lt;br /&gt;&lt;br /&gt;Lo siguiente crea un arreglo de 15 elementos o datos de tipo integer&lt;br /&gt;&lt;br /&gt;Dim miArreglo (1 to 15) as integer&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Esto crea un arreglo de 11 elementos o datos de tipo String&lt;br /&gt;&lt;br /&gt;Dim empleados (10) as String&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Como podemos ver en el primer ejemplo hemos declarado un arreglo llamado miArreglo y entre paréntesis hemos declarado el rango de capacidad del mismo, es decir la cantidad de datos que podrá contener&lt;br /&gt;&lt;br /&gt;El primer número , el 1 , indica el límite inferior del mismo, y el número 15 indica el límite máximo del arreglo, conformando de esta manera un arreglo que podrá almacenar 15 datos de tipo string.&lt;br /&gt;&lt;br /&gt;En el segundo ejemplo, declaramos un arreglo de 11 elementos de tipo string. Como podés ver hemos indicado solo un número que representa el valor máximo del mismo. Cabe aclarar que hemos puesto de índice el número 10, pero en realidad el arreglo contiene 11 elementos ya que cuando NO indicamos el limite inferior , se asume que el mismo comienza desde el 0.&lt;br /&gt;&lt;br /&gt;Importante: los arreglos se dividen en 2 grupos, los vectores y las matrices. Los vectores son arreglos que contienen una sola dimensión y las matrices 2 o mas dimensiones.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-4985334975849818877?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/4985334975849818877/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=4985334975849818877' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4985334975849818877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4985334975849818877'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/declaracin-de-los-arreglos-en-el-cdigo.html' title='Declaración de los arreglos en el código con Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-4562942468370130122</id><published>2008-10-21T19:07:00.000-07:00</published><updated>2008-10-21T19:08:17.641-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Arreglos y Vectores en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;Los Arreglos se utilizan para almacenar un conjunto de variables, que sean del mismo tipo de dato, y todas estas bajo un mismo nombre. &lt;br /&gt;&lt;br /&gt;Por ejemplo imaginemos que tenemos 20 variables de tipo String que almacenan nombres (nombre1, nombre2, etc..). si yo ahora quisiera pasar todas estas cadenas a minúsculas tendría que utilizar la función Lcase con cada variable: nombre1 = Lcase(nombre1), nombre2 = Lcase(nombre2), etc..&lt;br /&gt;&lt;br /&gt;En cambio si utilizara un arreglo solucionaría mi problema solo a esto&lt;br /&gt;&lt;br /&gt;    Dim nombres(30) As String&lt;br /&gt;&lt;br /&gt;    For x = 0 To 30&lt;br /&gt;&lt;br /&gt;        nombres(x) = LCase(nombres(x))&lt;br /&gt;    &lt;br /&gt;    Next &lt;br /&gt;&lt;br /&gt;Siguiendo el ejemplo anterior: en vez de escribir la sentencia Lcase 30 veces para cada variable, hemos utilizado un arreglo llamado nombres con un número de índice 30 , es decir que almacena 30 datos de tipo String&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-4562942468370130122?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/4562942468370130122/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=4562942468370130122' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4562942468370130122'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4562942468370130122'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/arreglos-y-vectores-en-visual-basic-60.html' title='Arreglos y Vectores en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-6760208172265917243</id><published>2008-10-21T19:05:00.000-07:00</published><updated>2008-10-21T19:06:06.335-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Funciones para presentar mensajes en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;Visual Basic posee 2 tipos de funciones para presentar mensajes, ellas son MsgBox e InputBox.&lt;br /&gt;&lt;br /&gt;Función &lt;strong&gt;InputBox&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;La función InputBox presenta un mensaje al usuario, permitiéndole ingresar un valor en una caja de texto:&lt;br /&gt;&lt;br /&gt;Como se dijo la función InputBox presenta un cuadro de diálogo donde el usuario puede ingresar un texto y luego aceptar o cancelar dicho cuadro de diálogo. &lt;br /&gt;&lt;br /&gt;Los parámetros principales de esta función son:&lt;br /&gt;&lt;br /&gt;InputBox (Promt,Title, Default)&lt;br /&gt;&lt;br /&gt;El parámetro Prompt específica la leyenda que mostrará la caja de mensajes. &lt;br /&gt;El parámetro Title especifica el título que llevará el cuadro de diálogo. &lt;br /&gt;El parámetro Default es el texto que mostrará la caja de texto. &lt;br /&gt; &lt;br /&gt;El aspecto mas importante de InputBox es que nos devuelve una cadena con lo que haya ingresado el usuario en la caja de texto. Luego podemos realizar una tarea específica dependiendo del valor devuelto. &lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim retorno As String&lt;br /&gt;&lt;br /&gt;retorno = InputBox("Ingrese algo en la caja de texto", "Ejemplo")&lt;br /&gt;&lt;br /&gt;MsgBox "Usted ingresó:" &amp; retorno&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;En el ejemplo anterior, en la variable Retorno se almacenará el valor que haya ingresado el usuario cuando haga Click en el botón de Aceptar. &lt;br /&gt;&lt;br /&gt;Cuando el usuario presiona Candelar, el InputBox devuelve una cadena vacía. Esto es importante tenerlo en cuenta para realizar una o tal acción&lt;br /&gt;&lt;br /&gt;Si quiseramos por ejemplo desplegar un InputBox, y que este no se cierre hasta que el usuario si o si haya ingresado un valor, podemos hacerlo de la siguiente forma, utilizando una condición en un bucle Do Loop&lt;br /&gt;&lt;br /&gt;Código fuente en el formulario&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub Form_Load()&lt;br /&gt;    &lt;br /&gt;    Dim Dato As String&lt;br /&gt;    &lt;br /&gt;    ' Hasta que no se ingrese un dato, _&lt;br /&gt;      el InputBox no se cerrará&lt;br /&gt;    Do&lt;br /&gt;        Dato = InputBox("Ingresar algun dato", " Ejemplo ")&lt;br /&gt;    Loop Until Dato &lt;&gt; ""&lt;br /&gt;    &lt;br /&gt;    'Muestra el valor&lt;br /&gt;    MsgBox Dato, vbInformation&lt;br /&gt;    &lt;br /&gt;End Sub&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Función &lt;strong&gt;MsgBox&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;La función MsgBox, que ya se vió varias veces en distintos ejemplos, es muy fácil de usar y se utiliza para mostrar distintos tipos de mensajes. &lt;br /&gt;&lt;br /&gt;Los parámetros mas importantes son: &lt;br /&gt;&lt;br /&gt;Title : Es la leyenda que aparecerá en el título del mensaje. &lt;br /&gt;Texto : Es el Texto que mostrará el mensaje. &lt;br /&gt;Botones: En este parámetro se colocan las constantes que determinarán si la caja tiene uno o varios botones y el tipo de mensaje: informativo, de exclamación de alerta etc... Cuando escribimos la coma dentro de la función en el parámetro botones, Visual Basic despliega una lista con las opciones o constantes que podemos utilizar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-6760208172265917243?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/6760208172265917243/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=6760208172265917243' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6760208172265917243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6760208172265917243'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/funciones-para-presentar-mensajes-en.html' title='Funciones para presentar mensajes en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-7345517478299771178</id><published>2008-10-21T19:03:00.000-07:00</published><updated>2008-10-21T19:04:18.228-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Funciones para calcular fechas en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;Visual basic cuenta con una serie de funciones que nos permiten calcular fechas y horas, por ejemplo generar un intervalo de fechas, sumar y restar fechas y horas y otras operaciones y cálculos&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;DateAdd :&lt;/strong&gt; Devuelve un Variant que contiene una fecha que indica el intervalo de tiempo que se ha agregado&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;DateDiff :&lt;/strong&gt; Devuelve el número de intervalos de tiempo entre dos fechas determinadas&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;DatePart :&lt;/strong&gt; Devuelve una parte específica de una fecha dada&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;DateSerial :&lt;/strong&gt; Devuelve un valor Date para un año, mes y día determinados&lt;br /&gt;&lt;br /&gt;Ejemplos&lt;br /&gt;&lt;br /&gt;El siguiente ejemplo utiliza la función DateDiff para mostrar el itervalo entre dos fechas. El intervalo lo muestra en segundos , minutos, dias, semanas meses y años, como muestra el siguiente gráfico &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Colocar en el formulario un Command1. &lt;br /&gt;&lt;br /&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;' recibe las dos fechas como parámetros&lt;br /&gt;''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''&lt;br /&gt;Private Sub Calcular(Fecha_Inicial As Date, _&lt;br /&gt;                     Fecha_Final As Date)&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;    Const Formato As String = "#,##0"&lt;br /&gt;    &lt;br /&gt;    Me.Cls&lt;br /&gt;    Me.Print "Calcular Intervalos entre las fechas  " &amp; Fecha_Inicial &amp; _&lt;br /&gt;             "  hasta :" &amp; Fecha_Final &amp; vbNewLine &amp; String(150, "-") &amp; vbNewLine&lt;br /&gt;                                   &lt;br /&gt;    &lt;br /&gt;    Me.Print Format(DateDiff("s", Fecha_Inicial, Fecha_Final), Formato) &amp; " segundos"&lt;br /&gt;    Me.Print Format(DateDiff("n", Fecha_Inicial, Fecha_Final), Formato) &amp; " minutos"&lt;br /&gt;    Me.Print Format(DateDiff("h", Fecha_Inicial, Fecha_Final), Formato) &amp; " horas"&lt;br /&gt;    &lt;br /&gt;    Me.Print Format(DateDiff("y", Fecha_Inicial, Fecha_Final), Formato) &amp; " dias"&lt;br /&gt;    Me.Print Format(DateDiff("WW", Fecha_Inicial, Fecha_Final), Formato) &amp; " semanas"&lt;br /&gt;    Me.Print Format(DateDiff("m", Fecha_Inicial, Fecha_Final), Formato) &amp; " meses"&lt;br /&gt;    Me.Print Format(DateDiff("yyyy", Fecha_Inicial, Fecha_Final), Formato) &amp; " años"&lt;br /&gt;    &lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Command1_Click()&lt;br /&gt;    ' le pasa las dos fechas a la función&lt;br /&gt;    Call Calcular("01/01/2000", Date)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;&lt;br /&gt;    Me.AutoRedraw = True&lt;br /&gt;    Command1.Caption = "calcular intervalos "&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Ejemplo con &lt;strong&gt;DateAdd&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Lo siguiente, muestra como añadir y restar fechas&lt;br /&gt;&lt;br /&gt;&lt;em&gt;' agrega 10 años a la fecha actual&lt;br /&gt;MsgBox DateAdd("yyyy", 10, Date)&lt;br /&gt;&lt;br /&gt;' Agrega cinco meses a la fecha actual&lt;br /&gt;MsgBox DateAdd("m", 5, Date)&lt;br /&gt;&lt;br /&gt;' resta 1 dias a la fecha actual ( usa el signo -)&lt;br /&gt;MsgBox DateAdd("y", -1, Date) &lt;/em&gt; &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Nota: para restar, usar el signo negativo, como se usa en el último ejemplo. &lt;br /&gt;&lt;br /&gt;Para poder restar y agregar segundos a una hora, usar en el parámetro intervalo la "S", para minutos usar la "n", para horas la "h", para restar y sumar semanas la "ww".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-7345517478299771178?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/7345517478299771178/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=7345517478299771178' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7345517478299771178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7345517478299771178'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/funciones-para-calcular-fechas-en.html' title='Funciones para calcular fechas en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-6086455256169759877</id><published>2008-10-21T19:01:00.000-07:00</published><updated>2008-10-21T19:02:31.165-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Funciones de formato para fechas y hora en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;Ejemplos de los principales Formatos con nombre para el manejo de Fechas y Horas:&lt;br /&gt;&lt;br /&gt;Funciones para Fechas &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim cadena As String&lt;br /&gt;&lt;br /&gt;cadena = Format("06/08/78", "General Date") ' Devuelve: "06/08/1978"&lt;br /&gt;&lt;br /&gt;cadena = Format("19/08/79", "Long Date") ' Devuelve : "Jueves 19 de Agosto de 1979".&lt;br /&gt;&lt;br /&gt;cadena = Format("19/8/79", "Medium Date") ' Devuelve: "19-Ago-1979"&lt;br /&gt;&lt;br /&gt;cadena = Format("17:08", "Short Time") ' "05:08"&lt;br /&gt;&lt;br /&gt;cadena = Format("17:08", "Medium Time") ' "05:08 PM"&lt;br /&gt;&lt;br /&gt;cadena = Format("17:08", "Long Time") ' "05:08:00 PM"&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-6086455256169759877?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/6086455256169759877/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=6086455256169759877' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6086455256169759877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6086455256169759877'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/funciones-de-formato-para-fechas-y-hora.html' title='Funciones de formato para fechas y hora en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-160020247860139803</id><published>2008-10-21T18:58:00.000-07:00</published><updated>2008-10-21T18:59:25.366-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Funciónes de Formato (Format) en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;La función &lt;strong&gt;Format&lt;/strong&gt; es mas completa que las anteriores funciones, porque puede manejar mas tipos de datos, y no devuelve solo cadenas, esta también puede devolver números y fechas.&lt;br /&gt;&lt;br /&gt;La función Format posee dos parámetros:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Format (Expresión, formato)&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;En el primero debemos colocar cualquier expresión válida. El segundo es opcional y a continuación veremos una descripción de los formatos de VB:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;GeneralNumber:&lt;/strong&gt; Devuelve el número sin formato. &lt;br /&gt;&lt;strong&gt;Currency:&lt;/strong&gt; Devuelve el número en formato moneda, con el símbolo "$" y 2 decimales a las derecha. &lt;br /&gt;&lt;strong&gt;Fixed:&lt;/strong&gt; Devuelve como mínimo un dígito a la izquierda y 2 ala derecha del decimal. &lt;br /&gt;&lt;strong&gt;Standar&lt;/strong&gt;: Similar a Fixed pero incluye un separador de miles. &lt;br /&gt;&lt;strong&gt;Percent:&lt;/strong&gt; Multiplica el número por cien y le agrega el símbolo "%" &lt;br /&gt;&lt;strong&gt;True/False:&lt;/strong&gt; Devuelve Verdadero para un valor distinto de 0,y Falso para 0. &lt;br /&gt;&lt;strong&gt;On/OFF:&lt;/strong&gt; Devuelve "Activado" para un valor distinto de 0, y "Desactivado" para 0. &lt;br /&gt;La forma de pasar el parámetro es entre comillas. &lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;cadena = Format(75, "Currency") ' Devolvería: "$75,00"&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Nota: Si ingresamos un número decimal, debemos utilizar el "." y no la coma "," ya que la coma determina el comienzo de otro parámetro dentro de la función y Visual basic daría error de sintaxis&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-160020247860139803?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/160020247860139803/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=160020247860139803' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/160020247860139803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/160020247860139803'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/funcines-de-formato-format-en-visual.html' title='Funciónes de Formato (Format) en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-3441819463633202710</id><published>2008-10-05T15:14:00.000-07:00</published><updated>2008-10-05T19:30:31.827-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mysql'/><title type='text'>Crear una Base de Datos en MYSQL</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s1600-h/mysql.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s320/mysql.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5253811671749381298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El comando para crear una base de datos MySQL es el siguiente:&lt;br /&gt;&lt;br /&gt;mysqladmin -u root create base_datos&lt;br /&gt;&lt;br /&gt;Con este comando conseguimos crear la una base de datos en el servidor de bases de datos de nuestro servidor. &lt;br /&gt;&lt;br /&gt;Una vez conseguido esto debemos crear las tablas en la base de datos, la descripción de las tablas contienen la estructura de la información que almacenaremos en ellas. Para lo cual usaremos en lenguaje de consultas SQL común para todas las bases de datos relacionales. &lt;br /&gt;&lt;br /&gt;En este ejemplo creamos una tabla llamada prueba con 3 campos: un campo identificador, que nos servirá para identificar unívocamente una fila con el valor de dicho campo, otro campo con el nombre de una persona y por último un campo con el apellido de la persona.&lt;br /&gt;&lt;br /&gt;Para crear la tabla puede usar la herramienta de administración de MySQL de su servidor web o puede escribir un fichero de texto con el contenido de la sentencia SQL equivalente y luego decirle al motor de base de datos que la ejecute con la siguiente instrucción:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;mysql -u root base_datos &amp;lt;prueba.sql&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;prueba.sql&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;CREATE TABLE prueba ( &lt;br /&gt;ID_Prueba int(11) DEFAULT '0' NOT NULL auto_increment, &lt;br /&gt;Nombre varchar(100), &lt;br /&gt;Apellidos varchar(100), &lt;br /&gt;PRIMARY KEY (ID_Prueba), &lt;br /&gt;UNIQUE ID_Prueba (ID_Prueba) &lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-3441819463633202710?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/3441819463633202710/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=3441819463633202710' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3441819463633202710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3441819463633202710'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/crear-una-base-de-datos-en-mysql.html' title='Crear una Base de Datos en MYSQL'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SOlJ4StsTLI/AAAAAAAAAGw/oyovqGwmOrc/s72-c/mysql.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-3548907137027092278</id><published>2008-10-05T15:10:00.000-07:00</published><updated>2008-10-05T19:36:37.443-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Html'/><title type='text'>Estilos de Caracter en HTML</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SK2CRDvhgBI/AAAAAAAAAB8/vCjrKQNj5Bc/s1600-h/HTML.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SK2CRDvhgBI/AAAAAAAAAB8/vCjrKQNj5Bc/s320/HTML.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5236985171275776018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Estos estilo son tags que afectan a palabras o car&amp;aacute;cteres   dentro de otras entidades de HTML modificando el aspecto de ese texto para que   sea diferente del texto que lo rodea. Existen dos tipos de estilos:&lt;br /&gt;&lt;br /&gt;&lt;ul itxtvisited="1"&gt;&lt;br /&gt;  &lt;li type="1" itxtvisited="1"&gt;Estilos l&amp;oacute;gicos: Indican como se va a emplear el   texto que realzamos, no el como se va a formatear.&lt;br /&gt;    &lt;ul itxtvisited="1"&gt;&lt;br /&gt;        &lt;li itxtvisited="1"&gt;&lt;span itxtvisited="1"&gt;&amp;lt;em&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/em&amp;gt;&lt;/span&gt;: Indica que los car&amp;aacute;cteres estar&amp;aacute;n   enfatizados de alguna manera, generalmente en cursiva aunque depender&amp;aacute; del   navegador. &lt;/li&gt;&lt;br /&gt;      &lt;li itxtvisited="1"&gt;&lt;span itxtvisited="1"&gt;&amp;lt;strong&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/strong&amp;gt;&lt;/span&gt;: Los car&amp;aacute;cteres tendr&amp;aacute;n mayor &amp;eacute;nfasis,   generalmente en negrita. &lt;/li&gt;&lt;br /&gt;      &lt;li itxtvisited="1"&gt;&lt;span itxtvisited="1"&gt;&amp;lt;code&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/code&amp;gt;&lt;/span&gt;: Muestra como una fuente monoespaciada,   generalmente Courier. &lt;/li&gt;&lt;br /&gt;      &lt;li itxtvisited="1"&gt;&lt;span itxtvisited="1"&gt;&amp;lt;samp&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/samp&amp;gt;&lt;/span&gt;: Muy similar a code. &lt;/li&gt;&lt;br /&gt;      &lt;li itxtvisited="1"&gt;&lt;span itxtvisited="1"&gt;&amp;lt;kdb&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/kdb&amp;gt;&lt;/span&gt;: Texto que el usuario debe escribir. &lt;/li&gt;&lt;br /&gt;      &lt;li itxtvisited="1"&gt;&lt;span itxtvisited="1"&gt;&amp;lt;var&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/var&amp;gt;&lt;/span&gt;:Nombre de una variable que deba ser   reemplazada por su valor real. Generalmente en cursiva o subrayada. &lt;/li&gt;&lt;br /&gt;      &lt;li itxtvisited="1"&gt;&lt;span itxtvisited="1"&gt;&amp;lt;dfn&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/dfn&amp;gt;&lt;/span&gt;:Se usa para resaltar una palabra que se va a   definir. &lt;/li&gt;&lt;br /&gt;      &lt;li itxtvisited="1"&gt;&lt;span itxtvisited="1"&gt;&amp;lt;cite&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/cite&amp;gt;&lt;/span&gt;: Se usa para citas cortas. &lt;/li&gt;&lt;br /&gt;    &lt;/ul&gt;&lt;br /&gt;  &lt;/li&gt;&lt;br /&gt;  &lt;li type="1" itxtvisited="1"&gt;Estilos f&amp;iacute;sicos: Modifican la presentaci&amp;oacute;n real del   texto.&lt;br /&gt;    &lt;ul itxtvisited="1"&gt;&lt;br /&gt;        &lt;li itxtvisited="1"&gt;&lt;span itxtvisited="1"&gt;&amp;lt;b&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/b&amp;gt;&lt;/span&gt;: Pone el texto en negrita. &lt;/li&gt;&lt;br /&gt;      &lt;li itxtvisited="1"&gt;&lt;span itxtvisited="1"&gt;&amp;lt;i&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/i&amp;gt;&lt;/span&gt;: Pone el texto en cursiva. &lt;/li&gt;&lt;br /&gt;      &lt;li itxtvisited="1"&gt;&lt;span itxtvisited="1"&gt;&amp;lt;tt&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/tt&amp;gt;&lt;/span&gt;: Pone el texto en fuente monoespaciada. &lt;/li&gt;&lt;br /&gt;      &lt;li itxtvisited="1"&gt;&lt;span itxtvisited="1"&gt;&amp;lt;u&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/u&amp;gt;&lt;/span&gt;: Subraya el texto afectado. &lt;/li&gt;&lt;br /&gt;    &lt;/ul&gt;&lt;br /&gt;  &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-3548907137027092278?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/3548907137027092278/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=3548907137027092278' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3548907137027092278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3548907137027092278'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/estilos-de-caracter-en-html.html' title='Estilos de Caracter en HTML'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SK2CRDvhgBI/AAAAAAAAAB8/vCjrKQNj5Bc/s72-c/HTML.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-4169657856868822724</id><published>2008-10-05T15:09:00.001-07:00</published><updated>2008-10-05T19:39:53.091-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Html'/><title type='text'>Listas en HTML</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SK2CRDvhgBI/AAAAAAAAAB8/vCjrKQNj5Bc/s1600-h/HTML.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SK2CRDvhgBI/AAAAAAAAAB8/vCjrKQNj5Bc/s320/HTML.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5236985171275776018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Junto con encabezados y p&amp;aacute;rrafos, son otro de los elementos   HTML m&amp;aacute;s comunes. Pueden darse cinco tipos diferentes de listas, cada uno con   tags distintas aunque con alguna en com&amp;uacute;n:&lt;br /&gt;&lt;br /&gt;&lt;ul itxtvisited="1"&gt;&lt;br /&gt;  &lt;li type="1" itxtvisited="1"&gt;Listas numeradas u ordenadas: Se engloban por las   tags &lt;span itxtvisited="1"&gt;&amp;lt;ol&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/ol&amp;gt;&lt;/span&gt; y cada elemento de la lista estar&amp;aacute; encabezado   por la tag &lt;span itxtvisited="1"&gt;&amp;lt;li&amp;gt;&lt;/span&gt; que puede o no   llevar la tag de cierre &lt;span itxtvisited="1"&gt;&amp;lt;/li&amp;gt;&lt;/span&gt;.   Es conveniente que cada elemento de la lista est&amp;eacute; en una l&amp;iacute;nea nueva aunque todo   seguido consiga en la presentaci&amp;oacute;n el mismo efecto. Cuando el navegador   interpreta una lista ordenada, numera y sangra cada elemento en forma   secuencial, aunque se introduzcan modificaciones&lt;br /&gt;  &lt;/li&gt;&lt;br /&gt;  &lt;li type="1" itxtvisited="1"&gt;Listas con vi&amp;ntilde;etas o sin orden: Se engloban por las   tags &lt;span itxtvisited="1"&gt;&amp;lt;ul&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/ul&amp;gt;&lt;/span&gt; y cada elemento de la lista, tambi&amp;eacute;n estar&amp;aacute;   encabezado por la tag &lt;span itxtvisited="1"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;. El   resultado es que el navegador inserta vi&amp;ntilde;etas (marcadores) delante de cada   elemento. &lt;br /&gt;      &lt;br /&gt;  &lt;/li&gt;&lt;br /&gt;  &lt;li type="1" itxtvisited="1"&gt;Listas de men&amp;uacute; y de directorio: Est&amp;aacute;n en desuso   puesto que su resultado suele ser, pr&amp;aacute;cticamente, id&amp;eacute;ntico al de las listas con   vi&amp;ntilde;etas.&lt;br /&gt;    &lt;ul itxtvisited="1"&gt;&lt;br /&gt;        &lt;li itxtvisited="1"&gt;Men&amp;uacute;: Englobadas por las tags &lt;span itxtvisited="1"&gt;&amp;lt;menu&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/menu&amp;gt;&lt;/span&gt; y cada elemento encabezado por la tag &lt;span itxtvisited="1"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;. &lt;/li&gt;&lt;br /&gt;      &lt;li itxtvisited="1"&gt;Directorio: Englobadas por las tags &lt;span itxtvisited="1"&gt;&amp;lt;dir&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/dir&amp;gt;&lt;/span&gt; y cada elemento encabezado por la tag &lt;span itxtvisited="1"&gt;&amp;lt;li&amp;gt;&lt;/span&gt;. &lt;/li&gt;&lt;br /&gt;    &lt;/ul&gt;&lt;br /&gt;   &lt;br /&gt;  &lt;/li&gt;&lt;br /&gt;  &lt;li type="1" itxtvisited="1"&gt;Listas de glosario: Cada elemento de la lista est&amp;aacute;   compuesto por un t&amp;eacute;rmino y una definici&amp;oacute;n y cada una de estas partes tiene su   propia tag. Estas listas se engloban con las tags &lt;span itxtvisited="1"&gt;&amp;lt;dl&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/dl&amp;gt;&lt;/span&gt;. Para el t&amp;eacute;rmino se usa la tag &lt;span itxtvisited="1"&gt;&amp;lt;dt&amp;gt;&lt;/span&gt; y para la definici&amp;oacute;n la tag &lt;span itxtvisited="1"&gt;&amp;lt;dd&amp;gt;&lt;/span&gt;. Generalmente el navegador   colocar&amp;aacute; t&amp;eacute;rmino y definici&amp;oacute;n en dos l&amp;iacute;neas diferentes pero esto se puede evitar   a&amp;ntilde;adiendo a la tag de apertura el atributo compact: &lt;span itxtvisited="1"&gt;&amp;lt;dl compact&amp;gt;&lt;/span&gt;.&lt;br /&gt;  &lt;/li&gt;&lt;br /&gt;  &lt;li type="1" itxtvisited="1"&gt;Listas anidadas: Consiste en poner una lista dentro   de otra, de manera que la lista secundaria sangre respecto a la principal. Puede   jugar con los diferentes tipos de lista pero recuerde estructurar bien las tags:   Las tags de la lista principal englobar&amp;aacute;n todo el conjunto de las listas y las   tags de las listas secundar&amp;iacute;as se cerraran antes de volver a la lista principal.   Ahora quiz&amp;aacute; le empiece a convenir sangrar el propio c&amp;oacute;digo conforme lo va   escribiendo en HTML. &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-4169657856868822724?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/4169657856868822724/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=4169657856868822724' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4169657856868822724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4169657856868822724'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/listas-en-html.html' title='Listas en HTML'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SK2CRDvhgBI/AAAAAAAAAB8/vCjrKQNj5Bc/s72-c/HTML.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-6183255931516718789</id><published>2008-10-05T15:03:00.002-07:00</published><updated>2008-10-05T19:27:00.950-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Html'/><title type='text'>Manejo de URL en HTML</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SK2CRDvhgBI/AAAAAAAAAB8/vCjrKQNj5Bc/s1600-h/HTML.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SK2CRDvhgBI/AAAAAAAAAB8/vCjrKQNj5Bc/s320/HTML.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5236985171275776018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Los URL son las direcciones de las informaciones que buscamos en Internet. Los URL constan de tres partes:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Protocolo:&lt;/strong&gt; Es el programa que utilizará el navegador para obtener el archivo elegido. Les suena HTTP, FTP, Gopher... &lt;br /&gt;&lt;strong&gt;Nombre del host:&lt;/strong&gt; Se trata del sistema donde se encuentra almacenada la información que buscamos. &lt;br /&gt;&lt;strong&gt;Ruta del fichero:&lt;/strong&gt; Se trata de la ubicación del archivo dentro del host. &lt;br /&gt;http://www.bienvenidos.es/publico/saludos.html&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Entre los principales tipos de URL destacan:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;HTTP:&lt;/strong&gt; Son los más populares ya que son los utilizados por los servidores de WWW para mandar documentos a través de Internet. &lt;br /&gt;&lt;strong&gt;FTP:&lt;/strong&gt; Se utilizan para apuntar hacia los archivos que estén en servidores que usan el protocolo FTP (File Transfer Protocol). Este protocolo es normalmente utilizado para enviar y recibir ficheros. Es el protocolo que se usa para enviar nuestras páginas al servidor de internet. Como ya se puede imaginar en estos servidores se almacenan los archivos que forman parte de nuestra presentación web. &lt;br /&gt;&lt;strong&gt;File:&lt;/strong&gt; Apuntan hacia archivos contenidos en el mismo disco que se encuentra el navegador. No resulta muy interesante poner estos URL en nuestras presentaciones puesto que otra persona que desde otro sistema apunte hacia este URL, generalmente fallará en su intento y no podrá tener acceso a él. &lt;br /&gt;&lt;strong&gt;Mailto:&lt;/strong&gt; Se usa para mandar correos electrónicos. Cuando seleccionamos este tipo de URL se abre la aplicación de correo electrónico de nuestro ordenador para enviar un correo a la dirección hacia la que apunta el URL. La forma estandar es: mailto:webmaster@bienvenidos.es &lt;br /&gt;&lt;strong&gt;News:&lt;/strong&gt; Son URL de grupos de noticias, en estos servidores se almacenan mensajes el los que se discuten sobre direfentes temas. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;div itxtvisited="1"&gt;&amp;lt;HTML&amp;gt; &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &amp;lt;HEAD&amp;gt; &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &amp;lt;TITLE&amp;gt;Ejemplo 5&amp;lt;/TITLE&amp;gt; &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &amp;lt;/HEAD&amp;gt; &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &amp;lt;BODY&amp;gt; &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &amp;lt;H1&amp;gt;Diferentes tipos de   URLs&amp;lt;/H1&amp;gt; &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  Enlace a &amp;lt;A   HREF=&amp;quot;http://www.webestilo.com&amp;quot;&amp;gt;WebEstilo&amp;lt;/A&amp;gt;. &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &amp;lt;br&amp;gt; &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  Enlace al servidor de FTP &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  de &amp;lt;A   HREF=&amp;quot;ftp://ftp.mozilla.org/pub/mozilla/&amp;quot;&amp;gt;Mozilla&amp;lt;/A&amp;gt;. &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &amp;lt;br&amp;gt; &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  Enlace a &amp;lt;A   HREF=&amp;quot;file:///C:&amp;quot;&amp;gt;la unidad C &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  de su ordenador&amp;lt;/A&amp;gt;. &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &amp;lt;br&amp;gt; &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  Enlace a &amp;lt;a   href=&amp;quot;mailto:webmaster@bienvenidos.es&amp;quot;&amp;gt; &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  mailto:webmaster@bienvenidos.es&amp;lt;/a&amp;gt;. &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &amp;lt;br&amp;gt; &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  Enlace a las &amp;lt;A   HREF=&amp;quot;news://msnews.microsoft.com&amp;quot;&amp;gt;News de Microsoft&amp;lt;/A&amp;gt;. &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &amp;lt;br&amp;gt; &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &amp;lt;/BODY&amp;gt; &lt;br itxtvisited="1" /&gt;&lt;br /&gt;  &amp;lt;/HTML&amp;gt; &lt;br itxtvisited="1" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-6183255931516718789?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/6183255931516718789/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=6183255931516718789' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6183255931516718789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6183255931516718789'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/manejo-de-url-en-html.html' title='Manejo de URL en HTML'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SK2CRDvhgBI/AAAAAAAAAB8/vCjrKQNj5Bc/s72-c/HTML.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-5695009673249844195</id><published>2008-10-05T15:03:00.001-07:00</published><updated>2008-10-05T19:42:00.726-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Html'/><title type='text'>Crear Enlaces en HTML</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SK2CRDvhgBI/AAAAAAAAAB8/vCjrKQNj5Bc/s1600-h/HTML.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SK2CRDvhgBI/AAAAAAAAAB8/vCjrKQNj5Bc/s320/HTML.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5236985171275776018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para generar un enlace a otro documento necesitamos el nombre   de un archivo (o su direcci&amp;oacute;n URL) y el texto que servir&amp;aacute; de punto de activaci&amp;oacute;n   del otro documento. Este segundo elemento ser&amp;aacute; el que veamos en pantalla y que   se servir&amp;aacute; del primero para saltar de documento.&lt;br /&gt;&lt;p itxtvisited="1"&gt;Los enlaces se generan mediante la tag &lt;span itxtvisited="1"&gt;&amp;lt;A&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/A&amp;gt;&lt;/span&gt; y, a diferencia de los vistos anteriormente,   llevar&amp;aacute; siempre dentro de la tag un atributo ya sea &lt;span itxtvisited="1"&gt;&amp;lt;A HREF=&amp;quot;&amp;quot;&amp;gt;&lt;/span&gt; o &lt;span itxtvisited="1"&gt;&amp;lt;A NAME=&amp;quot;&amp;quot;&amp;gt;&lt;/span&gt;.&lt;br /&gt;&lt;ul itxtvisited="1"&gt;&lt;br /&gt;  &lt;li type="1" itxtvisited="1"&gt;&lt;span itxtvisited="1"&gt;&amp;lt;A   HREF=&amp;quot;&lt;/span&gt;URL&lt;span itxtvisited="1"&gt;&amp;quot;&amp;gt;&lt;/span&gt;.....&lt;span itxtvisited="1"&gt;&amp;lt;/A&amp;gt;&lt;/span&gt;: Es el m&amp;aacute;s habitual de los   atributos y sirve para saltar entre diferentes URLs. De momento veremos:&lt;br /&gt;    &lt;ul itxtvisited="1"&gt;&lt;br /&gt;        &lt;li itxtvisited="1"&gt;Saltar en una presentaci&amp;oacute;n del archivo 1 al archivo 2: En el   archivo 1 incluiremos la directiva &lt;span itxtvisited="1"&gt;&amp;lt;A&amp;nbsp;HREF=&amp;quot;archivo2.html&amp;quot;&amp;gt;&lt;/span&gt;Siguiente p&amp;aacute;gina&lt;span itxtvisited="1"&gt;&amp;lt;/a&amp;gt;&lt;/span&gt; &lt;/li&gt;&lt;br /&gt;      &lt;li itxtvisited="1"&gt;Saltar de nuestra presentaci&amp;oacute;n a otra presentaci&amp;oacute;n web   llamada www.bienvenidos.es: &lt;span itxtvisited="1"&gt;&amp;lt;A&amp;nbsp;HREF=&amp;quot;http://www.bienvenidos.es&amp;quot;&amp;gt;&lt;/span&gt;Visita esta   p&amp;aacute;gina&lt;span itxtvisited="1"&gt;&amp;lt;/A&amp;gt;&lt;/span&gt; &lt;/li&gt;&lt;br /&gt;    &lt;/ul&gt;&lt;br /&gt;  &lt;/li&gt;&lt;br /&gt;  &lt;li type="1" itxtvisited="1"&gt;&lt;span itxtvisited="1"&gt;&amp;lt;A   NAME=&amp;quot;parte1&amp;quot;&amp;gt;&lt;/span&gt;Primera parte&lt;span itxtvisited="1"&gt;&amp;lt;/A&amp;gt;&lt;/span&gt;: Utilizamos el atributo name para dar nombre a   una secci&amp;oacute;n de nuestro documento. Posteriormente, cuando en nuestro documento   queramos incluir un v&amp;iacute;nculo a dicha secci&amp;oacute;n escribiremos: &lt;span itxtvisited="1"&gt;&amp;lt;A&amp;nbsp;HREF=&amp;quot;#parte1&amp;quot;&amp;gt;&lt;/span&gt;Ir a la primera parte&lt;span itxtvisited="1"&gt;&amp;lt;/A&amp;gt;&lt;/span&gt; &lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-5695009673249844195?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/5695009673249844195/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=5695009673249844195' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5695009673249844195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5695009673249844195'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/crear-enlaces-en-html.html' title='Crear Enlaces en HTML'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SK2CRDvhgBI/AAAAAAAAAB8/vCjrKQNj5Bc/s72-c/HTML.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-4624979136413074092</id><published>2008-10-05T14:40:00.000-07:00</published><updated>2008-10-05T14:50:33.210-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Base de Datos'/><title type='text'>Objetivos de los Sistemas Gestores de Base de Datos</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_qqGefALtuG0/SMsqG58bJ2I/AAAAAAAAAFw/A0Lo-D6aeSc/s1600-h/BD.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_qqGefALtuG0/SMsqG58bJ2I/AAAAAAAAAFw/A0Lo-D6aeSc/s320/BD.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5245332489124915042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Abstracción de la información.&lt;/strong&gt; Los SGBD ahorran a los usuarios detalles acerca del almacenamiento físico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de archivos, este hecho se hace transparente al usuario. Así, se definen varios niveles de abstracción. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Independencia.&lt;/strong&gt; La independencia de los datos consiste en la capacidad de modificar el esquema (físico o lógico) de una base de datos sin tener que realizar cambios en las aplicaciones que se sirven de ella. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Consistencia.&lt;/strong&gt; En aquellos casos en los que no se ha logrado eliminar la redundancia, será necesario vigilar que aquella información que aparece repetida se actualice de forma coherente, es decir, que todos los datos repetidos se actualicen de forma simultánea. Por otra parte, la base de datos representa una realidad determinada que tiene determinadas condiciones, por ejemplo que los menores de edad no pueden tener licencia de conducir. El sistema no debería aceptar datos de un conductor menor de edad. En los SGBD existen herramientas que facilitan la programación de este tipo de condiciones. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Seguridad.&lt;/strong&gt; La información almacenada en una base de datos puede llegar a tener un gran valor. Los SGBD deben garantizar que esta información se encuentra segura frente a usuarios malintencionados, que intenten leer información privilegiada; frente a ataques que deseen manipular o destruir la información; o simplemente ante las torpezas de algún usuario autorizado pero despistado. Normalmente, los SGBD disponen de un complejo sistema de permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categorías de permisos. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Integridad.&lt;/strong&gt; Se trata de adoptar las medidas necesarias para garantizar la validez de los datos almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos introducidos por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la información almacenada. Los SGBD proveen mecanismos para garantizar la recuperación de la base de datos hasta un estado consistente (ver Consistencia, más arriba) conocido en forma automática. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Respaldo.&lt;/strong&gt; Los SGBD deben proporcionar una forma eficiente de realizar copias de respaldo de la información almacenada en ellos, y de restaurar a partir de estas copias los datos que se hayan podido perder. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Control de la concurrencia.&lt;/strong&gt; En la mayoría de entornos (excepto quizás el doméstico), lo más habitual es que sean muchas las personas que acceden a una base de datos, bien para recuperar información, bien para almacenarla. Y es también frecuente que dichos accesos se realicen de forma simultánea. Así pues, un SGBD debe controlar este acceso concurrente a la información, que podría derivar en inconsistencias. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Manejo de Transacciones&lt;/strong&gt;. Una Transacción es un programa que se ejecuta como una sola operación. Esto quiere decir que el estado luego de una ejecución en la que se produce una falla es el mismo que se obtendría si el programa no se hubiera ejecutado. Los SGBD proveen mecanismos para programar las modificaciones de los datos de una forma mucho más simple que si no se dispusiera de ellos. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tiempo de respuesta.&lt;/strong&gt; Lógicamente, es deseable minimizar el tiempo que el SGBD tarda en darnos la información solicitada y en almacenar los cambios realizados.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-4624979136413074092?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/4624979136413074092/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=4624979136413074092' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4624979136413074092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4624979136413074092'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/objetivos-de-los-sistemas-gestores-de.html' title='Objetivos de los Sistemas Gestores de Base de Datos'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qqGefALtuG0/SMsqG58bJ2I/AAAAAAAAAFw/A0Lo-D6aeSc/s72-c/BD.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-6496971864254234873</id><published>2008-10-05T14:20:00.000-07:00</published><updated>2008-10-05T14:36:00.016-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Redes'/><title type='text'>Topologías para Redes</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SOA4MHSUhxI/AAAAAAAAAGY/gTHCOR_6DXA/s1600-h/redes.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SOA4MHSUhxI/AAAAAAAAAGY/gTHCOR_6DXA/s320/redes.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5251258946279474962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La topología o forma lógica de una red se define como la forma de tender el cable a estaciones de trabajo individuales; por muros, suelos y techos del edificio. Existe un número de factores a considerar para determinar cual topología es la más apropiada para una situación dada.&lt;br /&gt;&lt;br /&gt;La topología en una red es la configuración adoptada por las estaciones de trabajo para conectarse entre si.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Topologías más Comunes&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Bus: &lt;/strong&gt;Esta topología permite que todas las estaciones reciban la información que se transmite, una estación transmite y todas las restantes escuchan. Consiste en un cable con un terminador en cada extremo del que se cuelgan todos los elementos de una red. Todos los nodos de la red están unidos a este cable: el cual recibe el nombre de "Backbone Cable". Tanto Ethernet como Local Talk pueden utilizar esta topología.&lt;br /&gt;&lt;br /&gt;El bus es pasivo, no se produce regeneración de las señales en cada nodo. Los nodos en una red de "bus" transmiten la información y esperan que ésta no vaya a chocar con otra información transmitida por otro de los nodos. Si esto ocurre, cada nodo espera una pequeña cantidad de tiempo al azar, después intenta retransmitir la información. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Anillo: &lt;/strong&gt;Las estaciones están unidas unas con otras formando un círculo por medio de un cable común. El último nodo de la cadena se conecta al primero cerrando el anillo. Las señales circulan en un solo sentido alrededor del círculo, regenerándose en cada nodo. Con esta metodología, cada nodo examina la información que es enviada a través del anillo. Si la información no está dirigida al nodo que la examina, la pasa al siguiente en el anillo. La desventaja del anillo es que si se rompe una conexión, se cae la red completa. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Estrella:&lt;/strong&gt; Los datos en estas redes fluyen del emisor hasta el concentrador, este realiza todas las funciones de la red, además actúa como amplificador de los datos. &lt;br /&gt;&lt;br /&gt;La red se une en un único punto, normalmente con un panel de control centralizado, como un concentrador de cableado. Los bloques de información son dirigidos a través del panel de control central hacia sus destinos. Este esquema tiene una ventaja al tener un panel de control que monitorea el tráfico y evita las colisiones y una conexión interrumpida no afecta al resto de la red.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Híbridas:&lt;/strong&gt; El bus lineal, la estrella y el anillo se combinan algunas veces para formar combinaciones de redes híbridas. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Anillo en Estrella:&lt;/strong&gt; Esta topología se utiliza con el fin de facilitar la administración de la red. Físicamente, la red es una estrella centralizada en un concentrador, mientras que a nivel lógico, la red es un anillo.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;"Bus" en Estrella:&lt;/strong&gt; El fin es igual a la topología anterior. En este caso la red es un "bus" que se cablea físicamente como una estrella por medio de concentradores.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Estrella Jerárquica:&lt;/strong&gt; Esta estructura de cableado se utiliza en la mayor parte de las redes locales actuales, por medio de concentradores dispuestos en cascada par formar una red jerárquica.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Árbol:&lt;/strong&gt; Esta estructura se utiliza en aplicaciones de televisión por cable, sobre la cual podrían basarse las futuras estructuras de redes que alcancen los hogares. También se ha utilizado en aplicaciones de redes locales analógicas de banda ancha.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Trama:&lt;/strong&gt; Esta estructura de red es típica de las WAN, pero también se puede utilizar en algunas aplicaciones de redes locales (LAN). Las estaciones de trabajo están conectadas cada una con todas las demás.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-6496971864254234873?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/6496971864254234873/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=6496971864254234873' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6496971864254234873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6496971864254234873'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/topologas-para-redes.html' title='Topologías para Redes'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SOA4MHSUhxI/AAAAAAAAAGY/gTHCOR_6DXA/s72-c/redes.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-2479775511068797651</id><published>2008-10-05T13:44:00.000-07:00</published><updated>2008-10-05T14:18:42.325-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programación General'/><title type='text'>Programas Informaticos</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SOkvC9UwbHI/AAAAAAAAAGo/E5QaLKpDWWo/s1600-h/PI.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SOkvC9UwbHI/AAAAAAAAAGo/E5QaLKpDWWo/s320/PI.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5253782168172260466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;El comportamiento de un programa depende del tipo de lenguaje usado para escribirlo... &lt;br /&gt;&lt;br /&gt;En cualquier caso, casi todos los lenguajes de programación se basan en el mismo principio:&lt;br /&gt;&lt;br /&gt;el programa consiste en un conjunto de comandos que el equipo debe ejecutar. El equipo ejecuta los comandos a medida que va leyendo el archivo (de arriba hacia abajo) hasta que alcanza un comando (al que a menudo se hace referencia como un comando ramificado) que ordena al equipo ir a una ubicación específica del programa. En cierto modo, se parece a la búsqueda del tesoro, donde el equipo debe seguir las pistas y ejecutar los comandos hasta alcanzar el final del programa y detenerse. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;El concepto de variables&lt;/strong&gt;&lt;br /&gt;Las variables se utilizan en la mayoría de los lenguajes, donde un nombre se asocia a un contenido. Por ejemplo, podemos llamar a una variable "maniquí" y asignarle el valor 8. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tipos de datos&lt;/strong&gt;&lt;br /&gt;Algunos lenguajes permiten asociar cualquier tipo de dato con una variable (ya sea un número completo o un carácter), dicho lenguaje se denomina lenguaje sin tipos. &lt;br /&gt;Como puede verse en el capítulo representación de datos, el tipo de datos establece el número de bytes en que el dato está codificado, es decir, la cantidad de memoria que este dato ocupa, así como el formato en el que está representado. &lt;br /&gt;Por esta razón, los lenguajes evolucionados (C, Java) son lenguajes con tipo, lo que significa que una variable no se asocia solamente con un nombre sino también con un tipo de datos que debe especificarse cuando se declara la variable; es decir, cuando el nombre de la variable se escribe por primera vez, debe especificar en el compilador el tipo de datos que esta variable contendrá (la manera de declarar la variable dependerá del lenguaje utilizado). &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sintaxis&lt;/strong&gt;&lt;br /&gt;Los lenguajes de programación requieren una sintaxis estricta, por lo tanto, no es posible escribir de la manera que se desea. &lt;br /&gt;&lt;br /&gt;Así, algunos lenguajes distinguen entre minúsculas y mayúsculas, lo que significa que un nombre escrito en minúscula no es considerado el equivalente del mismo nombre escrito en mayúscula. En este caso, la variable "Maniquí" sería diferente a la variable "maniquí". &lt;br /&gt;&lt;br /&gt;Los nombres de variables requieren comúnmente una longitud máxima (dependiendo del lenguaje) y de un determinado conjunto de caracteres. Generalmente, se utilizan los siguientes caracteres:&lt;br /&gt;&lt;br /&gt;abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890_ De esta forma, un espacio (" ") se considera un tipo de carácter diferente, llamado un carácter especial. Por lo tanto, no es muy común que un lenguaje permita el uso de caracteres especiales en nombres de variables. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Palabras reservadas&lt;/strong&gt;&lt;br /&gt;En la mayoría de los lenguajes, existe un puñado de palabras que no deben utilizarse como variables de nombres, llamadas palabras reservadas. Se especifican en el capítulo correspondiente al lenguaje específico. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Constantes&lt;/strong&gt;&lt;br /&gt;Las constantes son datos cuyo valor no puede modificarse. Por lo general, se definen al comienzo del programa. El valor de la constante puede ser de cualquier tipo permitido por el lenguaje de programación. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Comentarios&lt;/strong&gt;&lt;br /&gt;Al escribir un programa es útil poder agregar líneas de texto a las que el compilador no considera como códigos. Estas líneas de texto generalmente están precedidas (o rodeadas) por comandos especiales que ordenan al compilador omitirlas. &lt;br /&gt;&lt;br /&gt;Los comentarios son útiles para aclarar cómo está escrito el programa, explicando las partes del código. Los comentarios también sirven si otra persona está tratando de comprender cómo funciona el programa leyendo el archivo fuente, o incluso, si la persona que escribió el programa está leyendo el archivo de origen nuevamente, varios años después de haber escrito el código...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-2479775511068797651?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/2479775511068797651/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=2479775511068797651' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2479775511068797651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2479775511068797651'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/programas-informaticos.html' title='Programas Informaticos'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SOkvC9UwbHI/AAAAAAAAAGo/E5QaLKpDWWo/s72-c/PI.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-2048998602959339194</id><published>2008-10-05T13:31:00.000-07:00</published><updated>2008-10-05T13:42:59.841-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programación General'/><title type='text'>Lenguajes de Programación</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SOkmdGGvNhI/AAAAAAAAAGg/ImQ51Yl0ZDM/s1600-h/LP.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SOkmdGGvNhI/AAAAAAAAAGg/ImQ51Yl0ZDM/s320/LP.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5253772721601328658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;CLASIFICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓN &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Los lenguajes de programación se determinan según el nivel de abstracción, Según la forma de ejecución y Según el paradigma de programación que poseen cada uno de ellos y esos pueden ser:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SEGÚN SU NIVEL DE ABSTRACCIÓN &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Lenguajes Maquina&lt;/strong&gt; &lt;br /&gt;Estan escritos en lenguajes directamente inteligibles por la maquina (computadora), ya que sus intrucciones son cadenas binarias (0 y 1). Da la posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior lo que supone una velocidad de ejecución superior, solo que con poca fiabilidad y dificuldad de verificar y poner a punto los programas.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Lenguajes de bajo nivel &lt;/strong&gt;&lt;br /&gt;Los lenguajes de bajo nivel son lenguajes de programación que se acercan al funcionamiento de una computadora. El lenguaje de más bajo nivel es, por excelencia, el código máquina. A éste le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Lenguajes de medio nivel &lt;/strong&gt;&lt;br /&gt;Hay lenguajes de programación que son considerados por algunos expertos como lenguajes de medio nivel (como es el caso del lenguaje C) al tener ciertas características que los acercan a los lenguajes de bajo nivel pero teniendo, al mismo tiempo, ciertas cualidades que lo hacen un lenguaje más cercano al humano y, por tanto, de alto nivel.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Lenguajes de alto nivel &lt;/strong&gt;&lt;br /&gt;Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por elementos de lenguajes naturales, como el inglés. En BASIC, el lenguaje de alto nivel más conocido, los comandos como "IF CONTADOR = 10 THEN STOP" pueden utilizarse para pedir a la computadora que pare si CONTADOR es igual a 10. Por desgracia para muchas personas esta forma de trabajar es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje natural, lo hacen en realidad de una forma rígida y sistemática.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SEGÚN LA FORMA DE EJECUCIÓN &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Lenguajes compilados &lt;/strong&gt;&lt;br /&gt;Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una corrida de compilación antes de procesar los datos de un problema.&lt;br /&gt;&lt;br /&gt;Los compiladores son aquellos cuya función es traducir un programa escrito en un determinado lenguaje a un idioma que la computadora entienda (lenguaje máquina con código binario).&lt;br /&gt;&lt;br /&gt;Al usar un lenguaje compilado (como lo son los lenguajes del popular Visual Studio de Microsoft), el programa desarrollado nunca se ejecuta mientras haya errores, sino hasta que luego de haber compilado el programa, ya no aparecen errores en el código&lt;br /&gt;Lenguajes interpretados &lt;br /&gt;&lt;br /&gt;Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.&lt;br /&gt;La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de los pasos de un ciclo, cada instrucción del ciclo tendrá que volver a ser interpretado cada vez que se ejecute el ciclo, lo cual hace que el programa sea más lento en tiempo de ejecución (porque se va revisando el código en tiempo de ejecución) pero más rápido en tiempo de diseño (porque no se tiene que estar compilando a cada momento el código completo). El intérprete elimina la necesidad de realizar una corrida de compilación después de cada modificación del programa cuando se quiere agregar funciones o corregir errores; pero es obvio que un programa objeto compilado con antelación deberá ejecutarse con mucha mayor rapidez que uno que se debe interpretar a cada paso durante una corrida de producción&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;SEGUN EL PARADIGMA DE PROGRAMACION&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro, sino que cada uno tiene ventajas y desventajas. Dependiendo de la situación un paradigma resulta más apropiado que otro.&lt;br /&gt;&lt;br /&gt;Atendiendo al paradigma de programación, se pueden clasificar los lenguajes en :&lt;br /&gt;• El paradigma imperativo o por procedimientos es considerado el más común y está  representado, por ejemplo, por el C o por BASIC. &lt;br /&gt;• El paradigma funcional está representado por la familia de lenguajes LISP (en particular Scheme), ML o Haskell. &lt;br /&gt;• El paradigma lógico, un ejemplo es PROLOG. &lt;br /&gt;• El paradigma orientado a objetos. Un lenguaje completamente orientado a objetos es Smalltalk. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Nota:&lt;/strong&gt; La representación orientada a objetos mejora la estructura de los datos y por lo tanto se ha aplicado a diferentes paradigmas como Redes de Petri, Imperativo Secuencial, Lógica de Predicados, Funcional, etc. No obstante, la manipulación no queda fundamentalmente afectada y por lo tanto el paradigma inicial tampoco a pesar de ser re-orientado a objetos.&lt;br /&gt;&lt;br /&gt;Si bien puede seleccionarse la forma pura de estos paradigmas al momento de programar, en la práctica es habitual que se mezclen, dando lugar a la programación multiparadigma.&lt;br /&gt;&lt;br /&gt;Actualmente el paradigma de programación más usado debido a múltiples ventajas respecto a sus anteriores, es la programación orientada a objetos.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Lenguajes imperativos &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;• BASIC &lt;br /&gt;• C &lt;br /&gt;• C++ &lt;br /&gt;• Java &lt;br /&gt;• C# &lt;br /&gt;• Perl &lt;br /&gt;• unerg &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Lenguajes Funcionales &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Puros:&lt;br /&gt;• Haskell &lt;br /&gt;• Miranda &lt;br /&gt;Híbridos:&lt;br /&gt;• Lisp &lt;br /&gt;• Scheme &lt;br /&gt;• Ocaml &lt;br /&gt;• Standard ML &lt;br /&gt;• ML &lt;br /&gt;• Scala &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Lenguajes Lógicos &lt;/strong&gt;&lt;br /&gt;• Prolog &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Lenguajes orientados a objetos &lt;/strong&gt;&lt;br /&gt;• ActionScript &lt;br /&gt;• Ada &lt;br /&gt;• C++ &lt;br /&gt;• C# &lt;br /&gt;• VB.NET &lt;br /&gt;• Visual FoxPro &lt;br /&gt;• Clarion &lt;br /&gt;• Delphi &lt;br /&gt;• Harbour &lt;br /&gt;• Eiffel &lt;br /&gt;• Java &lt;br /&gt;• JavaScript &lt;br /&gt;• Lexico (en castellano) &lt;br /&gt;• Objective-C &lt;br /&gt;• Ocaml &lt;br /&gt;• Oz &lt;br /&gt;• Perl (soporta herencia múltiple) &lt;br /&gt;• PHP (en su versión 5) &lt;br /&gt;• Python &lt;br /&gt;• Ruby &lt;br /&gt;• Smalltalk &lt;br /&gt;• Magik (SmallWorld)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-2048998602959339194?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/2048998602959339194/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=2048998602959339194' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2048998602959339194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2048998602959339194'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/10/lenguajes-de-programacin.html' title='Lenguajes de Programación'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SOkmdGGvNhI/AAAAAAAAAGg/ImQ51Yl0ZDM/s72-c/LP.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8664592433446133814</id><published>2008-09-28T20:12:00.000-07:00</published><updated>2008-09-28T20:13:06.793-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Funciones de formato en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Visual Basic posee varias funciones para darle formato a distintos tipos de datos e información. A continuación se ve algunos ejemplos de las principales funciones:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;FormatCurrency:&lt;/strong&gt; Esta función se utiliza para trabajar con números con formato en dinero. Ejemplo: &lt;br /&gt;&lt;br /&gt;si tenemos un número 3 y utilizamos la función nos devolvería "$3". &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;FormatPercent:&lt;/strong&gt; Esta función es utilizada para trabajar con porcentajes. Ejemplo : &lt;br /&gt;si tendríamos un número 321, nos devolvería: "32,1%" . &lt;br /&gt;&lt;strong&gt;FormatDateTime:&lt;/strong&gt; Esta función trabaja con fechas y horas. &lt;br /&gt;&lt;strong&gt;FormatNumber:&lt;/strong&gt; Formatea expresiones números &lt;br /&gt;  &lt;br /&gt;Resultado = FormatPercent(321) 'devuelve: "32.100,00%"&lt;br /&gt;Resultado = FormatCurrency(3)  'devuelve: "$3,00"&lt;br /&gt;Resultado = FormatDateTime("6-8-1978")  'La función devolvería: "06/08/1978"&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;NumDigitsAfterDecimal:&lt;/strong&gt; Parámetro de tipo opcional. Este indicará cuantos números decimales devolverá la función: &lt;br /&gt;&lt;br /&gt;Ejemplo&lt;br /&gt;&lt;br /&gt;&lt;em&gt;cadena = FormatCurrency(325, 3) 'Devuelve: "$325,000"&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Ejemplo de la función &lt;strong&gt;FormatDateTime&lt;/strong&gt;&lt;br /&gt; &lt;br /&gt;Esta función, en el primer parámetro se le debe pasar la fecha u hora a formatear, y el segundo parámetro es el tipo de formato, pueden ser 5 tipos.&lt;br /&gt;&lt;br /&gt;vbGeneralDate, vbLongDate, vbShortDate, vbLongTime y vbShortTime.&lt;br /&gt;&lt;br /&gt;Este parámetro es de tipo opcional. al colocar la coma dentro de la función , visual basic despliega la lista de constanetas mencionadas, como muestra el gráfico:&lt;br /&gt; &lt;br /&gt;Un ejemplo para ver estos formatos utilizando &lt;strong&gt;FormatDateTime:&lt;/strong&gt; Colocar cinco option Button, cada botón de opción mostrará los diferentes formatos en el caption del formulario, es decir en la barra de título.&lt;br /&gt; &lt;br /&gt;&lt;em&gt;Código en el formulario:&lt;br /&gt;&lt;br /&gt; Private Sub Form_Load()&lt;br /&gt;&lt;br /&gt;Option1.Caption = " vbGeneralDate "&lt;br /&gt;Option2.Caption = " vbLongDate "&lt;br /&gt;Option3.Caption = " vbShortDate "&lt;br /&gt;Option4.Caption = " vbLongTime "&lt;br /&gt;Option5.Caption = " vbShortTime "&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Option1_Click()&lt;br /&gt;Me.Caption = FormatDateTime(Now, vbGeneralDate)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Option2_Click()&lt;br /&gt;Me.Caption = FormatDateTime(Now, vbLongDate)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Option3_Click()&lt;br /&gt;Me.Caption = FormatDateTime(Now, vbShortDate)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Option4_Click()&lt;br /&gt;Me.Caption = FormatDateTime(Now, vbLongTime)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Option5_Click()&lt;br /&gt;Me.Caption = FormatDateTime(Now, vbShortTime)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;FormatNumber - Ejemplos:&lt;br /&gt; &lt;br /&gt;Formatea 0.489698 a 0,49&lt;br /&gt;&lt;br /&gt;Dim Numero As Double&lt;br /&gt;&lt;br /&gt;Numero = 0.489698&lt;br /&gt;Numero = FormatNumber(Numero, 2, vbFalse)&lt;br /&gt;&lt;br /&gt;MsgBox Numero&lt;br /&gt;Formatea 1.958754 a 1,96&lt;br /&gt;&lt;br /&gt;Dim Numero As Double&lt;br /&gt;&lt;br /&gt;Numero = 1.958754&lt;br /&gt;Numero = FormatNumber(Numero, 2)&lt;br /&gt;&lt;br /&gt;MsgBox Numero&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8664592433446133814?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8664592433446133814/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8664592433446133814' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8664592433446133814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8664592433446133814'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/funciones-de-formato-en-visual-basic-60.html' title='Funciones de formato en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-3712858150931383840</id><published>2008-09-28T19:29:00.001-07:00</published><updated>2008-09-28T19:29:57.218-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Funciones Matemáticas en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Las principales funciones matemáticas provistas por Visual Basic son:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Abs:&lt;/strong&gt; Devuelve el valor absoluto de una expresión numérica. &lt;br /&gt;&lt;strong&gt;Atn:&lt;/strong&gt; Devuelve el arco tangente de un número. &lt;br /&gt;&lt;strong&gt;Cos:&lt;/strong&gt; Devuelve el coseno de un ángulo. &lt;br /&gt;&lt;strong&gt;Exp:&lt;/strong&gt; Devuelve el número "e" elevado a una potencia. &lt;br /&gt;&lt;strong&gt;Log:&lt;/strong&gt; Devuelve el logaritmo natural de un número. &lt;br /&gt;&lt;strong&gt;Sgn:&lt;/strong&gt; Devuelve un valor indicando el signo de un número. &lt;br /&gt;&lt;strong&gt;Sin:&lt;/strong&gt; Devuelve el seno de un ángulo. &lt;br /&gt;&lt;strong&gt;Sqr:&lt;/strong&gt; Devuelve la raíz cuadrada de un número. &lt;br /&gt;&lt;strong&gt;Tan:&lt;/strong&gt; Devuelve la tangente de un ángulo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-3712858150931383840?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/3712858150931383840/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=3712858150931383840' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3712858150931383840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3712858150931383840'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/funciones-matemticas-en-visual-basic-60.html' title='Funciones Matemáticas en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-4280170411730975436</id><published>2008-09-28T19:26:00.000-07:00</published><updated>2008-09-28T19:27:36.092-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Funcion para el tratamiento de números (Rnd y Randomize) en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Para generar números aleatorios, Visual Basic incluye 2 funciones: &lt;strong&gt;Rnd y Randomize&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;La función Rnd devuelve un número aleatorio, y esta posee un solo parámetro. &lt;br /&gt;&lt;br /&gt;Ejemplo :&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Rnd (número)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Pero para poder generar dichos números aleatorios, debemos utilizar previamente la función Randomize con la siguiente fórmula:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim LimiteInferior As Integer&lt;br /&gt;Dim LimiteSuperior As Integer&lt;br /&gt;&lt;br /&gt;LimiteInferior = 20&lt;br /&gt;&lt;br /&gt;LimiteSuperior = 40&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;MsgBox Int((LimiteInferior - LimiteSuperior + 1) * Rnd + LimiteInferior)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;En el ejemplo, se generarán números aleatorios comprendidos entre el 20 y el 40.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-4280170411730975436?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/4280170411730975436/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=4280170411730975436' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4280170411730975436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4280170411730975436'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/funcion-para-el-tratamiento-de-nmeros_28.html' title='Funcion para el tratamiento de números (Rnd y Randomize) en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8539658940254955983</id><published>2008-09-28T19:23:00.000-07:00</published><updated>2008-09-28T19:24:18.515-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Funcion para el tratamiento de números (Round) en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La función &lt;strong&gt;Round&lt;/strong&gt; se utiliza para redondear un número decimal, devolviendo un número entero. &lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim Mimumero As Long&lt;br /&gt;&lt;br /&gt;Minumero = Round(245.8) '(La función devuelve 246)&lt;br /&gt;Minumero = Round(245.3) '(La función devuelve 245)&lt;br /&gt;Minumero = Round(245.5) '(La función devuelve 245)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Round posee un parámetro opcional por si queremos incluir los dígitos decimales.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8539658940254955983?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8539658940254955983/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8539658940254955983' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8539658940254955983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8539658940254955983'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/funcion-para-el-tratamiento-de-nmeros.html' title='Funcion para el tratamiento de números (Round) en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-5020351671410535675</id><published>2008-09-28T19:20:00.001-07:00</published><updated>2008-09-28T19:20:42.474-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Función para el manejo de cadena (Str y Val) en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La función &lt;strong&gt;Val&lt;/strong&gt; convierte una cadena en un número y la función &lt;strong&gt;Str&lt;/strong&gt; un número en una cadena.&lt;br /&gt;&lt;br /&gt;Ejemplos:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;cadena = "123456"&lt;br /&gt;cadena = Val(cadena)&lt;br /&gt;&lt;br /&gt;'Ahora cadena vale 123456&lt;br /&gt;&lt;br /&gt;cadena2 = 123456&lt;br /&gt;cadena2 = Str(cadena2)&lt;br /&gt;&lt;br /&gt;'Ahora cadena2 vale "123456"&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-5020351671410535675?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/5020351671410535675/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=5020351671410535675' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5020351671410535675'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5020351671410535675'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/funcin-para-el-manejo-de-cadena-str-y.html' title='Función para el manejo de cadena (Str y Val) en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-6675555688971882722</id><published>2008-09-28T19:12:00.000-07:00</published><updated>2008-09-28T19:14:33.635-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Redes'/><title type='text'>Tipos de Redes</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SOA4MHSUhxI/AAAAAAAAAGY/gTHCOR_6DXA/s1600-h/redes.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SOA4MHSUhxI/AAAAAAAAAGY/gTHCOR_6DXA/s320/redes.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5251258946279474962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;REDES DE ÁREA LOCAL:&lt;/strong&gt; las redes de área local (local area networks ) llevan mensajes a velocidades relativamente grande entre computadores conectados a un único medio de comunicaciones : un cable de par trenzado. Un cable coaxial o una fibra óptica. Un segmento es una sección de cable que da servicio y que puede tener varios computadores conectados, el ancho de banda del mismo se reparte entre dichas computadores. Las redes de área local mayores están compuestas por varios segmentos interconectados por conmutadores(switches) o concentradores(hubs. El ancho de banda total del sistema es grande y la latencia pequeña, salvo cuando el tráfico es muy alto.&lt;br /&gt;&lt;br /&gt;En los años 70s se han desarrollado varias tecnologías de redes de área local, destacándose Ethernet como tecnología dominante para las redes de área amplia; estando esta carente de garantías necesarias sobre latencia y ancho de banda necesario para la aplicación multimedia. Como consecuencia de esta surge ATM para cubrir estas falencias impidiendo su costo su implementación en redes de área local. Entonces en su lugar se implementan las redes Ethernet de alta velocidad que resuelven estas limitaciones no superando la eficiencia de ATM.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;REDES DE ÁREA EXTENSA:&lt;/strong&gt; estas pueden llevar mensajes entre nodos que están a menudo en diferentes organizaciones y quizás separadas por grandes distancias, pero a una velocidad menor que las redes LAN. El medio de comunicación esta compuesto por un conjunto de círculos de enlazadas mediante computadores dedicados, llamados rotures o encaminadores. Esto gestiona la red de comunicaciones y encaminan mensajes o paquetes hacia su destino. En la mayoría de las redes se produce un retardo en cada punto de la ruta a causa de las operaciones de encaminamiento, por lo que la latencia total de la transmisión de un mensaje depende de la ruta seguida y de la carga de trafico en los distintos segmentos que atraviese. La velocidad de las señales electrónicas en la mayoría de los medios es cercana a la velocidad de la luz, y esto impone un límite inferior a la latencia de las transmisiones para las transmisiones de larga distancia.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;REDES DE ÁREA METROPOLITANA:&lt;/strong&gt; las redes de área metropolitana (metropolitan area networks)se basan en el gran ancho de banda de las cableadas de cobre y fibra óptica recientemente instalados para la transmisión de videos, voz, y otro tipo de datos. Varias han sido las tecnologías utilizadas para implementar el encaminamiento en las redes LAN, desde Ethernet hasta ATM. IEEE ha publicado la especificación 802.6[IEEE 1994], diseñado expresamente para satisfacer las necesidades de las redes WAN. Las conexiones de línea de suscripción digital ,DLS( digital subscribe line) y los MODEM de cable son un ejemplo de esto. DSL utiliza generalmente conmutadores digitales sobre par trenzado a velocidades entre 0.25 y 6.0 Mbps; la utilización de este par trenzado para las conexiones limita la distancia al conmutador a 1.5 kilómetros . una conexión de MODEM  por cable utiliza una señalización análoga sobre el cable coaxil de televisión para conseguir velocidades de 1.5 Mbps con un alcance superior que DSL.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;REDES INALÁMBRICAS:&lt;/strong&gt; la conexión de los dispositivos portátiles y de mano necesitan redes de comunicaciones inalámbricas(wireless networks). Algunos de ellos son la IEEE802.11(wave lan) son verdaderas redes LAN inalámbricas (wireless local área  networks;WLAN) diseñados para ser utilizados en vez de los LAN . También se encuentran las redes de area personal inalámbricas, incluida la red europea mediante el Sistema Global para Comunicaciones Moviles, GSM( global system for mobile communication). En los Estados Unidos , la mayoría de los teléfonos móviles están  actualmente basados en la análoga red de radio celular AMPS, sobre la cual se encuentra la red digital de comunicaciones de Paquetes de Datos Digitales Celular, CDPD( Cellular Digital Packet Data).&lt;br /&gt;&lt;br /&gt;Dado el restringido ancho de banda disponible y las otras limitaciones de los conjuntos de protocolos  llamados Protocolos de Aplicación  Inalámbrica WAP(Wireless Aplication Protocol)       &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;INTERREDES:&lt;/strong&gt; una Interred es un sistema de comunicación compuesto por varias redes que se han enlazado juntas para proporcionar unas posibilidades de comunicación ocultando las tecnologías y los protocolos y métodos de interconexión de las redes individuales que la componen.&lt;br /&gt;&lt;br /&gt;Estas son necesarias para el desarrollo de sistemas distribuidos abiertos extensibles. En ellas se puede integrar una gran variedad de tecnología de redes de área local y amplia, para proporcionar la capacidad de trabajo en red necesaria para cada grupo de usuario. Así, las intercedes aportan gran parte de los beneficios de los sistemas abiertos a las comunicaciones de los sistemas distribuidos.&lt;br /&gt;&lt;br /&gt;Las intercedes se construyen a partir de varias redes. Estas están interconectadas por computadoras dedicadas llamadas routers y computadores de propósito general llamadas gateways, y por un subsistema integrado de comunicaciones producidos por una capa de software que soporta el direccionamiento y la transmisión de datos a los computadores a través de la interred. Los resultados pueden contemplarse como una red virtual construida a partir de solapar una capa de interred sobre un medio de comunicación que consiste en varias redes, routers y gateways subyacentes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;COMPORACION DE REDES:&lt;/strong&gt; en las redes inalámbricas los paquetes se pierden con frecuencia debido a las interferencias externas, en cambio, en el resto de los tipos de redes la fiabilidad de los mecanismos de transmisión es muy alta. En todos los tipos de redes las perdidas de paquetes son como consecuencia de los retardos de procesamiento o por los desbordamientos en los destinos.&lt;br /&gt;&lt;br /&gt;Los paquetes pueden entregarse en diferente orden al que fueron transmitidos. También se pueden entregar copias duplicadas de paquetes, tanto la retransmisión del paquete como el original llegan a su destino.&lt;br /&gt;&lt;br /&gt;Todos los fallos descriptos son ocultados por TCP y por otros protocolos llamados protocolos fiables, que hacen posible que las aplicaciones supongan que todo lo que es transmitido será recibido por destinatario. Existen, sin embargo, buenas razones para utilizar protocolos menos fiables como UDP en algunos casos de sistemas distribuidos, y en aquellas circunstancias en las que los programas de aplicación puedan tolerar los fallos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-6675555688971882722?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/6675555688971882722/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=6675555688971882722' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6675555688971882722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6675555688971882722'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/tipos-de-redes.html' title='Tipos de Redes'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SOA4MHSUhxI/AAAAAAAAAGY/gTHCOR_6DXA/s72-c/redes.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-3907666400473544178</id><published>2008-09-28T19:07:00.000-07:00</published><updated>2008-09-28T19:09:43.498-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Redes'/><title type='text'>El Origen de las Redes</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SOA4MHSUhxI/AAAAAAAAAGY/gTHCOR_6DXA/s1600-h/redes.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SOA4MHSUhxI/AAAAAAAAAGY/gTHCOR_6DXA/s320/redes.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5251258946279474962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;El origen del protocolo TCP/IP, se debe a un proyecto de investigación, financiado por la DARPA, (Defense Advanced Research Projects Agency, o Agencia de Proyectos Avanzados de Investigación en Defensa), en 1969. La ARPANET, fue una red experimental que se convirtió en funcional a mediados de 1975, tras haber sido admitida su funcionalidad. &lt;br /&gt;&lt;br /&gt;En 1983, el nuevo conjunto de protocolos TCP/IP, fue adoptado como estándar y todas las máquinas de la red tuvieron la necesidad de él. Cuando, finalmente, ARPANET creció y se convirtió en Internet, (integrándose luego ella misma a Internet, en 1990), el uso de TCP/IP se propagó incluso a redes ajenas a ella. Ahora, muchas compañías empresariales construyen redes TCP/IP, e Internet ha crecido hasta tal punto, que se la puede considerar como la corriente principal de consumo tecnológico. Actualmente, es difícil leer un periódico sin ver referencias sobre Internet; casi todo el mundo ya puede usarla. &lt;br /&gt;&lt;br /&gt;Para apreciar algo palpable sobre lo que hemos discutido anteriormente, supongamos como ejemplo, la Universidad Groucho Marx, (GMU), la cual se encuentra en algún lugar de Federilandia. La mayoría de las divisiones de la universidad tienen su propia red local, mientras que algunas comparten una sola y otras poseen muchas de ellas. Todas se encuentran interconectadas, y están enlazadas a Internet por un simple enlace de alta velocidad. &lt;br /&gt;&lt;br /&gt;Supóngase que se tiene una máquina GNU/Linux conectada a una LAN de servidores Unix en la división de Matemáticas, y su nombre es erdos. Para acceder a un servidor que se encuentra en la división de Física, cuyo nombre es, por ejemplo quark, se deberá introducir la siguiente orden:     $ rlogin quark.physics&lt;br /&gt;    Welcome to the Physics Department at GMU&lt;br /&gt;    (ttyq2) login:&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ante este indicador se podrá introducir un nombre de usuario, por ejemplo sebastian, y una contraseña. Luego, si todo es correcto, nos encontraremos frente a un intérprete de órdenes (shell)[1] de quark, en la cual, se podrá escribir como si se estuviera sentado frente a la misma consola del sistema. Tras salir del intérprete, se nos presentará nuevamente el antiguo indicador de órdenes de nuestra máquina. Se ha usado aquí, tan sólo una de las muchas aplicaciones instantáneas e interactivas que TCP/IP proporciona: remote login (registro remoto). &lt;br /&gt;&lt;br /&gt;Mientras se trabaja en quark, puede que se desee ejecutar una aplicación de interfaz gráfica, como por ejemplo un procesador de textos, un programa de diseño gráfico, o hasta un navegador de Internet. El sistema de ventanas X es un entorno gráfico para el usuario, totalmente funcional bajo redes y está disponible para muchos tipos de sistemas informáticos. Para hacerle saber a la aplicación que se desea tener interfaz gráfica en la pantalla de nuestro nodo, se necesitará determinar la variable de entorno DISPLAY:     $ DISPLAY=erdos.maths:0.0&lt;br /&gt;    $ export DISPLAY&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Si ahora se ejecuta la aplicación gráfica, ésta se comunicará con el servidor X de nuestro nodo en lugar de hacerlo con el de quark, y como consecuencia las ventanas aparecerán en nuestra la pantalla y no en la de nuestro servidor. Por supuesto, esto requiere que se esté ejecutando X11 en erdos. Lo más importante aquí es que TCP/IP permite el envío y reenvío de paquetes X11 entre quark y erdos, haciendo que el usuario tenga la ilusión de que trabaja en una única máquina. Trabajando de este modo, la red será bastante transparente. &lt;br /&gt;&lt;br /&gt;Otra aplicación muy importante en una red TCP/IP es NFS, que significa Network File System (Sistema de Ficheros de Redes). Es otra forma de hacer de la red un sistema transparente, ya que, básicamente, permite al usuario trabajar con los ficheros y directorios de otros nodos como si fueran locales. Por ejemplo, todos los directorios \home de cada usuario pueden alojarse en un servidor central. Desde éste, los demás nodos de la LAN pueden montarlos cuando sea necesario. El resultado es que los usuarios pueden registrarse en el sistema y encontrarse siempre en el mismo directorio \home. De modo similar, es posible compartir grandes cantidades de datos, (como una base de datos, documentación o programas ejecutables), entre muchos nodos, almacenando físicamente una sola copia de dichos datos en un servidor, y permitiendo a los nodos en cuestión acceso a él. Se volverá a hablar de NFS en Capítulo 14.&lt;br /&gt;&lt;br /&gt;Por supuesto, estos son sólo ejemplos de lo que se puede hacer en redes TCP/IP. Las posibilidades son casi infinitas, y el lector irá conociéndolas a medida que avance en el libro. &lt;br /&gt;&lt;br /&gt;En las siguientes secciones, se estudiará más detenidamente, de qué manera funciona una red TCP/IP. Esta información ayudará a entender cómo y por qué se debe configurar una máquina. Se empezará examinando el hardware, y desde allí con las demás cuestiones.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-3907666400473544178?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/3907666400473544178/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=3907666400473544178' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3907666400473544178'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3907666400473544178'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/el-origen-de-las-redes.html' title='El Origen de las Redes'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SOA4MHSUhxI/AAAAAAAAAGY/gTHCOR_6DXA/s72-c/redes.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-2729964805325325355</id><published>2008-09-28T19:03:00.000-07:00</published><updated>2008-09-28T19:07:31.194-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Redes'/><title type='text'>Iniciando con "Redes de Computadoras"</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SOA4MHSUhxI/AAAAAAAAAGY/gTHCOR_6DXA/s1600-h/redes.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SOA4MHSUhxI/AAAAAAAAAGY/gTHCOR_6DXA/s320/redes.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5251258946279474962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;El concepto de trabajo en redes es probablemente tan antiguo como lo es el de las telecomunicaciones. Imagínese por un momento, gente viviendo en la Edad de Piedra, en donde los individuos usen tambores para transmitirse mensajes. Supóngase que un hombre de las cavernas A quiere invitar a otro hombre B a una partida de choques de piedra. Lamentablemente viven tan distantes, que a B le sería imposible escuchar el tambor de A cuando éste lo llame. ¿Qué puede hacer A para remediar esto? Él podría 1) ir caminando al sitio de B, 2) conseguir un tambor más grande, o 3) pedirle a C, quien vive a mitad de camino que reenvíe el mensaje. La tercera elección es denominada Trabajo en Redes.&lt;br /&gt;&lt;br /&gt;Por supuesto, la humanidad ha avanzado un poco desde la la Edad de Piedra; ya no se usan aquellos primitivos artefactos ni tenemos los mismos inconvenientes que nuestros antepasados. En la actualidad, contamos con computadoras que hablan con otras sobre una colección de cables, fibra óptica, microondas, etc. tan grande como para llenar el estadio en el partido de fútbol de los sábados[1] A continuación, se hará referencia a los conceptos y métodos que son utilizados para llevar a cabo todo esto. Sin embargo, dejaremos de lado tanto el tema de los cables, como la parte del fútbol.&lt;br /&gt;&lt;br /&gt;En esta guía se describirán tres tipos de redes. Sin embargo, se discutirá más profundamente TCP/IP puesto que es el protocolo más usado, ya sea en Redes Locales (Local Area Networks, LANs), o en Redes de Área Amplia (Wide Area Networks, WANs), como por ejemplo, Internet. También se echará un vistazo a UUCP e IPX. UUCP fue antiguamente el medio general para transportar las noticias y los mensajes de correo, mediante una conexión telefónica. Es menos usado en estos días, pero sigue siendo útil en muchas situaciones. El protocolo IPX es usado más frecuentemente en los entornos Novell NetWare, y se detallará cómo usarlo para conectar una máquina GNU/Linux a una red Novell. Cada uno de estos protocolos de red son usados para transportar datos entre computadoras. Se discutirá aquí cómo son usados y se hará una introducción a sus principios fundamentales. &lt;br /&gt;&lt;br /&gt;Se define una red, como una colección de nodos (del inglés hosts), capaces de comunicarse entre sí, a veces confiando en los servicios de un número determinado de máquinas que se encargan de transmitir datos entre quienes que lo demanden. Los nodos son casi siempre computadoras, pero no necesariamente; se puede pensar, sin equivocación, en terminales X o impresoras inteligentes como nodos. Por otro lado, a las pequeñas aglomeraciones de éstos, se las denomina sitios, (sites). &lt;br /&gt;&lt;br /&gt;La comunicación, sería imposible sin algún tipo de lenguaje o código. En la jerga de las redes de computadoras, estos lenguajes se denominan conjuntamente como protocolos. No obstante, no se debería pensar aquí en lenguajes ya escritos y definidos, sino más bien en el código de comportamiento altamente formalizado, que se observa en una población cuando se reúnen jefes de estado, por citar un ejemplo. Así, los protocolos usados en las redes de computadoras no son más que reglas muy estrictas de intercambio de mensajes entre dos o más servidores.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-2729964805325325355?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/2729964805325325355/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=2729964805325325355' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2729964805325325355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2729964805325325355'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/iniciando-con-redes-de-computadoras.html' title='Iniciando con &quot;Redes de Computadoras&quot;'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SOA4MHSUhxI/AAAAAAAAAGY/gTHCOR_6DXA/s72-c/redes.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-6479072578935980876</id><published>2008-09-21T08:53:00.000-07:00</published><updated>2008-09-21T08:57:09.341-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Usar los Objetos Creados en Java</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s1600-h/java.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s320/java.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5236643669842396210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Una vez que se ha creado un objeto, probablemente querrás hacer algo con él. Supón, por ejemplo, que después de crear un nuevo rectángulo, quieres moverlo a una posición diferente (es decir, el rectángulo es un objeto en un programa de dibujo y el usuario quiere moverlo a otra posición de la página). &lt;br /&gt;&lt;br /&gt;La clase Rectangle proporciona dos formas equivalentes de mover el rectángulo. &lt;br /&gt;&lt;br /&gt;Manipular directamente las variables x e y del objeto. &lt;br /&gt;&lt;br /&gt;Llamar el método move(). &lt;br /&gt;&lt;br /&gt;La opción 2 se considera "más orientada a objetos" y más segura porque se manipulan las variables del objeto indirectamente a través de una capa protectora de métodos, en vez de manejarlas directamente. Manipular directamente las variables de un objeto se considera propenso a errores; se podría colocar el objeto en un estado de inconsistencia. &lt;br /&gt;&lt;br /&gt;Sin embargo, una clase no podría (y no debería) hacer que sus variables estuvieran disponibles para la manipulación directa por otros objetos, si fuera posible que esas manipulaciones situaran el objeto en un estado de inconsistencia. Java proporciona un mecanismo mediante el que las clases pueden restringir o permitir el acceso a sus variables y métodos a otros objetos de otros tipos. &lt;br /&gt;&lt;br /&gt;Esta sección explica la llamada a métodos y la manipulación de variables que se han hecho accesibles a otras clases. Para aprender más sobre el control de acceso a miembros puedes ir Controlar el Acceso a Miembros de una Clase. &lt;br /&gt;&lt;br /&gt;Las variables x e y de Rectangle son accesibles desde otras clases. Por eso podemos asumir que la manipulación directa de estas variables es segura. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Referenciar Variables de un Objeto&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Primero, enfoquemos cómo inspeccionar y modificar la posición del rectángulo mediante la manipulación directa de las variables x e y. La siguiente sección mostrará como mover el rectángulo llamando al método move(). &lt;br /&gt;&lt;br /&gt;Para acceder a las variables de un objeto, sólo se tiene que añadir el nombre de la variable al del objeto referenciado introduciendo un punto en el medio ('.'). &lt;br /&gt;&lt;br /&gt;&lt;em&gt;objetoReferenciado.variable&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Supón que tienes un rectángulo llamado rect en tu programa. puedes acceder a las variables x e y con rect.x y rect.y, respectivamente. &lt;br /&gt;&lt;br /&gt;Ahora que ya tienes un nombre para las variables de rect, puedes utilizar ese nombre en sentencias y expresiones Java como si fueran nombres de variables "normales". Así, para mover el rectángulo a una nueva posición podrías escribir. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;rect.x = 15;        // cambia la posición x&lt;br /&gt;rect.y = 37;        // cambia la posición y&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;La clase Rectangle tiene otras dos variables--width y height--que son accesibles para objetos fuera de Rectangle. Se puede utilizar la misma notación con ellas: rect.width y rect.height. Entonces se puede calcular el área del rectángulo utilizando esta sentencia. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;area = rect.height * rect.width;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Cuando se accede a una variable a través de un objeto, se está refiriendo a las variables de un objeto particular. Si cubo fuera también un rectángulo con una altura y anchura diferentes de rect, esta instrucción. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;area = cubo.height * cubo.width;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;calcula el área de un rectángulo llamado cubo y dará un resultado diferente que la instrucción anterior (que calculaba el área de un rectángulo llamado rect). &lt;br /&gt;&lt;br /&gt;Observa que la primera parte del nombre de una variable de un objeto (el objetoReferenciado en objetoReferenciado.variable) debe ser una referencia a un objeto. Como se puede utilizar un nombre de variable aquí, también se puede utilizar en cualquier expresión que devuelva una referencia a un objeto. Recuerda que el operador new devuelve una referencia a un objeto. Por eso, se puede utilizar el valor devuelto por new para acceder a las variables del nuevo objeto. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;height = new Rectangle().height;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Llamar a Métodos de un Objeto&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Llamar a un método de un objeto es similar a obtener una variable del objeto. Para llamar a un método del objeto, simplemente se añade al nombre del objeto referenciado el nombre del método, separados por un punto ('.'), y se proporcionan los argumentos del método entre paréntesis. Si el método no necesita argumentos, se utilizan los paréntesis vacios. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;objetoReferenciado.nombreMétodo(listaArgumentos);&lt;br /&gt;   o&lt;br /&gt;objetoReferenciado.nombreMétodo();&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Veamos que significa esto en términos de movimiento del rectángulo. Para mover rect a una nueva posición utilizando el método move() escribe esto. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;rect.move(15, 37);&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Esta sentencia Java llama al método move() de rect con dos parámetros enteros, 15 y 37. Esta sentencia tiene el efecto de mover el objeto rect igual que se hizo en las sentencias anteriores en las que se moficaban directamente los valores x e y del objeto. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;rect.x = 15;&lt;br /&gt;rect.y = 37;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Si se quiere mover un rectángulo diferente, uno llamado cubo, la nueva posición se podría escribir. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;cubo.move(244, 47);&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Como se ha visto en estos ejemplos, las llamadas a métodos se hacen directamente a un objeto específico; el objeto especificado en la llamada al método es el que responde a la instrucción. &lt;br /&gt;&lt;br /&gt;Las llamadas a métodos también se conocen como mensajes. &lt;br /&gt;&lt;br /&gt;Como en la vida real, los mensajes se deben dirigir a un receptor particular. &lt;br /&gt;&lt;br /&gt;Se pueden obtener distintos resultados dependiendo del receptor de su mensaje. &lt;br /&gt;&lt;br /&gt;En el ejemplo anterior, se ha enviado el mensaje move() al objeto llamado rect para que éste mueva su posición. &lt;br /&gt;&lt;br /&gt;Cuando se envía el mensaje move() al objeto llamado cubo, el que se mueve es cubo. Son resultados muy distintos. &lt;br /&gt;&lt;br /&gt;Una llamada a un método es una expresión (puedes ver Expresiones para más información) y evalúa a algún valor. El valor de una llamada a un método es su valor de retorno, si tiene alguno. &lt;br /&gt;&lt;br /&gt;Normalmente se asignará el valor de retorno de un método a una variable o se utilizará la llamada al método dentro del ámbito de otra expresión o sentencia. &lt;br /&gt;&lt;br /&gt;El método move() no devuelve ningún valor (está declarado como void). Sin embargo, el método inside() de Rectangle si lo hace. Este método toma dos coordendas x e y, y devuelte true si este punto está dentro del rectángulo. &lt;br /&gt;&lt;br /&gt;Se puede utilizar el método inside() para hacer algo especial en algún punto, como decir la posición del ratón cuando está dentro del rectangulo. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;if (rect.inside(mouse.x, mouse.y)) {&lt;br /&gt;    &lt;br /&gt;        // ratón dentro del rectángulo&lt;br /&gt;    &lt;br /&gt;} else {&lt;br /&gt;    &lt;br /&gt;        // ratón fuera del rectángulo&lt;br /&gt;    &lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Recuerda que una llamada a un método es un mensaje al objeto nombrado. En este caso, el objeto nombrado es rect. Entonces. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;rect.inside(mouse.x, mouse.y)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;le pregunta a rect si la posición del cursor del ratón se encuentra entre las coordenadas mouse.x y mouse.y. Se podría obtener una respuesta diferente si envía el mismo mensaje a cubo. &lt;br /&gt;&lt;br /&gt;Como se explicó anteriormente, el objetoReferenciado en la llamada al método objetoReferenciado.metodo() debe ser una referencia a un objeto. Como se puede utilizar un nombre de variable aquí, también se puede utilizar en cualquier expresión que devuelva una referencia a un objeto. Recuerda que el operador new devuelve una referencia a un objeto. Por eso, se puede utilizar el valor devuelto por new para acceder a las variables del nuevo objeto. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;new Rectangle(0, 0, 100, 50).equals(anotherRect)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;La expresión new Rectangle(0, 0, 100, 50) evalúa a una referencia a un objeto que se refiere a un objeto Rectangle. &lt;br /&gt;&lt;br /&gt;Entonces, como verás, se puede utilizar la notación de punto ('.') para llamar al método equals() del nuevo objeto Rectangle para determinar si el rectangúlo nuevo es igual al especificado en la lista de argumentos de equals().&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-6479072578935980876?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/6479072578935980876/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=6479072578935980876' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6479072578935980876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6479072578935980876'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/usar-los-objetos-creados-en-java.html' title='Usar los Objetos Creados en Java'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s72-c/java.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-2205810041343049059</id><published>2008-09-21T08:49:00.000-07:00</published><updated>2008-09-21T08:53:00.084-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Creando Objetos en Java</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s1600-h/java.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s320/java.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5236643669842396210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En Java, se crea un objeto mediante la creación de un objeto de una clase o, en otras palabras, ejemplarizando una clase. Aprenderás cómo crear una clase más adelante en Crear Clases. &lt;br /&gt;&lt;br /&gt;Hasta entonces, los ejemplos contenidos aquí crean objetos a apartir de clases que ya existen en el entorno Java. &lt;br /&gt;&lt;br /&gt;Frecuentemente, se verá la creación de un objeto Java con un sentencia como esta. &lt;br /&gt;&lt;br /&gt;Date hoy = new Date();&lt;br /&gt;&lt;br /&gt;Esta sentencia crea un objeto Date (Date es una clase del paquete java,util). Esta sentencia realmente realiza tres acciones: declaración, ejemplarización e inicialización. &lt;br /&gt;&lt;br /&gt;Date hoy es una declaración de variable que sólo le dice al compilador que el nombre hoy se va a utilizar para referirse a un objeto cuyo tipo es Date, el operador new ejemplariza la clase Date (creando un nuevo objeto Date), y Date() inicializa el objeto. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Declarar un Objeto&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Ya que la declaración de un objeto es una parte innecesaria de la creación de un objeto, las declaraciones aparecen frecuentemente en la misma línea que la creación del objeto. Como cualquier otra declaración de variable, las declaraciones de objetos pueden aparecer solitarias como esta. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Date hoy;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;De la misma forma, declarar una variable para contener un objeto es exactamente igual que declarar una variable que va a contener un tipo primitivo. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;tipo nombre&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;donde tipo es el tipo de dato del objeto y nombre es el nombre que va a utilizar el objeto. En Java, las clases e interfaces son como tipos de datos. Entonces tipo puede ser el nombre de una clase o de un interface. &lt;br /&gt;&lt;br /&gt;Las declaraciones notifican al compilador que se va a utilizar nombre para referirse a una variable cuyo tipo es tipo. Las declaraciones no crean nuevos objetos. Date hoy no crea un objeto Date, sólo crea un nombre de variable para contener un objeto Date. Para ejemplarizar la clase Date, o cualquier otra clase, se utiliza el operador new. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ejemplarizar una Clase&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;El operador new ejemplariza una clase mediante la asignación de memoria para el objeto nuevo de ese tipo. new necesita un sólo argumento: una llamada al método constructor. Los métodos constructores son métodos especiales proporcionados por cada clase Java que son reponsables de la inicialización de los nuevos objetos de ese tipo. El operador new crea el objeto, el constructor lo inicializa. &lt;br /&gt;&lt;br /&gt;Aquí tienes un ejemplo del uso del operador new para crear un objeto Rectangle (Rectangle es una clase del paquete java.awt). &lt;br /&gt;&lt;br /&gt;&lt;em&gt;new Rectangle(0, 0, 100, 200);&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;En el ejemplo, Rectangle(0, 0, 100, 200) es una llamada al constructor de la clase Rectangle. &lt;br /&gt;&lt;br /&gt;El operador new devuelve una referencia al objeto recien creado. Esta referencia puede ser asignada a una variable del tipo apropiado. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Rectangle rect = new Rectangle(0, 0, 100, 200);&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;(Recuerda que una clase esencialmente define un tipo de dato de referencia. Por eso, Rectangle puede utilizarse como un tipo de dato en los programas Java. El valor de cualquier variable cuyo tipo sea un tipo de referencia, es una referencia (un puntero) al valor real o conjunto de valores representado por la variable. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Inicializar un Objeto&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Como mencioné anteriormente, las clases porporcionan métodos constructores para incializar los nuevos objetos de ese tipo. Una clase podría proporcionar múltiples constructores para realizar diferentes tipos de inicialización en los nuevos objetos. &lt;br /&gt;&lt;br /&gt;Cuando veas la implementación de una clase, reconocerás los constructores porque tienen el mismo nombre que la clase y no tienen tipo de retorno. Recuerda la creación del objeto Date en el sección inicial. El constructor utilizado no tenía ningún argumento. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Date()&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Un constructor que no tiene ningún argumento, como el mostrado arriba, es conocido como constructor por defecto. Al igual que Date, la mayoría de las clases tienen al menos un constructor, el constructor por defecto. &lt;br /&gt;&lt;br /&gt;Si una clase tiene varios constructores, todos ellos tienen el mismo nombre pero se deben diferenciar en el número o el tipo de sus argumentos. Cada constructor inicializa el nuevo objeto de una forma diferente. Junto al constructor por defecto, la clase Date proporciona otro constructor que inicializa el nuevo objeto con un nuevo año, mes y día. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Date cumpleaños = new Date(1963, 8, 30);&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;El compilador puede diferenciar los constructores a través del tipo y del número de sus argumentos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-2205810041343049059?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/2205810041343049059/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=2205810041343049059' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2205810041343049059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2205810041343049059'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/creando-objetos-en-java.html' title='Creando Objetos en Java'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s72-c/java.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-6145153520745591662</id><published>2008-09-21T08:37:00.000-07:00</published><updated>2008-09-21T09:01:51.715-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Sentencias de Control en Java</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s1600-h/java.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s320/java.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5236643669842396210" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sentencias de Control de Flujo en Java&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Las sentencias de control de flujo determinan el orden en que se ejecutarán las otras sentencias dentro del programa. El lenguaje Java soporta varias sentencias de control de flujo, incluyendo. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sentencias palabras clave&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;toma de decisiones    if-else, switch-case &lt;br /&gt;bucles                for, while, do-while &lt;br /&gt;excepciones           try-catch-finally, throw &lt;br /&gt;miscelaneas           break, continue, label:, return &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Nota:&lt;/strong&gt; Aunque goto es una palabra reservada, actualmente el lenguaje Java no la soporta. Podemos utilizar las rupturas etiquetadas en su lugar. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;La sentencia if-else&lt;/strong&gt;&lt;br /&gt;La sentencia if-else de java proporciona a los programas la posibilidad de ejecutar selectivamente otras sentencias basándose en algún criterio. &lt;br /&gt;&lt;br /&gt;Por ejemplo, supon que tu programa imprime información de depurado basándose en el valor de una variable booleana llamada DEBUG. Si DEBUG fuera verdadera true, el programa imprimiría la información de depurado, como por ejemplo, el valor de una variable como x. Si DEBUG es false el programa procederá normalmente. Un segmento de código que implemente esto se podría parecer a este. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;br /&gt;if (DEBUG)&lt;br /&gt;    System.out.println("DEBUG: x = " + x);&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Esta es la versión más sencilla de la sentencia if: la sentencia gobernada por if se ejecuta si alguna codición es verdadera. Generalmente, la forma sencilla de if se puede escribir así. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;if (expresión)&lt;br /&gt;    sentencia&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Pero, ¿y si quieres ejecutar un juego diferente de sentencias si la expresión es falsa? Bien, puedes utilizar la sentencia else. Echemos un vistazo a otro ejemplo. Supon que tu programa necesita realizar diferentes acciones dependiendo de que el usuario pulse el botón OK o el botón Cancel en un ventana de alarma. Se podría hacer esto utilizando una sentencia if. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;    // Respuesta dependiente del botoón que haya pulsado el usuario&lt;br /&gt;    // OK o Cancel&lt;br /&gt;    &lt;br /&gt;if (respuesta == OK) {&lt;br /&gt;    &lt;br /&gt;    // Código para la acción OK &lt;br /&gt;    &lt;br /&gt;} else {&lt;br /&gt;  &lt;br /&gt;    // código para la acción Cancel &lt;br /&gt; &lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Este uso particular de la sentencia else es la forma de capturarlo todo. &lt;br /&gt;&lt;br /&gt;Existe otra forma de la sentecia else, else if que ejecuta una sentencia basada en otra expresión. Por ejemplo, supon que has escrito un programa que asigna notas basadas en la puntuación de un examen, un Sobresaliente para una puntuación del 90% o superior, un Notable para el 80% o superior y demás. odrías utilizar una sentencia if con una serie de comparaciones else if y una setencia else para escribir este código. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;int puntuacion;&lt;br /&gt;String nota;&lt;br /&gt;&lt;br /&gt;if (puntuacion &gt;= 90) {&lt;br /&gt;    nota = "Sobresaliente";&lt;br /&gt;} else if (puntuacion &gt;= 80) {&lt;br /&gt;    nota = "Notable";&lt;br /&gt;} else if (puntuacion &gt;= 70) {&lt;br /&gt;    nota = "Bien";&lt;br /&gt;} else if (puntuacion &gt;= 60) {&lt;br /&gt;    nota = "Suficiente";&lt;br /&gt;} else {&lt;br /&gt;    nota = "Insuficiente";&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Una sentencia if puede tener cualquier número de sentencias de acompañamiento else if. &lt;br /&gt;&lt;br /&gt;Podrías haber observado que algunos valores de puntuacion pueden satisfacer más una de las expresiones que componen la sentencia if. Por ejemplo, una puntuación de 76 podría evaluarse como true para dos expresiones de esta sentencia:puntuacion &gt;= 70 y puntuacion &gt;= 60. &lt;br /&gt;&lt;br /&gt;Sin embargo, en el momento de ejecución, el sistema procesa una sentencia if compuesta como una sóla; una vez que se ha satisfecho una condición (76 &gt;= 70), se ejecuta la sentencia apropiada (nota = "Bien";), y el control sale fuera de la sentencia if sin evaluar las condiciones restantes. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt; La sentencia switch&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;La sentencia switch se utiliza para realizar sentencias condicionalmente basadas en alguna expresión. Por ejemplo, supon que tu programa contiene un entero llamado mes cuyo valor indica el mes en alguna fecha. Supon que también quieres mostrar el nombre del mes basándose en su número entero equivalente. Podrías utilizar la sentencia switch de Java para realizar esta tarea. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;int mes;&lt;br /&gt;&lt;br /&gt;switch (mes) {&lt;br /&gt;case 1:  System.out.println("Enero"); break;&lt;br /&gt;case 2:  System.out.println("Febrero"); break;&lt;br /&gt;case 3:  System.out.println("Marzo"); break;&lt;br /&gt;case 4:  System.out.println("Abril"); break;&lt;br /&gt;case 5:  System.out.println("May0"); break;&lt;br /&gt;case 6:  System.out.println("Junio"); break;&lt;br /&gt;case 7:  System.out.println("Julio"); break;&lt;br /&gt;case 8:  System.out.println("Agosto"); break;&lt;br /&gt;case 9:  System.out.println("Septiembre"); break;&lt;br /&gt;case 10: System.out.println("Octubre"); break;&lt;br /&gt;case 11: System.out.println("Noviembre"); break;&lt;br /&gt;case 12: System.out.println("Diciembre"); break;&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;La sentencia switch evalúa su expresión, en este caso el valor de mes, y ejecuta la sentencia case apropiada. &lt;br /&gt;&lt;br /&gt;Decidir cuando utilizar las sentencias if o switch dependen del juicio personal. Puedes decidir cual utilizar basándose en la buena lectura del código o en otros factores. &lt;br /&gt;&lt;br /&gt;Cada sentencia case debe ser única y el valor proporcionado a cada sentencia case debe ser del mismo tipo que el tipo de dato devuelto por la expresión proporcionada a la sentencia switch. &lt;br /&gt;&lt;br /&gt;Otro punto de interes en la sentencia switch son las sentencias break después de cada case. &lt;br /&gt;&lt;br /&gt;La sentencia break hace que el control salga de la sentencia switch y continúe con la siguiente línea. &lt;br /&gt;&lt;br /&gt;La sentencia break es necesaria porque las sentencias case se siguen ejecutando hacia abajo. Esto es, sin un break explícito, el flujo de control seguiría secuencialmente a través de las sentencias case siguientes. &lt;br /&gt;&lt;br /&gt;En el ejemplo anterior, no se quiere que el flujo vaya de una sentencia case a otra, por eso se han tenido que poner las sentencias break. &lt;br /&gt;&lt;br /&gt;Sin embargo, hay ciertos escenario en los que querrás que el control proceda secuencialmente a través de las sentencias case. Como este código que calcula el número de días de un mes de acuerdo con el ritmico refrán que dice "Treinta dias tiene Septiembre...". &lt;br /&gt;&lt;br /&gt;&lt;em&gt;int mes;&lt;br /&gt;int numeroDias;&lt;br /&gt;&lt;br /&gt;switch (mes) {&lt;br /&gt;case 1.&lt;br /&gt;case 3.&lt;br /&gt;case 5.&lt;br /&gt;case 7.&lt;br /&gt;case 8.&lt;br /&gt;case 10.&lt;br /&gt;case 12.&lt;br /&gt;    numeroDias = 31;&lt;br /&gt;    break;&lt;br /&gt;case 4.&lt;br /&gt;case 6.&lt;br /&gt;case 9.&lt;br /&gt;case 11.&lt;br /&gt;    numeroDias = 30;&lt;br /&gt;    break;&lt;br /&gt;case 2.&lt;br /&gt;    if ( ((ano % 4 == 0) &amp;&amp; !(ano % 100 == 0)) || ano % 400 == 0) )&lt;br /&gt;        numeroDias = 29;&lt;br /&gt;    else&lt;br /&gt;        numeroDias = 28;&lt;br /&gt;    break;&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Finalmente, puede utilizar la sentencia default al final de la sentencia switch para manejar los valores que no se han manejado explícitamente por una de las sentencias case. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;int mes;&lt;br /&gt;&lt;br /&gt;switch (mes) {&lt;br /&gt;case 1:  System.out.println("Enero"); break;&lt;br /&gt;case 2:  System.out.println("Febrero"); break;&lt;br /&gt;case 3:  System.out.println("Marzo"); break;&lt;br /&gt;case 4:  System.out.println("Abril"); break;&lt;br /&gt;case 5:  System.out.println("Mayo"); break;&lt;br /&gt;case 6:  System.out.println("Junio"); break;&lt;br /&gt;case 7:  System.out.println("Julio"); break;&lt;br /&gt;case 8:  System.out.println("Agosto"); break;&lt;br /&gt;case 9:  System.out.println("Septiembre"); break;&lt;br /&gt;case 10: System.out.println("Octubre"); break;&lt;br /&gt;case 11: System.out.println("Noviembre"); break;&lt;br /&gt;case 12: System.out.println("Diciembre"); break;&lt;br /&gt;default: System.out.println("Ee, no es un mes válido!");&lt;br /&gt;    break;&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sentencias de Bucle&lt;/strong&gt;&lt;br /&gt;Generalmente hablando, una sentencia while realiza una acción mientras se cumpla una cierta condición. La sintaxis general de la sentencia while es. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;while (expresión)&lt;br /&gt;    sentencia&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Esto es, mientras la expresión sea verdadera, ejecutará la sentencia. &lt;br /&gt;&lt;br /&gt;sentencia puede ser una sóla sentencia o puede ser un bloque de sentencias. Un bloque de sentencias es un juego de sentencias legales de java contenidas dentro de corchetes('{'y '}'). &lt;br /&gt;&lt;br /&gt;Por ejemplo, supon que además de incrementar contador dentro de un bucle while también quieres imprimir el contador cada vez que se lea un carácter. Podrías escribir esto en su lugar. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;while (System.in.read() != -1) {&lt;br /&gt;    contador++;&lt;br /&gt;    System.out.println("Se ha leido un el carácter = " + contador);&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Por convención el corchete abierto '{' se coloca al final de la misma línea donde se encuentra la sentencia while y el corchete cerrado '}' empieza una nueva línea indentada a la línea en la que se encuentra el while. &lt;br /&gt;&lt;br /&gt;Además de while Java tiene otros dos constructores de bucles que puedes utilizar en tus programas. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;el bucle for y el bucle do-while.&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;Primero el bucle for. Puedes utilizar este bucle cuando conozcas los límites del bucle (su instrucción de inicialización, su criterio de terminación y su instrucción de incremento). Por ejemplo, el bucle for se utiliza frecuentemente para iterar sobre los elementos de un array, o los caracteres de una cadena. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;// a es un array de cualquier tipo&lt;br /&gt;&lt;br /&gt;int i;&lt;br /&gt;int length = a.length;&lt;br /&gt;for (i = 0; i &lt; length; i++) {&lt;br /&gt;   &lt;br /&gt;    // hace algo en el elemento i del array a&lt;br /&gt;    &lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Si sabes cuando estas escribiendo el programa que quieres empezar en el inicio del array, parar al final y utilizar cada uno de los elementos. Entonces la sentencia for es una buena elección. La forma general del bucle for puede expresarse asi. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;for (inicialización; terminación; incremento)&lt;br /&gt;    sentencias&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;inicialización es la sentencia que inicializa el bucle -- se ejecuta una vez al iniciar el bucle. &lt;br /&gt;&lt;br /&gt;terminación es una sentecia que determina cuando se termina el bucle. Esta expresión se evalúa al principio de cada iteracción en el bucle. Cuando la expreión se evalúa a false el bucle se termina. &lt;br /&gt;&lt;br /&gt;Finalmente, incremento es una expresión que se invoca en cada interacción del bucle. Cualquiera (o todos) de estos componentes puden ser una sentencia vacía (un punto y coma). &lt;br /&gt;&lt;br /&gt;Java proporciona otro bucle, &lt;strong&gt;el bucle do-while&lt;/strong&gt;,que es similar al bucle while que se vió al principio, excepto en que la expresión se avalú al final del bucle. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;do {&lt;br /&gt;    sentencias&lt;br /&gt;} while (Expresión Booleana);&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;La sentencia do-while se usa muy poco en la construcción de bucles pero tiene sus usos. Por ejemplo, es conveniente utilizar la sentencia do-while cuando el bucle debe ejecutarse al menos una vez. Por ejemplo, para leer información de un fichero, sabemos que al menos debe leer un carácter. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;int c;&lt;br /&gt;InputStream in;&lt;br /&gt;. . .&lt;br /&gt;do {&lt;br /&gt;    c = in.read();&lt;br /&gt;    . . .&lt;br /&gt;} while (c != -1);&lt;/em&gt;&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;Sentencias de Manejo de Excepciones&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Cuando ocurre un error dentro de un método Java, el método puede lanzar una excepción para indicar a su llamador que ha ocurrido un error y que el error está utilizando la sentencia throw. &lt;br /&gt;&lt;br /&gt;El método llamador puede utilizar las sentencias try, catch, y finally para capturar y manejar la excepción. &lt;br /&gt;&lt;br /&gt;Puedes ver Manejar Errores Utilizando Excepciones para obtener más información sobre el lanzamiento y manejo de excepciones. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Sentencias de Ruptura&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Ya has visto la sentencia break en acción dentro de la sentencia switch anteriormente. Como se observó anteriormente, la sentencia break hace que el control del flujo salte a la sentencia siguiente a la actual. &lt;br /&gt;&lt;br /&gt;Hay otra forma de break que hace que el flujo de control salte a una sentencia etiquetada. &lt;br /&gt;&lt;br /&gt;Se puede etiquetar una sentencia utilizando un identificador legal de Java (la etiqueta) seguido por dos puntos (:) antes de la sentencia. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;SaltaAqui: algunaSentenciaJava&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Para saltar a la sentencia etiquetada utilice esta forma de la sentencia break. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;break SaltaAqui;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Las rupturas etiquetadas son una alternativa a la sentencia goto que no está soportada por el lenguaje Java. &lt;br /&gt;&lt;br /&gt;Se puede utiliza la sentencia continue dentro de un bucle para saltar de la sentencia actual hacia el principio del bucle o a una sentencia etiquetada. &lt;br /&gt;&lt;br /&gt;Considera esta implementación del método indexOf() de la clase String que utiliza la forma de continue que continúa en una sentencia etiquetada. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;public int indexOf(String str, int fromIndex) {&lt;br /&gt;    char[] v1 = value;&lt;br /&gt;    char[] v2 = str.value;&lt;br /&gt;    int max = offset + (count - str.count);&lt;br /&gt;  test.&lt;br /&gt;    for (int i = offset + ((fromIndex &lt; 0) ? 0 : fromIndex); i &lt;= max ; i++) {&lt;br /&gt;        int n = str.count;&lt;br /&gt;        int j = i;&lt;br /&gt;        int k = str.offset;&lt;br /&gt;        while (n-- != 0) {&lt;br /&gt;            if (v1[j++] != v2[k++]) {&lt;br /&gt;                continue test;&lt;br /&gt;            }&lt;br /&gt;        }    &lt;br /&gt;        return i - offset;&lt;br /&gt;    }&lt;br /&gt;    return -1;&lt;br /&gt;}&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Nota: Sólo se puede llamar a la sentencia continue desde dentro de un bucle. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;la sentencia return&lt;/strong&gt;. &lt;br /&gt;&lt;br /&gt;Esta sentencia se utiliza para salir del método actual y volver a la sentencia siguiente a la que originó la llamada en el método original. &lt;br /&gt;&lt;br /&gt;Existen dos formas de return: una que devuelve un valor y otra que no lo hace. &lt;br /&gt;&lt;br /&gt;Para devolver un valor, simplemente se pone el valor (o una expresión que calcule el valor) detrás de la palabra return. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;return ++count;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;El valor devuelto por return debe corresponder con el tipo del valor de retorno de la declaración del método. &lt;br /&gt;&lt;br /&gt;Cuando un método se declara como void utiliza la forma de return que no devuelve ningún valor. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;return;&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-6145153520745591662?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/6145153520745591662/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=6145153520745591662' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6145153520745591662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6145153520745591662'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/sentencias-de-control-de-flujo-en-java.html' title='Sentencias de Control en Java'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qqGefALtuG0/SKxLrDxBBDI/AAAAAAAAABc/biToBjVM8cw/s72-c/java.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-2577803195628347080</id><published>2008-09-21T08:26:00.000-07:00</published><updated>2008-09-21T08:27:17.020-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Función para el manejo de cadena (Left, Right y Mid) en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Estas funciones son utilizadas para extraer partes de una cadena. &lt;br /&gt;&lt;br /&gt;La función &lt;strong&gt;Left&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;tiene 2 parámetros: El primero es la cadena de la cual se extraerán caracteres, y el segundo un número desde el cual comenzar a extraer caracteres desde la parte izquierda. &lt;br /&gt;&lt;br /&gt;Ejemplo: &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim Cadena As String&lt;br /&gt;&lt;br /&gt;Cadena = Left("Ya es la madrugada", 9)&lt;br /&gt;&lt;br /&gt;'Cadena, que es un string, sería igual a: "Ya es la"&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Función &lt;strong&gt;Right&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;Es igual que la función Left pero comienza a extraer caracteres desde el lado derecho de la cadena.&lt;br /&gt;&lt;br /&gt;La función &lt;strong&gt;Mid&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;Tiene la misma función que las anteriores pero posee tres parámetros. Su sintaxis es:&lt;br /&gt;&lt;br /&gt;Mid (cadena, inicio, longitud)&lt;br /&gt;&lt;br /&gt;El parámetro cadena es la cadena a extraer caracteres. El parámetro Inicio es donde comenzar y el parámetro longitud, es la cantidad de caracteres a extraer de la cadena de caracteres&lt;br /&gt;&lt;br /&gt;Ejemplos:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim nombre As String&lt;br /&gt;nombre = Mid("River perdió la copa", 7, 6)&lt;br /&gt;&lt;br /&gt;'La variable nombre sería igual a: "perdió"&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Este Otro ejemplo usa la función Mid para realizar un simple efecto tipo máquina de escribir.&lt;br /&gt;&lt;br /&gt;Colocar en un formulario un CommandButton y el siguiente código fuente en el form.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;Sub Pausa(Segundos As Double)&lt;br /&gt;    &lt;br /&gt;    Dim inicio As Double&lt;br /&gt;    &lt;br /&gt;    ' Devuelve la cantidad de segundos desde que inicio windows&lt;br /&gt;    inicio = Timer&lt;br /&gt;    &lt;br /&gt;    Do While (Timer - inicio) &lt; Segundos&lt;br /&gt;        ' pausa&lt;br /&gt;        DoEvents&lt;br /&gt;    Loop&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Command1_Click()&lt;br /&gt;            &lt;br /&gt;    Dim texto As String&lt;br /&gt;        &lt;br /&gt;    texto = "... Hola mundo ---&gt;&gt;&gt; "&lt;br /&gt;        &lt;br /&gt;    Call MostrarTexto(texto, 0.1, Me)&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub MostrarTexto(Frase As String, _&lt;br /&gt;                         Segundos As Double, _&lt;br /&gt;                         Destino As Object)&lt;br /&gt;    &lt;br /&gt;    Dim LenFrase As Integer&lt;br /&gt;    Dim i As Integer&lt;br /&gt;    Dim Caracter As String&lt;br /&gt;    Dim texto As String&lt;br /&gt;    &lt;br /&gt;    LenFrase = Len(Frase)&lt;br /&gt;    &lt;br /&gt;    Do While i &lt;= LenFrase&lt;br /&gt;        Destino.Cls&lt;br /&gt;        &lt;br /&gt;        DoEvents&lt;br /&gt;            i = i + 1&lt;br /&gt;            ' Obtiene el siguiente caracter&lt;br /&gt;            Caracter = Mid(Frase, i, 1)&lt;br /&gt;            ' texto actual&lt;br /&gt;            texto = texto &amp; Caracter&lt;br /&gt;            Destino.Print texto ' Imprimi e/ dibuja el texto&lt;br /&gt;            ' pausa o delay&lt;br /&gt;            Pausa Segundos&lt;br /&gt;        DoEvents&lt;br /&gt;     Loop&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;    Me.FontSize = 12&lt;br /&gt;    Me.Font.Bold = True&lt;br /&gt;    Me.ForeColor = vbRed&lt;br /&gt;    Command1.Caption = " Efecto de texto con mid "&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form_Unload(Cancel As Integer)&lt;br /&gt;    End&lt;br /&gt;End Sub  &lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-2577803195628347080?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/2577803195628347080/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=2577803195628347080' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2577803195628347080'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2577803195628347080'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/funcin-para-el-manejo-de-cadena-left.html' title='Función para el manejo de cadena (Left, Right y Mid) en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-5224149730399935066</id><published>2008-09-21T08:24:00.000-07:00</published><updated>2008-09-21T08:25:17.515-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Función para el manejo de cadena (InsTr) en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La función InStr se utiliza para buscar una cadena o parte de una cadena dentro de otra cadena.&lt;br /&gt;&lt;br /&gt;Si la función encuentra la cadena a buscar devuelve un número que representa la posición donde encontró la cadena, si no la encuentra devuelve un 0.&lt;br /&gt;&lt;br /&gt;Los parámetros que lleva esta función son:&lt;br /&gt;&lt;br /&gt;InStr (comienzo, Cadena donde buscar , La Cadena a buscar)&lt;br /&gt;Como esta función devuelve un número debemos almacenarla en una variable de tipo numérica para utilizarla. &lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim posicion As Integer&lt;br /&gt;&lt;br /&gt;posicion = InStr("Estoy tomando mate", "mate")&lt;br /&gt;En este ejemplo la función encontró la cadena "mate" en la posición 15, o sea que la variable posición pasa a valer 15.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Si observamos bien, la función en el primer parámetro, denominado comienzo, nos pide que le digamos desde que posición comenzar a buscar. En nuestro ejemplo, este parámetro lo obviamos, esto quiere decir que comenzará desde la posición 0 de la cadena a buscar. Pero podríamos especificar una posición en particular, por ejemplo desde la 5 , 10 etc..., según lo que necesitemos hacer.&lt;br /&gt;&lt;br /&gt;Otro ejemplo de InsTr : &lt;br /&gt;&lt;br /&gt;Este ejemplo, muestra como buscar dentro de un control TextBox, el cual tiene dos opciones, un botón para buscar la primera frase, y otro que sigue buscando a partir de donde esté ubicda la selección.&lt;br /&gt;&lt;br /&gt;Para armar el ejemplo colocar un Textbox llamado Text_Buscar que es donde se ingresará la frase y otro TextBox llamado Text1 que tendrá el texto. Este ultimo con la propiedad Multiline en True. &lt;br /&gt;&lt;br /&gt;También colocar dos CommandButton: Command1 y Command2&lt;br /&gt;&lt;br /&gt;Colocar el siguiente código fuente en el formulario:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;Private m_Pos As Integer&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Sub buscar_cadena(ByVal Posicion As Integer)&lt;br /&gt;&lt;br /&gt;Dim p As Integer, Frase As String&lt;br /&gt;&lt;br /&gt;    Frase = txt_Buscar&lt;br /&gt;    &lt;br /&gt;    p = InStr(Posicion, Text1, Frase)&lt;br /&gt;    &lt;br /&gt;    If p &gt; 0 Then&lt;br /&gt;        m_Pos = p&lt;br /&gt;        &lt;br /&gt;        With Text1&lt;br /&gt;            .SelStart = m_Pos - 1&lt;br /&gt;            .SelLength = Len(Frase)&lt;br /&gt;            .SetFocus&lt;br /&gt;        End With&lt;br /&gt;    Else&lt;br /&gt;        MsgBox "No se encontró la frase", vbInformation&lt;br /&gt;        Text1.SetFocus&lt;br /&gt;    End If&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Command1_Click()&lt;br /&gt;'Busca a pratir de la primera pocición&lt;br /&gt;Call buscar_cadena(1)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Command2_Click()&lt;br /&gt;'Busca a partir del valor que tenga m_Pos&lt;br /&gt;&lt;br /&gt;Call buscar_cadena(m_Pos + 1)&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub Form_Load()&lt;br /&gt;Command1.Caption = "Buscar"&lt;br /&gt;Command2.Caption = "Buscar siguiente"&lt;br /&gt;Me.Caption = "Ejemplo de InStr "&lt;br /&gt;End Sub &lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Nota: también hay una función similar a Instr llamada InstrRev , y lo que hace es devolver la posición de la primera concurrencia de una cadena dentro de otra cadena, pero comenzando por el extremo derecho de la misma.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-5224149730399935066?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/5224149730399935066/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=5224149730399935066' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5224149730399935066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5224149730399935066'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/funcin-para-el-manejo-de-cadena-instr.html' title='Función para el manejo de cadena (InsTr) en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-4843051972025516154</id><published>2008-09-21T08:22:00.000-07:00</published><updated>2008-09-21T08:23:05.780-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Función para el manejo de cadena (Asc y Chr) en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La función &lt;strong&gt;Asc&lt;/strong&gt; nos permite obtener el código ASCII de un de terminado caracter. &lt;br /&gt;&lt;br /&gt;Ejempos: &lt;br /&gt;&lt;br /&gt;Si queremos obtener el código ASCII del caracter "a", que es el número 97 podríamos hacer lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim num As Integer&lt;br /&gt; &lt;br /&gt;num = Asc("a")&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;En definitiva la función Asc lleva un solo parámetro de tipo String del cual queremos obtener dicho número.&lt;br /&gt;&lt;br /&gt;La Función &lt;strong&gt;Chr &lt;/strong&gt; actúa a la inversa de la función Asc, esto quiere decir, que a partir de un determinado número nos devolverá el caracter ASCII. &lt;br /&gt;&lt;br /&gt;Obviamente que en vez de pasarle a la función un parámetro String es decir la letra, debemos pasarle un número ASCII y nos devolverá el carácter asociado. &lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim letra As String&lt;br /&gt;&lt;br /&gt;letra = Chr(97)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;La variable pasa a valer en este caso el caracter "a"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-4843051972025516154?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/4843051972025516154/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=4843051972025516154' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4843051972025516154'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4843051972025516154'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/funcin-para-el-manejo-de-cadena-asc-y.html' title='Función para el manejo de cadena (Asc y Chr) en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-4833948472343374732</id><published>2008-09-21T08:20:00.000-07:00</published><updated>2008-09-21T08:21:25.713-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Función para el manejo de cadena (Len) en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La función &lt;strong&gt;Len&lt;/strong&gt; nos permite conocer la cantidad de caracteres que tiene una determinada cadena. O sea que esta función nos devuelve un número. &lt;br /&gt;&lt;br /&gt;Ejemplo: &lt;br /&gt;&lt;br /&gt;Len (Aquí va la cadena que queremos averiguar su tamaño)&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Como la función Len devuelve un número debemos asignar ese número devuelto en una variable de tipo numérica. &lt;br /&gt;&lt;br /&gt;Ejemplo: &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim TamanoCadena As Long&lt;br /&gt;&lt;br /&gt;Dim MiCadena As String&lt;br /&gt;&lt;br /&gt;MiCadena = "Me Llamo Eustaquio"&lt;br /&gt;&lt;br /&gt;TamanoCadena = Len(MiCadena)&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;El valor de la variable TamanoCadena pasaría a valer 18. &lt;br /&gt;&lt;br /&gt;Hay que tener en cuenta que la función Len también toma en cuenta los espacios vacíos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-4833948472343374732?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/4833948472343374732/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=4833948472343374732' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4833948472343374732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/4833948472343374732'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/funcin-para-el-manejo-de-cadena-len-en.html' title='Función para el manejo de cadena (Len) en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-5948848356521356139</id><published>2008-09-21T08:19:00.001-07:00</published><updated>2008-09-21T08:19:30.881-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Función para el manejo de cadena (Trim, LTrim y RTrim) en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Estas tres funciones se utilizan para eliminar los espacios vacíos de una cadena. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;LTrim&lt;/strong&gt; elimina los espacios vacíos de la parte izquierda de la cadena, &lt;strong&gt;RTrim&lt;/strong&gt; de la parte derecha y &lt;strong&gt;Trim&lt;/strong&gt; de ambas partes.&lt;br /&gt;&lt;br /&gt;Ejemplos:&lt;br /&gt;&lt;br /&gt;Tenemos una variable llamada ciudad con el valor " Barcelona". Para eliminar los espacios vacíos de la izquierda haríamos lo siguiente: &lt;br /&gt;&lt;br /&gt;&lt;em&gt;ciudad = LTrim(ciudad)&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Si en un TextBox quisieramos borrar todos los espacios vacíos de la parte derecha de la cadena: &lt;br /&gt;&lt;br /&gt;&lt;em&gt;MiText = RTrim(MiText)&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;La Función Trim elimina todos los espacios vacíos de ambos lados de la cadena. Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Pais = "     Argentina     "&lt;br /&gt;País = Trim(Pais)&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Ahora el valor de País es igual a: "Argentina".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-5948848356521356139?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/5948848356521356139/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=5948848356521356139' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5948848356521356139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5948848356521356139'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/funcin-para-el-manejo-de-cadena-trim.html' title='Función para el manejo de cadena (Trim, LTrim y RTrim) en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-2493239879203446478</id><published>2008-09-21T08:17:00.001-07:00</published><updated>2008-09-21T08:17:59.780-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Función para el manejo de cadena (Lcase y Ucase) en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Estas dos funciones se utilizan para convertir cadenas de texto a minúscula y mayúscula.&lt;br /&gt;La función &lt;strong&gt;Lcase&lt;/strong&gt; cambia o convierte una cadena de texto a minúscula y un ejemplo de como utilizarla sería así:&lt;br /&gt;&lt;br /&gt;Lcase (cadena que queremos convertir a minúsculas)&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim cadena As String&lt;br /&gt;&lt;br /&gt;cadena = "HOLA MUNDO"&lt;br /&gt;&lt;br /&gt;'Convertimos&lt;br /&gt;cadena = LCase(cadena)&lt;br /&gt;&lt;br /&gt;'La variable cadena ahora vale "hola mundo"&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;La función &lt;strong&gt;Ucase&lt;/strong&gt; funciona de la misma manera que Lcase pero convierte el contenido de una cadena a mayúsculas. &lt;br /&gt;&lt;br /&gt;Por ejemplo, si tenemos un control Label1 que contiene un texto que dice: "Porcentaje de sueldos", escribiendo la siguiente línea: &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Label1 = UCase(Label1)&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;El control Label1 pasaría a mostrar o mejor dicho contener en su propiedad caption:"PORCENTAJE DE SUELDOS&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-2493239879203446478?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/2493239879203446478/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=2493239879203446478' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2493239879203446478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2493239879203446478'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/funcin-para-el-manejo-de-cadena-lcase-y.html' title='Función para el manejo de cadena (Lcase y Ucase) en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-7476696727891776651</id><published>2008-09-12T20:03:00.000-07:00</published><updated>2008-09-12T20:24:50.961-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Base de Datos'/><title type='text'>Modelos de Base de Datos</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_qqGefALtuG0/SMsqG58bJ2I/AAAAAAAAAFw/A0Lo-D6aeSc/s1600-h/BD.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_qqGefALtuG0/SMsqG58bJ2I/AAAAAAAAAFw/A0Lo-D6aeSc/s320/BD.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5245332489124915042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Modelo de datos jerárquico&lt;/strong&gt; &lt;br /&gt;&lt;br /&gt;Este modelo utiliza árboles para la representación lógica de los datos. Este árbol esta compuesto de unos elementos llamados nodos. El nivel más alto del árbol se denomina raíz. Cada nodo representa un registro con sus correspondientes campos. &lt;br /&gt;&lt;br /&gt;La representación gráfica de este modelo se realiza mediante la creación de un árbol invertido, los diferentes niveles quedan unidos mediante relaciones. &lt;br /&gt;&lt;br /&gt;En este modelo solo se pueden representar relaciones 1:M, por lo que presenta varios inconvenientes: &lt;br /&gt;&lt;br /&gt;No se admiten relaciones N:M &lt;br /&gt;Un segmento hijo no puede tener más de un padre. &lt;br /&gt;No se permiten más de una relación entre dos segmentos. &lt;br /&gt;Para acceder a cualquier segmento es necesario comenzar por el segmento raíz &lt;br /&gt;El árbol se debe de recorrer en el orden designado. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Modelo de datos en red &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;En este modelo las entidades se representan como nodos y sus relaciones son las líneas que los unen. En esta estructura cualquier componente puede relacionarse con cualquier otro. &lt;br /&gt;A diferencia del modelo jerárquico, en este modelo, un hijo puede tener varios padres. &lt;br /&gt;Los conceptos básicos en el modelo en red son: &lt;br /&gt;El tipo de registro, que representa un nodo. &lt;br /&gt;Elemento, que es un campo de datos. &lt;br /&gt;Agregado de datos, que define un conjunto de datos con nombre. &lt;br /&gt;&lt;br /&gt;Este modelo de datos permite representar relaciones N:M &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Modelo de datos relacional &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Este modelo es el más utilizado actualmente ya que utiliza tablas bidimensionales para la representación lógica de los datos y sus relaciones. &lt;br /&gt;&lt;br /&gt;Algunas de sus principales caracteristicas son: &lt;br /&gt;&lt;br /&gt;Puede ser entendido y usado por cualquier usuario. &lt;br /&gt;Permite ampliar el esquema conceptual sin modificar las aplicaciones de gestión. &lt;br /&gt;Los usuarios no necesitan saber donde se encuentran los datos físicamente. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;El modelo deductivo:&lt;/strong&gt; los datos se representan como una tabla, pero se manipulan mediante cálculos de predicados. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;El modelo de orientación a objetos (ODBMS, object-oriented database management system [sistema de administración de bases de datos orientadas a objetos]):&lt;/strong&gt; los datos se almacenan como objetos, que son estructuras denominadas clases que muestran los datos que contienen. Los campos son instancias de estas clases.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Un dato Importante :&lt;/strong&gt; A fines de la década de 1990, las bases de datos relacionales eran las más utilizadas (comprendían aproximadamente tres cuartos de todas las bases de datos).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-7476696727891776651?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/7476696727891776651/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=7476696727891776651' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7476696727891776651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7476696727891776651'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/modelos-de-base-de-datos.html' title='Modelos de Base de Datos'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qqGefALtuG0/SMsqG58bJ2I/AAAAAAAAAFw/A0Lo-D6aeSc/s72-c/BD.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-2829653313970381169</id><published>2008-09-12T19:35:00.000-07:00</published><updated>2008-09-12T20:02:39.416-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Base de Datos'/><title type='text'>Comenzando con Base de Datos</title><content type='html'>&lt;a href="http://4.bp.blogspot.com/_qqGefALtuG0/SMsqG58bJ2I/AAAAAAAAAFw/A0Lo-D6aeSc/s1600-h/BD.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://4.bp.blogspot.com/_qqGefALtuG0/SMsqG58bJ2I/AAAAAAAAAFw/A0Lo-D6aeSc/s320/BD.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5245332489124915042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente. &lt;br /&gt;&lt;br /&gt;El término de bases de datos fue escuchado por primera vez en 1963, en un simposio celebrado en California, USA. Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. &lt;br /&gt;&lt;br /&gt;Desde el punto de vista informático, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos.&lt;br /&gt;&lt;br /&gt;Cada base de datos se compone de una o más tablas que guarda un conjunto de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Definición de base de datos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Se define una base de datos como una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los sistemas de información de una empresa o negocio en particular.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Características&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Entre las principales características de los sistemas de base de datos podemos mencionar:&lt;br /&gt;&lt;br /&gt;Independencia lógica y física de los datos. &lt;br /&gt;Redundancia mínima. &lt;br /&gt;Acceso concurrente por parte de múltiples usuarios. &lt;br /&gt;Integridad de los datos. &lt;br /&gt;Consultas complejas optimizadas. &lt;br /&gt;Seguridad de acceso y auditoria. &lt;br /&gt;Respaldo y recuperación. &lt;br /&gt;Acceso a través de lenguajes de programación estándar. &lt;br /&gt;Sistema de Gestión de Base de Datos (SGBD)&lt;br /&gt;Los Sistemas de Gestión de Base de Datos (en inglés DataBase Management System) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ventajas de las bases de datos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Control sobre la redundancia de datos:&lt;/em&gt;&lt;br /&gt;Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. Esto hace que se desperdicie espacio de almacenamiento, además de provocar la falta de consistencia de datos. &lt;br /&gt;&lt;br /&gt;En los sistemas de bases de datos todos estos ficheros están integrados, por lo que no se almacenan varias copias de los mismos datos. Sin embargo, en una base de datos no se puede eliminar la redundancia completamente, ya que en ocasiones es necesaria para modelar las relaciones entre los datos.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Consistencia de datos:&lt;/em&gt;&lt;br /&gt;Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato está almacenado una sola vez, cualquier actualización se debe realizar sólo una vez, y está disponible para todos los usuarios inmediatamente. Si un dato está duplicado y el sistema conoce esta redundancia, el propio sistema puede encargarse de garantizar que todas las copias se mantienen consistentes. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Compartición de datos:&lt;/em&gt;&lt;br /&gt;En los sistemas de ficheros, los ficheros pertenecen a las personas o a los departamentos que los utilizan. Pero en los sistemas de bases de datos, la base de datos pertenece a la empresa y puede ser compartida por todos los usuarios que estén autorizados. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Mantenimiento de estándares:&lt;/em&gt;&lt;br /&gt;Gracias a la integración es más fácil respetar los estándares necesarios, tanto los establecidos a nivel de la empresa como los nacionales e internacionales. Estos estándares pueden establecerse sobre el formato de los datos para facilitar su intercambio, pueden ser estándares de documentación, procedimientos de actualización y también reglas de acceso.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Mejora en la integridad de datos:&lt;/em&gt;&lt;br /&gt;La integridad de la base de datos se refiere a la validez y la consistencia de los datos almacenados. Normalmente, la integridad se expresa mediante restricciones o reglas que no se pueden violar. Estas restricciones se pueden aplicar tanto a los datos, como a sus relaciones, y es el SGBD quien se debe encargar de mantenerlas. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Mejora en la seguridad:&lt;/em&gt;&lt;br /&gt;La seguridad de la base de datos es la protección de la base de datos frente a usuarios no autorizados. Sin unas buenas medidas de seguridad, la integración de datos en los sistemas de bases de datos hace que éstos sean más vulnerables que en los sistemas de ficheros. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Mejora en la accesibilidad a los datos:&lt;/em&gt;&lt;br /&gt;Muchos SGBD proporcionan lenguajes de consultas o generadores de informes que permiten al usuario hacer cualquier tipo de consulta sobre los datos, sin que sea necesario que un programador escriba una aplicación que realice tal tarea. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Mejora en la productividad:&lt;/em&gt;&lt;br /&gt;El SGBD proporciona muchas de las funciones estándar que el programador necesita escribir en un sistema de ficheros. A nivel básico, el SGBD proporciona todas las rutinas de manejo de ficheros típicas de los programas de aplicación. &lt;br /&gt;&lt;br /&gt;El hecho de disponer de estas funciones permite al programador centrarse mejor en la función específica requerida por los usuarios, sin tener que preocuparse de los detalles de implementación de bajo nivel. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Mejora en el mantenimiento:&lt;/em&gt;&lt;br /&gt;En los sistemas de ficheros, las descripciones de los datos se encuentran inmersas en los programas de aplicación que los manejan. &lt;br /&gt;&lt;br /&gt;Esto hace que los programas sean dependientes de los datos, de modo que un cambio en su estructura, o un cambio en el modo en que se almacena en disco, requiere cambios importantes en los programas cuyos datos se ven afectados. &lt;br /&gt;&lt;br /&gt;Sin embargo, los SGBD separan las descripciones de los datos de las aplicaciones. Esto es lo que se conoce como independencia de datos, gracias a la cual se simplifica el mantenimiento de las aplicaciones que acceden a la base de datos. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Aumento de la concurrencia:&lt;/em&gt;&lt;br /&gt;En algunos sistemas de ficheros, si hay varios usuarios que pueden acceder simultáneamente a un mismo fichero, es posible que el acceso interfiera entre ellos de modo que se pierda información o se pierda la integridad. La mayoría de los SGBD gestionan el acceso concurrente a la base de datos y garantizan que no ocurran problemas de este tipo.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Mejora en los servicios de copias de seguridad:&lt;/em&gt;&lt;br /&gt;Muchos sistemas de ficheros dejan que sea el usuario quien proporcione las medidas necesarias para proteger los datos ante fallos en el sistema o en las aplicaciones. Los usuarios tienen que hacer copias de seguridad cada día, y si se produce algún fallo, utilizar estas copias para restaurarlos. &lt;br /&gt;&lt;br /&gt;En este caso, todo el trabajo realizado sobre los datos desde que se hizo la última copia de seguridad se pierde y se tiene que volver a realizar. Sin embargo, los SGBD actuales funcionan de modo que se minimiza la cantidad de trabajo perdido cuando se produce un fallo.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Desventajas de las bases de datos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Complejidad: &lt;/em&gt;&lt;br /&gt;Los SGBD son conjuntos de programas que pueden llegar a ser complejos con una gran funcionalidad. Es preciso comprender muy bien esta funcionalidad para poder realizar un buen uso de ellos.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Coste del equipamiento adicional:&lt;/em&gt;&lt;br /&gt;Tanto el SGBD, como la propia base de datos, pueden hacer que sea necesario adquirir más espacio de almacenamiento. Además, para alcanzar las prestaciones deseadas, es posible que sea necesario adquirir una máquina más grande o una máquina que se dedique solamente al SGBD. Todo esto hará que la implantación de un sistema de bases de datos sea más cara.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Vulnerable a los fallos:&lt;/em&gt;&lt;br /&gt;El hecho de que todo esté centralizado en el SGBD hace que el sistema sea más vulnerable ante los fallos que puedan producirse. Es por ello que deben tenerse copias de seguridad (Backup).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;Tipos de Campos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Cada Sistema de Base de Datos posee tipos de campos que pueden ser similares o diferentes. Entre los más comunes podemos nombrar:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Numérico:&lt;/em&gt; entre los diferentes tipos de campos numéricos podemos encontrar enteros “sin decimales” y reales “decimales”. &lt;br /&gt;Booleanos: poseen dos estados: Verdadero “Si” y Falso “No”. &lt;br /&gt;&lt;em&gt;Memos:&lt;/em&gt; son campos alfanuméricos de longitud ilimitada. Presentan el inconveniente de no poder ser indexados. &lt;br /&gt;&lt;em&gt;Fechas:&lt;/em&gt; almacenan fechas facilitando posteriormente su explotación. Almacenar fechas de esta forma posibilita ordenar los registros por fechas o calcular los días entre una fecha y otra. &lt;br /&gt;&lt;em&gt;Alfanuméricos:&lt;/em&gt; contienen cifras y letras. Presentan una longitud limitada (255 caracteres). &lt;br /&gt;&lt;em&gt;Autoincrementables:&lt;/em&gt; son campos numéricos enteros que incrementan en una unidad su valor para cada registro incorporado. Su utilidad resulta: Servir de identificador ya que resultan exclusivos de un registro. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Tipos de Base de Datos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Entre los diferentes tipos de base de datos, podemos encontrar los siguientes:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;MySql:&lt;/em&gt; es una base de datos con licencia GPL basada en un servidor. Se caracteriza por su rapidez. No es recomendable usar para grandes volúmenes de datos. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;PostgreSql y Oracle:&lt;/em&gt; Son sistemas de base de datos poderosos. Administra muy bien grandes cantidades de datos, y suelen ser utilizadas en intranets y sistemas de gran calibre. &lt;br /&gt;Access: Es una base de datos desarrollada por Microsoft. Esta base de datos, debe ser creada bajo el programa access, el cual crea un archivo .mdb con la estructura ya explicada. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Microsoft SQL Server:&lt;/em&gt; es una base de datos más potente que access desarrollada por Microsoft. Se utiliza para manejar grandes volúmenes de informaciones.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-2829653313970381169?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/2829653313970381169/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=2829653313970381169' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2829653313970381169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2829653313970381169'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/comenzando-con-base-de-datos.html' title='Comenzando con Base de Datos'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qqGefALtuG0/SMsqG58bJ2I/AAAAAAAAAFw/A0Lo-D6aeSc/s72-c/BD.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-6417719252911589130</id><published>2008-09-12T12:46:00.000-07:00</published><updated>2008-09-13T16:12:04.844-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Las Funciones en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Las funciones son casi exactamente iguales que los procedimientos con respecto a la forma en que se los llama y se los crea o declara en el código, en como se le pasa los parámetros etc.. &lt;br /&gt;&lt;br /&gt;La diferencia fundamental con respecto a los procedimientos o subrutinas es que estos, luego de ejecutar el código que tengan en su interior, al final retornan un valor, y este valor luego lo podemos utilizar para una determinada tarea. En cambio los procedimientos, solo ejecutan el código que contienen y luego mueren por decirlo de alguna manera.&lt;br /&gt;&lt;br /&gt;Para declarar o crear una función podríamos escribir lo siguiente:&lt;br /&gt;&lt;br /&gt;Private Function Total(Valor1 As Integer, Valor2 As Integer) As Long&lt;br /&gt;&lt;br /&gt;Total = Valor1 + Valor2&lt;br /&gt;&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;Seguramente notaste que declaramos la función llamada Total, y al final de los parámetros dice As Long , esto es por que como dijimos las funciones retornan o devuelven un valor, o sea que en este caso la función es de tipo Long, o mejor dicho devolverá un valor de tipo Long., y luego ese valor devuelto lo podemos utilizar en otra parte del programa.&lt;br /&gt;&lt;br /&gt;Las Funciones pueden retornar casi cualquier tipo de datos, como números, cadenas, fechas, arreglos y vectores&lt;br /&gt;&lt;br /&gt;Para llamar a la función anterior podríamos hacerlo de la siguiente manera:&lt;br /&gt;&lt;br /&gt;Label1.caption = Total 502, 1478&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;En este caso el control Label1 llamaría a la función Total , la función realizaría la suma de los valores pasados como parámetros y por último el valor final de la suma se lo asignaría al control label1.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-6417719252911589130?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/6417719252911589130/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=6417719252911589130' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6417719252911589130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6417719252911589130'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/las-funciones-en-visual-basic-60_12.html' title='Las Funciones en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8535512082484151310</id><published>2008-09-12T12:45:00.000-07:00</published><updated>2008-09-13T16:11:41.218-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Pasar parámetros por valor (ByVal) y por referencia (ByRef ) en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;los parámetros en las funciones y procedimientos, se pueden enviar de dos maneras: por Valor y por Referencia.&lt;br /&gt;&lt;br /&gt;Si están declarados como ByVal, los mismos serán por valor, si se declaran como ByRef serán por referencia.&lt;br /&gt;&lt;br /&gt;La diferencia entre uno y otro método de paso de parámetros, es que en ByVal se envía una copia de la variable, y de esta manera si se efectúa un cambio en el procedimiento, solo tendrá efecto dentro del procedimiento o función, una ves que termine y finalice el mismo, la variable original pasará a valer el dato que tenía, es decir no se modifica&lt;br /&gt;&lt;br /&gt;En los parámetros enviados por Referencia, lo que se hace es enviar un puntero de la variable original. Entonces, si en la función o procedimiento se cambia el valor de la variable, el cambio seguirá manteniéndose una ves que finalice la ejecución del procedimiento o función.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Ejemplo de envío de parámetros por Valor ( ByVal )&lt;/strong&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Código de ejemplo&lt;br /&gt;&lt;br /&gt;Private Sub Command1_Click()&lt;br /&gt;&lt;br /&gt;Dim Un_Valor As Long&lt;br /&gt;&lt;br /&gt;Un_Valor = 100&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'Se envía la variable por Valor ( ByVal )&lt;br /&gt;&lt;br /&gt;Call Sumar(Un_Valor)&lt;br /&gt;&lt;br /&gt;'Muestra el valor que es 100, ( no se modificó en la función Sumar )&lt;br /&gt;MsgBox Un_Valor&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Sub Sumar(ByVal Valor As Long)&lt;br /&gt;'Modifica la variable&lt;br /&gt;Valor = Valor + 100&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;En el ejemplo anterior hay una Sub llamada Sumar que recibe como parámetro una variable enviada por valor con ByVal ( es decir es una copia de la variable original ). al presionar el Commmand1. &lt;br /&gt;&lt;br /&gt;Al entrar en la Sub Sumar, el dato se modifica ( Valor = Valor + 100). Cuando finaliza el procedimiento Sumar y retorna a la línea siguiente de la llamada a la Sub sumar, muestra mediante un MsgBox el valor de la misma, en este caso es 100, y NO 200 que es el cambio que tuvo dentro del procedimiento Sumar ( Valor = Valor + 100 ). &lt;br /&gt;&lt;br /&gt;Con esto queda visto que en realidad al enviarla como ByVal, se envía una copia de la variable original y cualquier cambio que se produzca, será solo en el ámbito del procedimiento o función&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;strong&gt;Ejemplo de envío de parámetros por Referencia ( ByRef )&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Este ejemplo es igual que el anterior, pero en la Sub sumar , la variable Valor se declara con ByRef ( por Referencia )&lt;br /&gt;&lt;br /&gt;Código&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub Command1_Click()&lt;br /&gt;&lt;br /&gt;Dim Un_Valor As Long&lt;br /&gt;&lt;br /&gt;Un_Valor = 100&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'Se envía la variable por Referencia ( ByRef ) con el valor 100&lt;br /&gt;&lt;br /&gt;Call Sumar(Un_Valor)&lt;br /&gt;&lt;br /&gt;'Muestra el valor que ahora es 200, ( ya que se modificó en la Sub Sumar)&lt;br /&gt;MsgBox Un_Valor&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Sub Sumar(ByRef Valor As Long)&lt;br /&gt;'Modifica la variable&lt;br /&gt;Valor = Valor + 100&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Al probar el código, ahora el Msgox al mostrar el valor de la variable, es de 200, y NO de 100 como en el ejemplo de ByVal. &lt;br /&gt;&lt;br /&gt;Esto demuestra que al enviar la variable como referencia, si la misma se modifica dentro del procedimiento o función, se está modificando la variable REAL, es decir cualquier cambio que se le haga a la misma, se mantendrá, ya que se está modificando la variable Real ( no es una copia )&lt;br /&gt;&lt;br /&gt;Nota Importante: cuando no se indica a un parámetro de una función o Rutina ni ByVal, ni ByRef, se asume que la misma se está enviando como referencia (ByRef).&lt;br /&gt;&lt;br /&gt;Es decir lo siguiente recibe el parámetro como Referencia&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Sub Sumar(Valor As Long)&lt;br /&gt;.. que es lo mismo a esto:&lt;br /&gt;&lt;br /&gt;Sub Sumar(ByRef Valor As Long)&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8535512082484151310?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8535512082484151310/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8535512082484151310' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8535512082484151310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8535512082484151310'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/pasar-parmetros-por-valor-byval-y-por_12.html' title='Pasar parámetros por valor (ByVal) y por referencia (ByRef ) en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-752465880617152040</id><published>2008-09-12T12:43:00.000-07:00</published><updated>2008-09-13T16:11:00.719-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Función isMissing en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Esta función se utiliza cuando utilizamos parámetros opcionales en una función o procedimiento, y nosotros, dentro del mismo queremos saber y averiguar si se han enviado los parámetros opcionales &lt;br /&gt;&lt;br /&gt;El uso de IsMissing muy simple. Esta función retorna el valor True si NO se ha enviado el parámetro que queremos comprobar, y devuelve False si el parámetro ha sido enviado: &lt;br /&gt;&lt;br /&gt;por ejemplo , colocar dos CommandButton&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub Mostrar_Dato(Optional Nombre As Variant)&lt;br /&gt;    &lt;br /&gt;    ' Si IsMissing devuelve Verdadero, es por que no se envíó&lt;br /&gt;    If IsMissing(Nombre) = True Then&lt;br /&gt;        MsgBox " NO Se ha enviado el parámetro NOMBRE ", vbInformation&lt;br /&gt;    Else&lt;br /&gt;        MsgBox " Se ha enviado el parámetro NOMBRE ", vbInformation&lt;br /&gt;    End If&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;'Acá No se envía el parámetro&lt;br /&gt;Private Sub Command1_Click()&lt;br /&gt;    Mostrar_Dato&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;'Acá Si se envía el parámetro&lt;br /&gt;&lt;br /&gt;Private Sub Command2_Click()&lt;br /&gt;    Mostrar_Dato "María"&lt;br /&gt;End Sub&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-752465880617152040?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/752465880617152040/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=752465880617152040' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/752465880617152040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/752465880617152040'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/funcin-ismissing-en-visual-basic-60_12.html' title='Función isMissing en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8096700870738603430</id><published>2008-09-12T12:40:00.000-07:00</published><updated>2008-09-13T16:10:36.616-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Pasar Parámetros a los procedimientos en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Se utilizan los parámetros en los procedimientos para que el procedimiento no ejecute siempre las mismas líneas de código y pueda variar, teniendo la posibilidad de hacerlo mas dinámicamente. En ciertas ocaciones no es necesario enviar parámetros, pero en otras es prácticamente fundamental. Los parámetros son datos, casi de cualquier tipo, que se pasan seguido del nombre del procedimiento, y si es mas de uno deben ir separados por comas (,). Ejemplo:&lt;br /&gt;&lt;br /&gt;DatosPersonales "Luciano", 25, "La plata"&lt;br /&gt;&lt;br /&gt;En este ejemplo pasamos tres parámetros: El primero es un nombre y es un dato de tipo String y por ende debe ir entre comillas. El segundo es un número y el tercero también un string. , o sea una cadena de caracteres&lt;br /&gt;&lt;br /&gt;Pero la cosa no queda acá. Si nosotros vamos a pasar parámetros a un procedimiento, cuando creamos el procedimiento debemos establecer que tipo de parámetros va a recibir el mismo. Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub DatosPersonales(nombre As String, edad As Integer, ciudad As String)&lt;br /&gt;&lt;br /&gt;Label1 = nombre&lt;br /&gt;Label2 = edad&lt;br /&gt;Label3 = ciudad&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;siguiendo, el ejemplo anterior creamos un procedimiento con tres parámetros. Cada parámetro se declara como se hace con las variables, o sea que debemos darles un nombre a la variable y definir el tipo de dato ( sin utilizar la palabra Dim ) que recibirá cuando las llamemos. &lt;br /&gt;&lt;br /&gt;Ahora podríamos por ejemplo, en el evento click de un Command1, llamar al procedimiento y pasarle los parámetros. &lt;br /&gt;&lt;br /&gt;Coloca un Command1 , 3 controles Label, copia en la ventana de código el procedimiento anterior llamado DatosPersonales, y ahora pega el siguiente código&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private sub command1_click()&lt;br /&gt;&lt;br /&gt;DatosPersonales "Luciano", 25, "La plata"&lt;br /&gt;&lt;br /&gt;End sub&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Al presionar el botón se llamará al procedimiento que habíamos creado anteriormente, y le pasará los valores de los parámetros en el orden en que estén establecidos declarados en el procedimiento. Esto quiere decir que el primer parámetro con el valor "Luciano" se almacenará o asignará a la variable nombre , el valor 25 se le asignará a la variable edad y el último valor a la variable ciudad. &lt;br /&gt;&lt;br /&gt;Después que las variables ya cargaron el valor las podemos utilizar dentro del procedimiento, como en el ejemplo anterior que le asignamos a un control Label1 el contenido de la variable nombre, al Label2 el contenido de edad y al Label3 el contenido de la variable ciudad.&lt;br /&gt;&lt;br /&gt;Es muy importante respetar el orden en que pasamos los parámetros en un procedimiento, por que por ejemplo en el caso anterior si hubiésemos pasado los parámetros de esta forma: &lt;br /&gt;&lt;br /&gt;DatosPersonales 25, "Luciano", "La plata"&lt;br /&gt;&lt;br /&gt;el segundo parámetro "Luciano" se almacenaría en la variable Edad que es de tipo Integer y se produciría un error en tiempo de ejecución por no coincidir los tipos de datos, ya que la variable espera un valor numérico de tipo Integer y nosotros le estamos pasando una cadena de caracteres, un dato de tipo String&lt;br /&gt;&lt;br /&gt;Otra cosa importante es que cuando creamos, por ejemplo un procedimiento que va a recibir 2 parámetros, cuando lo llamemos, no podemos enviarle solo 1 parámetro, debemos obligatoriamente pasarle los 2 parámetros que hubiésemos declarado en el mismo. Un ejemplo que daría un error en tiempo de ejecución por no pasar adecuadamente los parámetros sería:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub sumar(a As Integer, b As Integer)&lt;br /&gt;&lt;br /&gt;Label1 = a + b&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;hasta aquí creamos un procedimiento llamado sumar que recibirá 2 parámetros de tipo Integer, si nosotros llamamos al procedimiento y le pasamos un solo valor, por ejemplo: &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Call sumar ( 456 )&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Esto daría un error de compilación por que el procedimiento espera recibir 2 parámetros ..y nosotros le estamos pasando o enviando solo uno de ellos. &lt;br /&gt;&lt;br /&gt;Precisamente el cartel de error que te mostraría visual basic sería el siguiente:&lt;br /&gt;&lt;br /&gt;Nota: hay una sentencia llamada Optional que SI permite pasar parámetros de forma opcional, por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub Con_Parametro_Opcional(Nombre As String, _&lt;br /&gt;                                   Optional Email As String)&lt;br /&gt;MsgBox Nombre&lt;br /&gt;&lt;br /&gt;MsgBox Email&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;Ahora si llamas a la rutina anterior, y omites el parámetro Email, esta no dará error, por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Call Con_Parametro_Opcional("Maria")&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Nota: Los parámetros opcionales, si o si deben estar declarados al final de la lista de parámetros, por ejemplo esto no se puede hacer:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private sub una_Rutina ( Optional Email As String, Nombre as String )&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8096700870738603430?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8096700870738603430/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8096700870738603430' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8096700870738603430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8096700870738603430'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/pasar-parmetros-los-procedimientos-en_12.html' title='Pasar Parámetros a los procedimientos en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-9212576533835338999</id><published>2008-09-12T12:35:00.001-07:00</published><updated>2008-09-13T16:08:57.359-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Subrutinas y Procedimientos propios en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5245646788156088098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;También podemos crear nuestros propios Procedimientos y Subrutinas de código para ejecutar una determinada tarea.&lt;br /&gt;&lt;br /&gt;Para crear un procedimiento de código se debe escribir la palabra Private sub o Public sub (depende el alcance), seguida del nombre del procedimiento (un nombre que queramos) y los parámetros, si es que le enviaremos parámetros (los parámetros son opcionales). Además el procedimiento debe ser escrito en un lugar vacío de la ventana de código, es decir nno se puede crear un procedimiento dentro de otro&lt;br /&gt;&lt;br /&gt;Un ejemplo para crear un procedimiento:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub ProcedimientoBorrar()&lt;br /&gt;&lt;br /&gt;label1 = ""&lt;br /&gt;label2 = ""&lt;br /&gt;label3 = ""&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;En este ejemplo creamos un procedimiento muy simple que tendrá la función específica de borrar el contenido de 3 controles label.&lt;br /&gt;&lt;br /&gt;¿ Pero ahora te preguntarás como hago para que se ejecute el procedimiento que he creado ?.&lt;br /&gt;&lt;br /&gt;Muy fácil. Solo debemos escribir el nombre del procedimiento en el lugar donde queremos que se ejecute. Por ejemplo supongamos que tenemos un formulario con 3 controles Label (Label1, Label2 y Label3), También un Commandbutton llamado Command1 y en la ventana de código hemos escrito el procedimiento del ejemplo anterior. Si nosotros queremos llamar al procedimiento, que borrará el contenido de los label cuando hagamos click en el Command1 lo haríamos así:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub command1_click()&lt;br /&gt;&lt;br /&gt;ProcedimientoBorrar&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Al presionar el Command1 visual basic detectaría el nombre ProcedimientoBorrar, y automáticamente saltaría al lugar donde creamos el procedimiento y ejecutaría las líneas de código que haya en ese procedimiento. &lt;br /&gt;&lt;br /&gt;También podemos llamar a un procedimiento utilizando la palabra Call, que quiere decir llamar, seguida del nombre del procedimiento, pero en este caso si utilizamos call y nuestro procedimiento contiene parámetros, debemos pasarlos entre paréntesis ( los parámetros de procedimientos y funciones se explican a continuación)&lt;br /&gt;&lt;br /&gt;una vez que se ha terminado de ejecutar las instrucciones que estén dentro del bloque del procedimiento, volvería a la línea siguiente de donde fue llamado el mismo, y ejecutaría todas las líneas restantes de código. En este caso no ejecutaría nada mas por que no hemos puesto ninguna otra instrucción debajo de ProcedimientoBorrar.&lt;br /&gt;&lt;br /&gt;La principal ventaja de crear procedimientos de código es que evita tener que escribir varias veces las mismas instrucciones en un programa, el código se hace mucho mas funcional y entendible, se pueden dividir un problema (una rutina), en varios procedimientos y probarlos independientemente, y además la posibilidad de enviar parámetros a los procedimientos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-9212576533835338999?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/9212576533835338999/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=9212576533835338999' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/9212576533835338999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/9212576533835338999'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/subrutinas-y-procedimientos-propios-en_12.html' title='Subrutinas y Procedimientos propios en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SMxH9hE2XyI/AAAAAAAAAGQ/AGfIODoV0i8/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-5330845247610651798</id><published>2008-09-08T16:47:00.000-07:00</published><updated>2008-09-08T17:02:40.916-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Varios'/><title type='text'>Chevrolet Camaro 2010</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_qqGefALtuG0/SMW7VaJBBdI/AAAAAAAAAFc/wm7xd9jiPAE/s1600-h/Camaro2010.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_qqGefALtuG0/SMW7VaJBBdI/AAAAAAAAAFc/wm7xd9jiPAE/s320/Camaro2010.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5243803317611595218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_qqGefALtuG0/SMW6-w4jhNI/AAAAAAAAAFU/Wrj0ypTfUHQ/s1600-h/Chevrolet-Camaro-DC.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://2.bp.blogspot.com/_qqGefALtuG0/SMW6-w4jhNI/AAAAAAAAAFU/Wrj0ypTfUHQ/s320/Chevrolet-Camaro-DC.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5243802928579577042" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Dejando a un lado solo un poquito la programacion, Solo para fortalecer las pupilas y dejando en claro que solo las pupilas por que esta nueva versión de este cochesito lo tendremos hasta el 2010, les presento el Camaro 2010. La producción de la nueva generación de este deportivo americano comenzará a finales del presente año, mientras que su comercialización en Estados Unidos iniciará a principios del 2009, y es probable que poco tiempo después arribe también a las agencias mexicanas de la marca.&lt;br /&gt;&lt;br /&gt;En un principio estará disponible en carrocería coupé y en tres versiones distintas de equipamientos: LS, LT y la más rabiosa y potente representada por el Camaro SS.&lt;br /&gt;&lt;br /&gt;Como se puede apreciar en las fotos, el estilo de este nuevo Muscle Car se mantiene fiel a las poderosas y seductoras formas del prototipo que develó General Motors en el Salón del Automóvil de Detroit del 2006, una moderna interpretación del modelo SS de 1969.&lt;br /&gt;&lt;br /&gt;Sus afiladas y musculosas formas, en adición a nuevos elementos de estilo vanguardista y de fuerte contraste, como por ejemplo su agresiva parrilla, los atractivos faros, las cortas y musculosas salpicaderas; así como el cofre y la defensa en forma de la punta de una flecha, entre otros, le imprimen una belleza indómita que despierta admiración y respeto a su paso.&lt;br /&gt;&lt;br /&gt;aqui les dejo el enlace de la fuente principal: &lt;a href="http://www.visionautomotriz.com.mx/index.php?option=com_content&amp;task=view&amp;id=1408&amp;Itemid=18 " target="_blank"&gt;VisionAutomotriz&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-5330845247610651798?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/5330845247610651798/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=5330845247610651798' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5330845247610651798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5330845247610651798'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/chevrolet-camaro-2010.html' title='Chevrolet Camaro 2010'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_qqGefALtuG0/SMW7VaJBBdI/AAAAAAAAAFc/wm7xd9jiPAE/s72-c/Camaro2010.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8120776234776184615</id><published>2008-09-08T12:50:00.000-07:00</published><updated>2008-09-08T16:44:43.389-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Subrutinas de Codigos en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5235899258831439298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Se denomina subrutina a una porción de código que tiene como principal función ejecutar una determinada tarea. Estas tienen un nombre para poder identificarlas y luego poder llamarlas para poder utilizarlas. &lt;br /&gt;&lt;br /&gt;Las subrutinas tienen un principio y un fin y estas pueden tener distinto tipo de alcance, o sea pueden ser de tipo privadas o públicas.&lt;br /&gt;&lt;br /&gt;En el siguiente ejemplo se muestra una subrutina que crea visual basic automáticamente cuando en un formulario insertamos un botón llamado Command1 y desde la ventana de eventos seleccionamos el evento click del mismo&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub Command1_Click()&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Ahora, si colocamos por ejemplo un control TextBox llamado TextPedidos y hacemos doble click sobre el mismo, se crea el procedimiento por defecto para los TextBox, que es el evento Change&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub TextPedidos_Change()&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;En estos 2 últimos ejemplos tenemos una subrutina o procedimiento de tipo Privado, esto quiere decir que la podemos utilizar solo en el formulario o módulo donde está declarada o escrita&lt;br /&gt;&lt;br /&gt;La palabra sub le sigue el nombre de la rutina que la identifica. En este caso Command1_click() y en el otro ejemplo TxtPedidos_Change().&lt;br /&gt;&lt;br /&gt;Si quisiéramos que estos procedimientos se puedan llamar desde otro formulario, lo que tendríamos que hacer es cambiar el alcance del procedimiento, en ves de Private Sub cambiarlo por Public Sub. si hacemos esto, ese procedimiento de código puede ser utilizado desde cualquier parte del proyecto.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8120776234776184615?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8120776234776184615/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8120776234776184615' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8120776234776184615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8120776234776184615'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/subrutinas-de-codigos-en-visual-basic.html' title='Subrutinas de Codigos en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-7589043553298941223</id><published>2008-09-08T12:47:00.000-07:00</published><updated>2008-09-08T16:44:01.506-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Operadores en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5235899258831439298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Los operadores nos permiten operar, validar, comparar, asignar, distinguir, etc.., los datos e instrucciones de código de nuestros programas. A continuación los operadores mas importantes.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Operadores aritméticos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Estos operadores nos permiten trabajar con cálculos matemáticos como la suma (+), resta (-), división (/) y multiplicación (*). &lt;br /&gt;&lt;br /&gt;Ejemplos:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;a = 5&lt;br /&gt;b = 15&lt;br /&gt;c = a + b ' en este caso la variable c contendría el valor 20 &lt;br /&gt;ganancia = 500&lt;br /&gt;perdida = 200&lt;br /&gt;total = ganancia - perdida 'la variable total pasaría a valer 300&lt;br /&gt;x = 100&lt;br /&gt;y = 20&lt;br /&gt;&lt;br /&gt;z = x / y ' La Variable z vale 5&lt;br /&gt;&lt;br /&gt;x = 100&lt;br /&gt;y = 20&lt;br /&gt;&lt;br /&gt;z = x * y ' La Variable z vale 2000&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Operadores lógicos&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Se utilizan en expresiones para devolver resultados del tipo True o False, es decir Verdadero o falso. Los mas comunes son el operador And y el operador Or &lt;br /&gt;&lt;br /&gt;Ejemplos: &lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;&lt;em&gt;If (x = 10) And (nombre = "maría") Then&lt;br /&gt;&lt;br /&gt;'solo se ejecutará el código dentro de este bloque IF si la variable&lt;br /&gt;'x vale 10 y la variable nombre es igual a maría&lt;br /&gt;&lt;br /&gt;End If&lt;br /&gt;If (m = 10) Or (nombre = "pedro") Then&lt;br /&gt;&lt;br /&gt;'el código se ejecutará si por lo menos una variable es correcta&lt;br /&gt;'es decir si por lo menos se cumple una condición&lt;br /&gt;&lt;br /&gt;End If&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Operadores de comparación&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Los operadores de comparación se utilizan para comparar expresiones de cualquier tipo. Los mas importantes son: El operador de igualdad (=), menor que (&lt;), mayor que (&gt;), distinto a(&lt;&gt;) &lt;br /&gt;&lt;br /&gt;Ejemplos:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;If label1.Caption = "06/08/1978" Then&lt;br /&gt;&lt;br /&gt;'si el control label1 en su caption contiene esa fecha&lt;br /&gt;'se ejecutará el código que este aquí&lt;br /&gt;&lt;br /&gt;End If &lt;br /&gt;if x &gt; 6 then&lt;br /&gt;'si la variable x es mayor que 6 se ejecutará el código que este aquí&lt;br /&gt;end if&lt;br /&gt;If país &lt;&gt; "Estados unidos" Then&lt;br /&gt;'si la variable país es distinta a "Estados unidos" se ejecutará el código&lt;br /&gt;End If&lt;br /&gt;While c &lt;= 87&lt;br /&gt;&lt;br /&gt;'mientras la variable c sea menor o igual a 87 se ejecutará&lt;br /&gt;'el bucle While&lt;br /&gt;&lt;br /&gt;Wend&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Por último quedaría por ver el operador de &lt;strong&gt;concatenación&lt;/strong&gt; &lt;strong&gt;(&amp;)&lt;/strong&gt; que se utiliza para unir cadenas de caracteres. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Por ejemplo:&lt;br /&gt;&lt;br /&gt;nombre = "Jose"&lt;br /&gt;apellido = "Peralta"&lt;br /&gt;&lt;br /&gt;nombrecompleto = nombre &amp; apellido&lt;br /&gt;&lt;br /&gt;'La variable nombrecompleto pasaría a contener la unión de las otras dos variables&lt;br /&gt;'es decir Jose Peralta&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;NOTA: Al igual que los tipos de datos hay mas operadores en Visual Basic 6.0, pero estos son los mas basico y que se utilizaran constantemente.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-7589043553298941223?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/7589043553298941223/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=7589043553298941223' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7589043553298941223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/7589043553298941223'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/operadores-en-visual-basic-60.html' title='Operadores en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-5609800818315468259</id><published>2008-09-08T12:41:00.000-07:00</published><updated>2008-09-08T16:43:12.285-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Estructuras de control en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5235899258831439298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Las estructuras de control se utilizan para controlar el flujo del programa en una rutina o función. Mediante ellas podemos controlar, mediante una condición, que se ejecute una determinada línea o bloque de líneas de código .. o que no se ejecuten.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Estructura If - Then - Else&lt;br /&gt;&lt;br /&gt;Esta estructura permite mediante una condición, que se ejecute o no se ejecute determinada tarea o línea de código.&lt;br /&gt;&lt;br /&gt;Por ejemplo supongamos que tenemos en un formulario un control Label con la propiedad Caption con el valor 50&lt;br /&gt;&lt;br /&gt;&lt;em&gt;If Label1.Caption = "X" Then&lt;br /&gt;msgbox "mi label tiene un valor de X"&lt;br /&gt;else&lt;br /&gt;msgbox "mi label NO tiene un valor de X"&lt;br /&gt;end if&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Esto traducido al español significaría lo siguiente:&lt;br /&gt;&lt;br /&gt;Si (If) la propiedad caption del label1 que tengo en el formulario es igual (=) a "X" entonces (Then) que muestre un determinado mensaje, si no (Else) que muestre el otro mensaje.&lt;br /&gt;&lt;br /&gt;En conclusión lo que hace esta estructura es evaluar una condición, si se cumple, que se ejecute determinada tarea. si no se cumple, se ejecutará las líneas de código que estén bajo la cláusula Else. Luego tenemos que cerrar la estructura con la palabra end if.&lt;br /&gt;&lt;br /&gt;Tenemos que aclarar que no es obligatorio usar If y else juntos en la misma cláusula. Por ejemplo podríamos utilizar solo una estructura If sin else. Por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub Command1_Click()&lt;br /&gt;'Si la propiedad caption del Label1 es "Hola" entonces se termina el programa&lt;br /&gt;If Label1.Caption = "Hola" Then&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;   End&lt;br /&gt;&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;'Si no, se prosigue con esta línea&lt;br /&gt;&lt;br /&gt;MsgBox "No se ejecutó el bloque If Anterior porque el Caption del control Label1 no era Hola"&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Coloca un Label1 y un Command1. En la propiedad caption del Label1 escribe "Hola". Al ejecutar el programa y presionar el Command1, se termina el programa con la sentencia End de Visual Basic (End sirve para finalizar completamente la ejecución de nuestro programa). En cambio si ahora le cambia el caption al Label1 y volvés a ejecutar el proyecto, podés ver que la instrucción End no se ejecuta, si no que la pasa por alto y sigue con las restantes líneas, en este caso ejecuta la función MsgBox con el mensaje.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Estructura While - Wend&lt;br /&gt;&lt;br /&gt;Esta estructura de control repetirá sin detenerse un determinado código mientras se cumpla una condición.&lt;br /&gt;&lt;br /&gt;Por ejemplo supongamos que tenemos una variable llamada x que tiene un valor de 100.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;while x = 100&lt;br /&gt;...se ejecutan todas las líneas de código que estén aquí&lt;br /&gt;wend &lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Esto traducido al español significaría lo siguiente:&lt;br /&gt;&lt;br /&gt;Mientras (While) la variable x sea igual a 100, y no cambie su valor, se formará un bucle interminable, hasta que x cambie a cualquier otro valor disto de 100. Si x cambia el valor, por ejemplo a 234 saldría del bucle While - wend y seguiría ejecutando el resto del código, si es que hay mas código o instrucciones a ejecutar.&lt;br /&gt;&lt;br /&gt;Un ejemplo, agrega un Command1 al formulario y un control Text1. Cuando ejecutemos el ejemplo, se deberá escribir un número dentro del control textBox. Entonces se creará un bucle While, que mostrará en el Caption del formulario, es decir en la barra de título, el intervalo desde 0 hasta el número que hayamos ingresado en el Text1. Es decir si ingresamos el número 9000, en el caption del formulario se imprimirán los número desde 0 hasta 9000.&lt;br /&gt;&lt;br /&gt;Para hacer esto, dentro del bucle While pondremos una variable llamada Contador, que en cada pasada se incrementará en 1, pero cuando la variable Contador sea igual al número que haya en el Text1, se finalizará el bucle y se mostrará un mensaje que finalizó el mismo&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub Command1_Click()&lt;br /&gt;Dim contador  As Integer 'Declaramos la variable&lt;br /&gt;&lt;br /&gt;While contador &lt;&gt; Text1&lt;br /&gt;&lt;br /&gt;'Mostramos en el formulario el valor de la variable contador&lt;br /&gt;Me.Caption = contador&lt;br /&gt;&lt;br /&gt;'Incrementamos la variable en 1&lt;br /&gt;contador = contador + 1&lt;br /&gt;&lt;br /&gt;Wend&lt;br /&gt;&lt;br /&gt;MsgBox "Terminó el bucle"&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Estructura For - next&lt;br /&gt;&lt;br /&gt;La estructura es utilizada para generar una repetición de instrucciones o bucle, pero no evalúa una condición como en el caso del bucle While, si no que lo hace entre un número inicial y un número final que le debemos indicar al mismo. &lt;br /&gt;&lt;br /&gt;Por ejemplo, tenemos un formulario con un Label1 y declaramos una variable de tipo integer llamada "contador" como en el caso anterior&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub Command1_Click()&lt;br /&gt;Dim contador As Integer&lt;br /&gt;&lt;br /&gt;For contador = 0 To 100&lt;br /&gt;&lt;br /&gt;    Label1.Caption = contador&lt;br /&gt;&lt;br /&gt;Next contador&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Esto traducido significaría lo siguiente:&lt;br /&gt;&lt;br /&gt;Primero, tenemos una variable llamada "contador". Mediante el bucle For - next podemos controlar la cantidad de veces que queremos repetir un determinado proceso o instrucción. Esta posee un principio y un fin, en este caso el principio sería 0 y el fin 100, de manera que la variable contador se incrementará en 1 hasta que llegue a 100, y repetirá 100 veces todas las instrucciones que estén bajo la cláusula For-next. En este caso nuestro control Label1 mostraría el contenido de la variable contador&lt;br /&gt;&lt;br /&gt;Para ver en forma detallada y paso a paso esto, pongamos un ejemplo que lo que hace es repetir 10 veces (desde el 1 hasta el 10 en el intervalo del bucle For) y mostrará un mensaje con el valor de la variable Contador. Una ves que llegue a 10, terminará.&lt;br /&gt;&lt;br /&gt;Colocá un Command1. Doble Click en el botón para escribir dentro del procedimiento que se ejecutará cuando lo presionemos. El código:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim contador As Integer&lt;br /&gt;&lt;br /&gt;For contador = 1 To 10&lt;br /&gt;&lt;br /&gt;    MsgBox "La variable Contador vale: " &amp; contador&lt;br /&gt;&lt;br /&gt;Next contador&lt;br /&gt;&lt;br /&gt;MsgBox "Fin del bucle For"&lt;/em&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Estructura Select case&lt;br /&gt;&lt;br /&gt;La estructura Select Case se suele utilizar para evitar el uso de muchas cláusulas If y de esta manera no tener que anidarlas. La claúsula Select evalúa una condición y las cláusulas case contienen valores, si el valor que contiene la cláusula case es igual a la condición que se evaluó, ejecutará las instrucciones en dicha cláusula. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Dim Nombre As String&lt;br /&gt;&lt;br /&gt;Nombre = Text1&lt;br /&gt;&lt;br /&gt;Select Case Nombre&lt;br /&gt;&lt;br /&gt;  Case "Jorge"&lt;br /&gt;&lt;br /&gt;       MsgBox "Se ejecutó la cláusula case: " &amp; Nombre&lt;br /&gt;  Case "Pedro"&lt;br /&gt;&lt;br /&gt;       MsgBox "Se ejecutó la cláusula case: " &amp; Nombre&lt;br /&gt;&lt;br /&gt;  Case "Carolina"&lt;br /&gt;&lt;br /&gt;       MsgBox "Se ejecutó la cláusula case: " &amp; Nombre&lt;br /&gt;&lt;br /&gt;End Select&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;Esta estructura es muy práctica. En el ejemplo anterior, la cláusula Select case contiene como condición el valor de la variable llamada Nombre. Esa Variable toma el valor que tenga un control Text1, entonces buscará en todas las cláusulas case, y si encuentra una igual a la condición, ejecutará solo las instrucciones de la cláusula case que tenga el mismo valor, por ejemplo si ingresara el nombre "Martín" no se ejecutará ninguna cláusula Case. En cambio si ingreso "Jorge" se ejecutará solo las instrucciones que estén en la sección Case "Jorge" y asi...&lt;br /&gt;&lt;br /&gt;En el caso anterior solo hemos colocado un valor para cada Case. Si quisieramos colocar mas valores podríamos hacerlo de esta forma:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Private Sub Form_Load()&lt;br /&gt;&lt;br /&gt;Dim x As Integer&lt;br /&gt;&lt;br /&gt;x = 10 'Le ponemos un valor a x&lt;br /&gt;&lt;br /&gt;Select Case x&lt;br /&gt;&lt;br /&gt;Case 5, 10&lt;br /&gt;MsgBox "Se ejecutó el case que tiene el 5 y el 10"&lt;br /&gt;'Se ejecuta esta sección&lt;br /&gt;&lt;br /&gt;Case 15, 20&lt;br /&gt;'Esto no se ejecuta&lt;br /&gt;Case 25, 30&lt;br /&gt;'Esto tampoco &lt;br /&gt;End Select&lt;br /&gt;&lt;br /&gt;End Sub&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;es decir que podemos listar los valores en los Case separados por comas. En el caso anterior se ejecutará el case 5, 10 ya que la variable x vale 10.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-5609800818315468259?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/5609800818315468259/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=5609800818315468259' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5609800818315468259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5609800818315468259'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/estructuras-de-control-en-visual-basic.html' title='Estructuras de control en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-5959001085287005816</id><published>2008-09-08T12:38:00.000-07:00</published><updated>2008-09-08T16:42:36.674-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Constantes en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5235899258831439298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Las constantes, como las variables, se utilizan para guardar datos y valores para nuestro programa, pero a diferencia de estas últimas, el contenido que almacenen no cambia, siempre es "constante".&lt;br /&gt;&lt;br /&gt;A diferencia de las variables que se declaran con la palabra Dim, las Constantes se declaran con la palabra Const. &lt;br /&gt;&lt;br /&gt;Ejemplo:&lt;br /&gt;&lt;br /&gt;Const NUMERO = 53&lt;br /&gt;&lt;br /&gt;En la línea anterior he creado una constante, que se llama NUMERO y va a almacenar un número , y este valor, cuando se ejecute mi programa se mantendrá invariable.&lt;br /&gt;&lt;br /&gt;Otro ejemplo, en el cual se muestra claramente el uso de una constante:&lt;br /&gt;&lt;br /&gt;Const PI = 3.1416&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-5959001085287005816?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/5959001085287005816/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=5959001085287005816' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5959001085287005816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5959001085287005816'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/constantes-en-visual-basic-60.html' title='Constantes en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-3004229738837499208</id><published>2008-09-08T12:35:00.001-07:00</published><updated>2008-09-08T16:41:50.153-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Tipos de Datos en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5235899258831439298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Los tipos de datos, indican el tipo de valor que puede almacenar una variable. Los principales tipos de datos:&lt;br /&gt;&lt;br /&gt;Números enteros: dentro de los números enteros tenemos varios tipos de datos dependiendo el rango que queramos utilizar:&lt;br /&gt;&lt;br /&gt;Byte: puede almacenar números enteros dentro del rango desde 0 a 255 &lt;br /&gt;Integer: puede almacenar números enteros dentro del rango -32.768 a 32.767 &lt;br /&gt;Long: puede almacenar números enteros dentro del rango -2.147.483.648 hasta 2.147.483.648 . &lt;br /&gt;Números decimales: para almacenar números decimales contamos con los siguientes tipos de datos:&lt;br /&gt;&lt;br /&gt;Single: almacena números decimales en el rango +/- 1e-45 hasta 3e38 &lt;br /&gt;Double: desde +/- 5e-324 hasta 1.8e308 &lt;br /&gt;Cadenas de caracteres: las cadenas de caracteres se definen con la palabra String y tienen un rango de hasta 2 billones de caracteres.&lt;br /&gt;&lt;br /&gt;Tipos de valores lógicos: para almacenar tipos de valores lógicos como verdadero o falso, se utiliza la palabra Boolean y sus 2 posibles valores son True (verdadero) y False (falso). &lt;br /&gt;&lt;br /&gt;Fechas y horas: Para almacenar fechas y horas se utiliza la palabra Date&lt;br /&gt;&lt;br /&gt;Tipo variant : Las variables de este tipo pueden almacenar cualquier tipo de valor, pero ocupan mas memoria.&lt;br /&gt;&lt;br /&gt;Nota: hay mas tipos de datos, incluso el mismo programador puede crear sus propios tipos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-3004229738837499208?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/3004229738837499208/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=3004229738837499208' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3004229738837499208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/3004229738837499208'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/tipos-de-datos-en-visual-basic-60_08.html' title='Tipos de Datos en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8729105874652054757</id><published>2008-09-08T12:35:00.000-07:00</published><updated>2008-09-08T16:41:12.859-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Tipos de Datos en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5235899258831439298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Los tipos de datos, indican el tipo de valor que puede almacenar una variable. Los principales tipos de datos:&lt;br /&gt;&lt;br /&gt;Números enteros: dentro de los números enteros tenemos varios tipos de datos dependiendo el rango que queramos utilizar:&lt;br /&gt;&lt;br /&gt;Byte: puede almacenar números enteros dentro del rango desde 0 a 255 &lt;br /&gt;Integer: puede almacenar números enteros dentro del rango -32.768 a 32.767 &lt;br /&gt;Long: puede almacenar números enteros dentro del rango -2.147.483.648 hasta 2.147.483.648 . &lt;br /&gt;Números decimales: para almacenar números decimales contamos con los siguientes tipos de datos:&lt;br /&gt;&lt;br /&gt;Single: almacena números decimales en el rango +/- 1e-45 hasta 3e38 &lt;br /&gt;Double: desde +/- 5e-324 hasta 1.8e308 &lt;br /&gt;Cadenas de caracteres: las cadenas de caracteres se definen con la palabra String y tienen un rango de hasta 2 billones de caracteres.&lt;br /&gt;&lt;br /&gt;Tipos de valores lógicos: para almacenar tipos de valores lógicos como verdadero o falso, se utiliza la palabra Boolean y sus 2 posibles valores son True (verdadero) y False (falso). &lt;br /&gt;&lt;br /&gt;Fechas y horas: Para almacenar fechas y horas se utiliza la palabra Date&lt;br /&gt;&lt;br /&gt;Tipo variant : Las variables de este tipo pueden almacenar cualquier tipo de valor, pero ocupan mas memoria.&lt;br /&gt;&lt;br /&gt;Nota: hay mas tipos de datos, incluso nosotros mismos podemos crear lo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8729105874652054757?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8729105874652054757/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8729105874652054757' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8729105874652054757'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8729105874652054757'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/tipos-de-datos-en-visual-basic-60.html' title='Tipos de Datos en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8208058879976672835</id><published>2008-09-08T12:30:00.000-07:00</published><updated>2008-09-08T16:40:36.938-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Variables en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5235899258831439298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Las variables, como su nombre lo indica, se utilizan para almacenar valores que tienen la propiedad de variar el contenido. Cuando hablamos de contenido nos referimos a cualquier tipo de datos, por ejemplo un nombre, una fecha, un color, un número etc. &lt;br /&gt;&lt;br /&gt;A las variables se les asigna un nombre para poder utilizarlas. Por ejemplo puedo crear una variable llamada fecha y esta almacenará una fecha. A los nombres de las variables se los denomina identificadores. Cuando creamos variables, tenemos que tratar de asignarles un nombre que se relacione con el tipo de dato que queremos almacenar. Por ejemplo no tendría mucho sentido crear una variable llamada m y allí guardar o almacenar un nombre o un apellido, por que cuando echemos vista al código resultaría mas difícil deducir que tipo de dato estoy guardando. Por ejemplo en este último caso sería mucho mas lógico crear una variable llamada “nombres” y allí guardar "Luis", "Francisco", "Antonio" etc..&lt;br /&gt;&lt;br /&gt;En visual basic a las variables conviene declararlas, o sea, avisarle a vb que vamos a utilizar dichas variables. A estas se las declara en el comienzo del código y se les antepone la palabra reservada Dim, luego el nombre que nosotros queramos y seguido el tipo de dato que almacenará, por ejemplo si quiero almacenar en una variable llamada Numero&lt;br /&gt;&lt;br /&gt;Dim NUMERO As Integer&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;La palabra Integer le avisa a visual basic que voy a guardar un número entero. Después de declararla le podemos asignar un valor con el operador "=", ejemplo: &lt;br /&gt;&lt;br /&gt;Dim NUMERO As Integer&lt;br /&gt;&lt;br /&gt;NUMERO = 1500&lt;br /&gt;&lt;br /&gt;Pero hay que tener en cuenta que al declarar una variable, en este caso, de tipo integer, no podríamos almacenar en ella otro tipo diferente al cual esta declarada como por ejemplo una fecha o cualquier otro tipo de datos que no sea un número entero. Si sucedería esto nuestro programa daría un error en tiempo de ejecución, mostrándonos "no coinciden los tipos de datos".&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8208058879976672835?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8208058879976672835/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8208058879976672835' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8208058879976672835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8208058879976672835'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/variables-en-visual-basic-60.html' title='Variables en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-5915220832871743814</id><published>2008-09-08T11:44:00.000-07:00</published><updated>2008-09-08T16:40:00.847-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programación General'/><title type='text'>Programación Orientada a Objetos</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SMW3oqXrRuI/AAAAAAAAAFM/Wuig-J8IuFo/s1600-h/poo.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SMW3oqXrRuI/AAAAAAAAAFM/Wuig-J8IuFo/s320/poo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5243799250339055330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Actualmente una de las áreas más candentes en la industria y en el ámbito académico es la orientación a objetos. La orientación a objetos promete mejoras de amplio alcance en la forma de diseño, desarrollo y mantenimiento del software ofreciendo una solución a largo plazo a los problemas y preocupaciones que han existido desde el comienzo en el desarrollo de software: la falta de portabilidad del código y reusabilidad, código que es dificil de modificar, ciclos de desarrollo largos y tecnicas de codificacion no intuituvas.&lt;br /&gt;&lt;br /&gt;Un lenguaje orientado a objetos ataca estos problemas. Tiene tres características basicas: debe estar basado en objetos, basado en clases y capaz de tener herencia de clases. Muchos lenguajes cumplen uno o dos de estos puntos; muchos menos cumplen los tres. La barrera más difícil de sortear es usualmente la herencia.&lt;br /&gt;&lt;br /&gt;El concepto de programación orientada a objetos (OOP) no es nuevo, lenguajes clásicos como SmallTalk se basan en ella. Dado que la OOP. se basa en la idea natural de la existencia de un mundo lleno de objetos y que la resolución del problema se realiza en términos de objetos, un lenguaje se dice que está basado en objetos si soporta objetos como una característica fundamental del mismo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El elemento fundamental de la OOP es, como su nombre lo indica, el objeto. Podemos definir un objeto como un conjunto complejo de datos y programas que poseen estructura y forman parte de una organización.&lt;br /&gt;&lt;br /&gt;Esta definición especifica varias propiedades importantes de los objetos. En primer lugar, un objeto no es un dato simple, sino que contiene en su interior cierto número de componentes bién estructurados. En segundo lugar, cada objeto no es un ente aislado, sino que forma parte de una organización jerárquica o de otro tipo.&lt;br /&gt;&lt;br /&gt;ESTRUCTURA DE UN OBJETO&lt;br /&gt;&lt;br /&gt;Un objeto puede considerarse como una especie de cápsula dividida en tres partes:&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;1 - RELACIONES&lt;br /&gt;&lt;br /&gt;2 - PROPIEDADES&lt;br /&gt;&lt;br /&gt;3 - METODOS&lt;br /&gt;&lt;br /&gt;Cada uno de estos componentes desempeña un papel totalmente independiente:&lt;br /&gt;&lt;br /&gt;Las relaciones permiten que el objeto se insterte en la organización y están formadas esencialmente por punteros a otros objetos.&lt;br /&gt;&lt;br /&gt;Las propiedades distinguen un objeto determinado de los restantes que forman parte de la misma organización y tiene valores que dependen de la propiedad de que se trate. Las propiedades de un objeto pueden ser heredadas a sus descendientes en la organización.&lt;br /&gt;&lt;br /&gt;Los métodos son las operaciones que pueden realizarse sobre el objeto, que normalmente estarán incorporados en forma de programas (código) que el objeto es capaz de ejecutar y que también pone a disposición de sus descendientes a través de la herencia.&lt;br /&gt;&lt;br /&gt;Encapsulamiento y ocultación&lt;br /&gt;&lt;br /&gt;Como hemos visto, cada objeto es una estructura compleja en cuyo interior hay datos y programas, todos ellos relacionados entre sí, como si estuvieran encerrados conjuntamente en una cápsula. Esta propiedad (encapsulamiento), es una de las características fundamentales en la OOP.&lt;br /&gt;&lt;br /&gt;Los objetos son inaccesibles, e impiden que otros objetos, los usuarios, o incluso los programadores conozcan cómo está distribuída la información o qué información hay disponible. Esta propiedad de los objetos se denomina ocultación de la información.&lt;br /&gt;&lt;br /&gt;Esto no quiere decir, sin embargo, que sea imposible conocer lo necesario respecto a un objeto y a lo que contiene. Si así fuera no se podría hacer gran cosa con él. Lo que sucede es que las peticiones de información a un objeto. deben realizarse a través de mensajes dirigidos a él, con la orden de realizar la operación pertinente. La respuesta a estas ordenes será la información requerida, siempre que el objeto considere que quien envía el mensaje está autorizado para obtenerla.&lt;br /&gt;&lt;br /&gt;El hecho de que cada objeto sea una cápsula facilita enormemente que un objeto determinado pueda ser transportado a otro punto de la organización, o incluso a otra organización totalmente diferente que precise de él. Si el objeto ha sido bien construído, sus métodos seguirán funcionando en el nuevo entorno sin problemas. Esta cualidad hace que la OOP sea muy apta para la reutilización de programas.&lt;br /&gt;&lt;br /&gt;Organización de los objetos&lt;br /&gt;&lt;br /&gt;En principio, los objetos forman siempre una organización jerárquica, en el sentido de que ciertos objetos son superiores a otros de cierto modo.&lt;br /&gt;&lt;br /&gt;Existen varios tipos tipos de jerarquías: serán simples cuando su estructura pueda ser representada por medio de un "arbol". En otros casos puede ser más compleja.&lt;br /&gt;&lt;br /&gt;En cualquier caso, sea la estructura simple o compleja, podrán distinguirse en ella tres niveles de objetos.&lt;br /&gt;&lt;br /&gt;-La raíz de la jerarquía. Se trata de un objeto único y especial. Este se caracteríza por estar en el nivel más alto de la estructura y suele recibir un nombre muy genérico, que indica su categoría especial, como por ejemplo objeto madre, Raíz o Entidad.&lt;br /&gt;&lt;br /&gt;-Los objetos intermedios. Son aquellos que descienden directamente de la raíz y que a su vez tienen descendientes. Representan conjuntos o clases de objetos, que pueden ser muy generales o muy especializados, según la aplicación. Normalmente reciben nombres genéricos que denotan al conjunto de objetos que representan, por ejemplo, VENTANA, CUENTA, FICHERO. En un conjunto reciben el nombre de clases o tipos si descienden de otra clase o subclase.&lt;br /&gt;&lt;br /&gt;-Los objetos terminales. Son todos aquellos que descienden de una clase o subclase y no tienen descendientes. Suelen llamarse casos particulares, instancias o ítems porque representan los elementos del conjunto representado por la clase o subclase a la que pertenecen.&lt;br /&gt;&lt;br /&gt;Veamos ahora en detalle los tres elementos mencionados en "Estructura de un Objeto".&lt;br /&gt;&lt;br /&gt;1. RELACIONES&lt;br /&gt;&lt;br /&gt;Las relaciones entre objetos son, precisamente, los enlaces que permiten a un objeto relacionarse con aquellos que forman parte de la misma organización.&lt;br /&gt;&lt;br /&gt;Las hay de dos tipos fundamentales: &lt;br /&gt;&lt;br /&gt;-Relaciones jerárquicas. Son esenciales para la existencia misma de la aplicación porque la construyen. Son bidireccionales, es decir, un objeto es padre de otro cuando el primer objeto se encuentra situado inmediatamente encima del segundo en la organización en la que ambos forman parte; asimismo, si un objeto es padre de otro, el segundo es hijo del primero (en la fig. 2, B es padre de D,E y F, es decir, D,E y F son hijos de B; en la fig. 3, los objetos B y C son padres de F, que a su vez es hijo de ambos).&lt;br /&gt;&lt;br /&gt;Una organización jerárquica simple puede definirse como aquella en la que un objeto puede tener un solo padre, mientras que en una organizacion jerárquica compleja un hijo puede tener varios padres).&lt;br /&gt;&lt;br /&gt;-Relaciones semánticas. Se refieren a las relaciones que no tienen nada que ver con la organización de la que forman parte los objetos que las establecen. Sus propiedades y consecuencia solo dependen de los objetos en sí mismos (de su significado) y no de su posición en la organización.&lt;br /&gt;&lt;br /&gt;Se puede ver mejor con un ejemplo: supongamos que vamos a construir un diccionario informatizado que permita al usuario obtener la definición de una palabra cualquiera. Supongamos que, en dicho diccionario, las palabras son objetos y que la organización jerárquica es la que proviene de forma natural de la estructura de nuestros conocimientos sobre el mundo.&lt;br /&gt;&lt;br /&gt;La raíz del diccionario podría llamarse TEMAS. De éste término genérico descenderán tres grandes ramas de objetos llamadas VIDA, MUNDO y HOMBRE. El primero (vida) comprenderá las ciencias biológicas: Biología y Medicina. El segundo (mundo), las ciencias de la naturaleza inerte: las Matemáticas, la Física, la Química y la Geología. El tercero (hombre) comprenderá las ciencias humanas: la Geografía, la Historia, etc.&lt;br /&gt;&lt;br /&gt;Veamos un ejemplo: estableceremos la relación trabajo entre los objetos NEWTON y OPTICA y la interpretaremos diciendo que significa que Newton trabajó en óptica (véase la fig. 4). La relación es, evidentemente, semántica, pués no establece ninguna connotación jerárquica entre NEWTON y OPTICA y su interpretación depende exclusivamente del significado de ambos objetos.&lt;br /&gt;&lt;br /&gt;La existencia de esta relación nos permitirá responder a preguntas como: &lt;br /&gt;&lt;br /&gt;¿Quién trabajó en óptica?&lt;br /&gt;&lt;br /&gt;¿En qué trabajó Newton?&lt;br /&gt;&lt;br /&gt;¿Quien trabajó en Física?&lt;br /&gt;&lt;br /&gt;Las dos primeras se deducen inmediatamente de la existencia de la relación trabajo. Para la tercera observamos que si Newton trabajó en óptica automáticamente sabemos que trabajó en Física, por ser óptica una rama de la Física (en nuestro diccionario, el objeto OPTICA es hijo del objeto FISICA). Entonces gracias a la OOP podemos responder a la tercera pregunta sin necesidad de establecer una relación entre NEWTON y FISICA, apoyandonos sólo en la relación definida entre NEWTON y OPTICA y en que OPTICA es hijo de FISICA. De este modo se elimina toda redundancia innecesaria y la cantidad de información que tendremos que definir para todo el diccionario será mínima.&lt;br /&gt;&lt;br /&gt;2. PROPIEDADES&lt;br /&gt;&lt;br /&gt;Todo objeto puede tener cierto número de propiedades, cada una de las cuales tendrá, a su vez, uno o varios valores. En OOP, las propiedades corresponden a las clásicas "variables" de la programación estructurada. Son, por lo tanto, datos encapsulados dentro del objeto, junto con los métodos (programas) y las relaciones (punteros a otros objetos). Las propiedades de un objeto pueden tener un valor único o pueden contener un conjunto de valores mas o menos estructurados (matrices, vectores, listas, etc.). Además, los valores pueden ser de cualquier tipo (numérico, alfabético, etc.) si el sistema de programación lo permite.&lt;br /&gt;&lt;br /&gt;Pero existe una diferencia con las "variables", y es que las propiedades se pueden heredar de unos objetos a otros. En consecuencia, un objeto puede tener una propiedad de maneras diferentes:&lt;br /&gt;&lt;br /&gt;-Propiedades propias. Están formadas dentro de la cápsula del objeto.&lt;br /&gt;&lt;br /&gt;-Propiedades heredadas. Estan definidas en un objeto diferente, antepasado de éste (padre,"abuelo", etc.). A veces estas propiedades se llaman propiedades miembro porque el objeto las posee por el mero hecho de ser miembro de una clase.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3. METODOS&lt;br /&gt;&lt;br /&gt;Una operación que realiza acceso a los datos. Podemos definir método como un programa procedimental o procedural escrito en cualquier lenguaje, que está asociado a un objeto determinado y cuya ejecución sólo puede desencadenarse a través de un mensaje recibido por éste o por sus descendientes.&lt;br /&gt;&lt;br /&gt;Son sinónimos de 'método' todos aquellos términos que se han aplicado tradicionalmente a los programas, como procedimiento, función, rutina, etc. Sin embargo, es conveniente utilizar el término 'método' para que se distingan claramente las propiedades especiales que adquiere un programa en el entorno OOP, que afectan fundamentalmente a la forma de invocarlo (únicamente a través de un mensaje) y a su campo de acción, limitado a un objeto y a sus descendientes, aunque posiblemente no a todos.&lt;br /&gt;&lt;br /&gt;Si los métodos son programas, se deduce que podrían tener argumentos, o parámetros. Puesto que los métodos pueden heredarse de unos objetos a otros, un objeto puede disponer de un método de dos maneras diferentes:&lt;br /&gt;&lt;br /&gt;-Métodos propios. Están incluídos dentro de la cápsula del objeto.&lt;br /&gt;&lt;br /&gt;-Métodos heredados. Estan definidos en un objeto diferente, antepasado de éste (padre,"abuelo", etc.). A veces estos métodos se llaman métodos miembro porque el objeto los posee por el mero hecho de ser miembro de una clase.&lt;br /&gt;&lt;br /&gt;Polimorfísmo&lt;br /&gt;&lt;br /&gt;Una de las características fundamentales de la OOP es el polimorfísmo, que no es otra cosa que la posibilidad de construir varios métodos con el mismo nombre, pero con relación a la clase a la que pertenece cada uno, con comportamientos diferentes. Esto conlleva la habilidad de enviar un mismo mensaje a objetos de clases diferentes. Estos objetos recibirían el mismo mensaje global pero responderían a él de formas diferentes; por ejemplo, un mensaje "+" a un objeto ENTERO significaría suma, mientras que para un objeto STRING significaría concatenación ("pegar" strings uno seguido al otro)&lt;br /&gt;&lt;br /&gt;Demonios&lt;br /&gt;&lt;br /&gt;Es un tipo especial de métodos, relativamente poco frecuente en los sistemas de OOP, que se activa automáticamente cuando sucede algo especial. Es decir, es un programa, como los métodos ordinarios, pero se diferencia de estos porque su ejecución no se activa con un mensaje, sino que se desencadena autmáticamente cuando ocurre un suceso determinado: la asignación de un valor a una propiedad de un objeto, la lectura de un valor determinado, etc.&lt;br /&gt;&lt;br /&gt;Los demonios, cuando existen, se diferencian de otros métodos por que no son heredables y porque a veces están ligados a una de las propiedades de un objeto, mas que al objeto entero.&lt;br /&gt;&lt;br /&gt;CONSIDERACIONES FINALES&lt;br /&gt;&lt;br /&gt;Beneficios que se obtienen del desarrollo con OOP&lt;br /&gt;&lt;br /&gt;Día a día los costos del Hardware decrecen. Así surgen nuevas áreas de aplicación cotidianamente: procesamiento de imágenes y sonido, bases de datos multimediales, automatización de oficinas, ambientes de ingeniería de software, etc. Aún en las aplicaciones tradicionales encontramos que definir interfases hombre-máquina "a-la-Windows" suele ser bastante conveniente.&lt;br /&gt;&lt;br /&gt;Lamentablemente, los costos de producción de software siguen aumentando; el mantenimiento y la modificación de sistemas complejos suele ser una tarea trabajosa; cada aplicación, (aunque tenga aspectos similares a otra) suele encararse como un proyecto nuevo, etc.&lt;br /&gt;&lt;br /&gt;Todos estos problemas aún no han sido solucionados en forma completa. Pero como los objetos son portables (teóricamente) mientras que la herencia permite la reusabilidad del código orientado a objetos, es más sencillo modificar código existente porque los objetos no interaccionan excepto a través de mensajes; en consecuencia un cambio en la codificación de un objeto no afectará la operación con otro objeto siempre que los métodos respectivos permanezcan intactos. La introducción de tecnología de objetos como una herramienta concepual para analizar, diseñar e implementar aplicaciones permite obtener aplicaciones más modificables, fácilmente extendibles y a partir de componentes reusables. Esta reusabilidad del código disminuye el tiempo que se utiliza en el desarrollo y hace que el desarrollo del software sea mas intuitivo porque la gente piensa naturalmente en términos de objetos más que en términos de algoritmos de software.&lt;br /&gt;&lt;br /&gt;Problemas derivados de la utilización de OOP en la actualidad&lt;br /&gt;&lt;br /&gt;Un sistema orientado a objetos, por lo visto, puede parecer un paraíso virtual. El problema sin embargo surge en la implementación de tal sistema. Muchas compañías oyen acerca de los beneficios de un sistema orientado a objetos e invierten gran cantidad de recursos luego comienzan a darse cuenta que han impuesto una nueva cultura que es ajena a los programadores actuales. Específicamente los siguientes temas suelen aparecer repetidamente:&lt;br /&gt;&lt;br /&gt;Curvas de aprendizaje largas. Un sistema orientado a objetos ve al mundo en una forma única. Involucra la conceptualización de todos los elementos de un programa, desde subsistemas a los datos, en la forma de objetos. Toda la comunicación entre los objetos debe realizarse en la forma de mensajes. Esta no es la forma en que están escritos los programas orientados a objetos actualmente; al hacer la transición a un sistema orientado a objetos la mayoría de los programadores deben capacitarse nuevamente antes de poder usarlo.&lt;br /&gt;&lt;br /&gt;Dependencia del lenguaje. A pesar de la portabilidad conceptual de los objetos en un sistema orientado a objetos, en la práctica existen muchas dependencias. Muchos lenguajes orientados a objetos están compitiendo actualmente para dominar el mercado. Cambiar el lenguaje de implementación de un sistema orientado a objetos no es una tarea sencilla; por ejemplo C++ soporta el concepto de herencia multiple mientras que SmallTalk no lo soporta; en consecuencia la elección de un lenguaje tiene ramificaciones de diseño muy importamtes.&lt;br /&gt;&lt;br /&gt;Determinacion de las clases. Una clase es un molde que se utiliza para crear nuevos objetos. En consecuencia es importante crear el conjunto de clases adecuado para un proyecto. Desafortunadamente la definición de las clases es más un arte que una ciencia. Si bien hay muchas jerarquías de clase predefinidas usualmente se deben crear clases específicas para la aplicación que se este desarrollando. Luego, en 6 meses ó 1 año se da cuenta que las clases que se establecieron no son posibles; en ese caso será necesario reestructurar la jerarquía de clases devastando totalmente la planificación original.&lt;br /&gt;&lt;br /&gt;Performance. En un sistema donde todo es un objeto y toda interaccion es a través de mensajes, el tráfico de mensajes afecta la performance. A medida que la tecnología avanza y la velocidad de microprocesamiento, potencia y tamaño de la memoria aumentan, la situacion mejorará; pero en la situación actual, un diseño de una aplicación orientada a objetos que no tiene en cuenta la performance no será viable comercialmente.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Idealmente, habría una forma de atacar estos problemas eficientemente al mismo tiempo que se obtienen los beneficios del desarrollo de una estrategia orientada a objetos. Deberia existir una metodología fácil de aprender e independiente del lenguaje, y facil de reestructurar que no drene la performance del sistema .&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-5915220832871743814?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/5915220832871743814/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=5915220832871743814' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5915220832871743814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5915220832871743814'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/programacin-orientada-objetos.html' title='Programación Orientada a Objetos'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SMW3oqXrRuI/AAAAAAAAAFM/Wuig-J8IuFo/s72-c/poo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-5512688295808792593</id><published>2008-09-03T08:14:00.000-07:00</published><updated>2008-09-03T08:48:54.548-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Consejos para una buena programacion en Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5235899258831439298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1.&lt;/strong&gt; Requerir declaración de variables. &lt;br /&gt;&lt;br /&gt;Esto es sumamente importante por que una de las caracteristicas del lenguaje es que se puedes utiliza variables sin ser declaradas, Visual Basic crea automáticamente una variable con ese nombre que se este utilizando, que puede usar como si la hubiera declarado explícitamente. Aunque es cómodo, puede provocar errores sutiles en el código si se equivoca de nombre de variable. un ejemplo en donde se puede obtener problemas:&lt;br /&gt;&lt;br /&gt;Function SafeSqr(num)&lt;br /&gt;   TempVal = Abs(num)&lt;br /&gt;   SafeSqr = Sqr(TemVal)&lt;br /&gt;End Function&lt;br /&gt;&lt;br /&gt;A primera vista, parece igual. Pero como se ha escrito erróneamente la variable TempVal en la tercera línea, la función devolverá siempre cero. Cuando Visual Basic encuentra un nombre nuevo, no puede averiguar si realmente desea declarar una variable nueva o simplemente ha escrito de forma errónea una variable existente, por lo que crea una variable nueva con ese nombre.&lt;br /&gt;&lt;br /&gt;Para requerir la declaración de variables&lt;br /&gt;&lt;br /&gt;Haga click en el menú “Herramientas” &gt; “Opciones” en el cuadro de dialogo que se muestra has click en la casilla de verificación “Requerir declaración de variables” que se encuentra en la pestaña “Editor”&lt;br /&gt;&lt;br /&gt;Al hacer esto aparece en el editor de código (En la parte superior) Option Explicit. &lt;br /&gt;&lt;br /&gt;Para que VB detecte el error y otros mas, ejecuta el programa presionando Ctrl + F5  que es “Iniciar con compilación completa” &lt;br /&gt;&lt;br /&gt;Para que siempre que ejecutes un programa lo haga con compilación completa dale click a la pestaña “General” del cuadro “opciones” (del menú herramientas) y desactiva la casilla “Compilar a petición” con esto VB analizara el código antes de la ejecución y mostrara los errores. Una ves desactivada “Compilar a petición” se puede ejecutar el programa con F5 o haciendo click en “El play”. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Escribir la variables y nombre de controles con mayúsculas y minúsculas &lt;br /&gt;&lt;br /&gt;si vas ha usar una variable por ejemplo VariableNumero escríbela así con la V mayúscula y la N mayúscula a esto se le conoce como notacion camello, y cuando codifiques si lo hacen en minuscula y escribes el nombre de la variable y al salir de la lines editada automaticamente te lo convertira en el nombre de la variable como la declaraste y de podras dar cuenta si la escribiste bien o no.&lt;br /&gt;&lt;br /&gt;  ademas de esto al ponerle nombre a los controles que estes utilizando, debes hacer un habito de ponerle un identificador del tipo de control al que pertenece, por ejemplo: &lt;br /&gt;&lt;br /&gt;txt  =  Textbox&lt;br /&gt;btn  =  Botón de comando&lt;br /&gt;lb =  Label &lt;br /&gt;Ptb  =  PictureBox&lt;br /&gt;Frm  =  Forms&lt;br /&gt;Opt  =  Option &lt;br /&gt;Etc... &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. &lt;/strong&gt;Para largas horas de trabajo configura el editor. &lt;br /&gt;&lt;br /&gt;si vas a estar mucho tiempo en el pc, programando claro esta puedes configurar el editor, y ponerle los colores que sean de tu agrado esto con el fin de que no se cansen tu ojos o proboquen algun tipo de malestar visual. para hacer esto lo puedes hacer en:&lt;br /&gt;&lt;br /&gt;has click en HERRAMIENTAS &gt; OPCIONES y en el cuadro que se muestra, dale click en la pestaña FORMATO DE EDITOR allí encontraras una lista de las opciones a configurar y abajo los colores. Para cambiar el fondo debes configurarlo como mínimo en 3 opciones 1º en TEXTO NORMAL , 2º TEXTO DE PALABRAS CLAVES y 3º TEXTO IDENTIFICADOR cambia también el color de las letras allí. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4. Definir el tipo y ámbito de una variable &lt;br /&gt;&lt;br /&gt;Una variable tiene un tipo ya sea Integer, double etc... y un ámbito public, static, private, dim se recomienda analizar primero para que va ha ser utilizada la variable y donde se va usar. Ejemplo: &lt;br /&gt;&lt;br /&gt;esto es para decalarar una variable del tipo en que se balla a utilizar, por ejemplo&lt;br /&gt;&lt;br /&gt;Dim Resultado As Double &lt;br /&gt;&lt;br /&gt;si lo voy a utlizar en gran parte del sistema, se puede agregar un modulo y ahi declarar la variable, pero de esta forma:&lt;br /&gt;&lt;br /&gt;Public Resultado As Double &lt;br /&gt;&lt;br /&gt;en caso de que se utilice para un procedimiento local, se puede declarar como:&lt;br /&gt;&lt;br /&gt;Dim Resultado As Double&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-5512688295808792593?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/5512688295808792593/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=5512688295808792593' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5512688295808792593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/5512688295808792593'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/consejos-para-una-buena-programacion-en.html' title='Consejos para una buena programacion en Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-391316837083915071</id><published>2008-09-03T08:07:00.000-07:00</published><updated>2008-09-03T08:48:18.277-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Novedades en el lenguaje Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5235899258831439298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; El núcleo principal del lenguaje Visual Basic a sufrido algunas novedades. Para una mejor lectura y una mejor comprensión vamos a proceder a dividirlos en dos subgrupos: el primero de ellos será el de las novedades del lenguaje en sí mismas y el segundo las novedades en lo referente a funciones de cadena.&lt;br /&gt;&lt;br /&gt; Dichas modificaciones o ampliaciones corresponden al núcleo del lenguaje y por consiguiente van a ser aplicables a todas las ediciones de Visual Basic 6.0. Una de las novedades es que ahora las funciones y los diferentes procedimientos de propiedades van a ser capaces de devolver arrays.&lt;br /&gt;&lt;br /&gt;En todas las ediciones se ofrecen unos objetos de sistema llamados File System Object.&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;I Drive:&lt;/strong&gt; objeto que permite obtener más información sobre las distintas unidades de disco que posee el sistema, información tal como, por ejemplo, su nombre de recurso compartido o el espacio. No es necesario que estén conectadas al sistema las unidades de las cuales vamos a obtener información, es decir, puede, por ejemplo accederse a ellas desde una red de área local. Además las unidades pueden ser también de CD-ROM, disco RAM, etc.&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;I Fólder:&lt;/strong&gt; dicho objeto permite crear, borrar y mover carpetas, así como requerir ala sistema información diversa sobre los directorios.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; I FileSystemObject:&lt;/strong&gt; el principal objeto de todo el grupo y es el que nos proporciona acceso al sistema de ficheros del ordenador.&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;I TextStream:&lt;/strong&gt; objeto que permitirá leer y escribir fichero de texto.&lt;br /&gt;&lt;br /&gt; La función &lt;strong&gt;CallByName&lt;/strong&gt; permitirá acceder a una determinada propiedad o método especificando una cadena que contenga el nombre de la propiedad o el método.&lt;br /&gt;&lt;br /&gt; Otra novedad disponible en todas las versiones es que ahora con la función CreateObject, la cual nos permitía crear una referencia a un objeto Actives, podremos especificar entre sus argumentos si lo deseamos, un nombre de máquina para así crear objetos en máquinas remotas.&lt;br /&gt;&lt;br /&gt; La función &lt;strong&gt;StrConv&lt;/strong&gt; ha sido convenientemente ampliada y ahora tiene un argumento opcional:  StrConv (string, conversión, LCID) Dicho argumento permite especificar un identificador de localización distinto al identificador establecido por defecto que en este caso sería el del sistema.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;br /&gt;NUEVAS FUNCIONES DE CADENA:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt; Han sido añadidas a un total de catorce nuevas funciones, en todas las versiones del lenguaje, para ampliar su funcionalidad, estas de verdad son muy utiles en lo personal las utilizo mucho.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;WeekDayName:&lt;/strong&gt; esta función  devolverá una cadena indicando un determinado día de la semana.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Split:&lt;/strong&gt; retornará un array unidimensional que contendrá un determinado número de subcadenas.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Round:&lt;/strong&gt; devolverá un número redondeado.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Replace:&lt;/strong&gt; devuelve una cadena en la que se ha reemplazado una determinada subcadena por otra subcadena un determinado número de veces.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;I MonthName:&lt;/strong&gt; esta función retornará una cadena indicando un mes determinado del año.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;FormatPercent:&lt;/strong&gt; devuelve una expresión convenientemente formateada como un porcentaje, es decir, multiplicada por cien con el carácter de porcentaje (%).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;FormatNumber:&lt;/strong&gt; devuelve una expresión  formateada como un número.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;FormatDateTime:&lt;/strong&gt; devolverá una expresión convenientemente formateada como una fecha o bien como una hora.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-391316837083915071?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/391316837083915071/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=391316837083915071' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/391316837083915071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/391316837083915071'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/novedades-en-el-lenguaje-visual-basic.html' title='Novedades en el lenguaje Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-502881053696418271</id><published>2008-09-03T08:04:00.000-07:00</published><updated>2008-09-03T08:48:03.962-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Funcionamiento del Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5235899258831439298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; Lo que podemos hacer con Visual Basic es desde diseñar interfaces de usuario innovadoras hasta utilizar objetos de otras aplicaciones, desde manipular texto y gráficos a trabajar con bases de datos, Visual Basic proporciona las herramientas que necesitaremos para realizar correctamente nuestro trabajo.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Utilizar los controles estándar de Visual Basic.&lt;/strong&gt; Describe los controles intrínsecos de Visual Basic y cómo los puede utilizar.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Programar con objetos.&lt;/strong&gt; Trata en profundidad los objetos, incluida la creación de clases y el uso de Diseñadores Active X.&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;Programar con componentes.&lt;/strong&gt; Trata las técnicas para utilizar componentes active X en sus propias aplicaciones.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Responder a eventos del mouse y del teclado.&lt;/strong&gt; Descripción del procesamiento de las entradas del usuario, incluidos los eventos relacionados con arrastrar y colocar.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Trabajar con texto y gráficos.&lt;/strong&gt; Explica cómo debe utilizar los métodos gráficos y de texto de Visual Basic para presentar e imprimir.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Depurar su código y tratar los errores.&lt;/strong&gt; Explica qué debe hacer cuando algo no funciona de la manera prevista, en tiempo de diseño o en tiempo de ejecución.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Tener acceso a datos.&lt;/strong&gt; Técnicas para trabajar con bases de datos y procesar archivos.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Diseñar buscando el rendimiento y la compatibilidad.&lt;/strong&gt; Técnicas de optimización para hacer sus aplicaciones más rápidas o más pequeñas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-502881053696418271?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/502881053696418271/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=502881053696418271' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/502881053696418271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/502881053696418271'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/funcionamiento-del-visual-basic-60.html' title='Funcionamiento del Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-2343726539537734943</id><published>2008-09-02T07:25:00.000-07:00</published><updated>2008-09-03T08:47:45.724-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Basic 6.0'/><title type='text'>Características de Visual Basic 6.0</title><content type='html'>&lt;a href="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s1600-h/vb.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s320/vb.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5235899258831439298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;Código nativo:&lt;/strong&gt; Ediciones profesional y empresarial. Puede compilar un proyecto de Visual Basic con código nativo para una ejecución más rápida. También puede personalizar el código nativo con las nuevas opciones del compilador y depurar el código nativo con el entorno de Visual C++.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Creación de sus propios controles Active X:&lt;/strong&gt; Ediciones profesional y empresarial. Puede combinar los controles existentes o crear el suyo desde cero. Los controles Active X creados con Visual Basic tienen eventos, compatibilidad con enlace a datos, soporte de licencias, páginas de propiedades, características para Internet y mucho más.&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;Múltiples proyectos:&lt;/strong&gt; Todas las ediciones. Puede abrir múltiples proyectos en la misma instancia de Visual Basic. Se utiliza para depurar los controles Active X.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Creación de documentos Active X:&lt;/strong&gt; Ediciones profesional y empresarial. Los documentos Active X, tan fáciles e intuitivos como diseñar las aplicaciones tradicionales de Visual Basic, despliegan sus aplicaciones de Visual Basic en las ventanas de Internet e Intranet.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Asistentes:&lt;/strong&gt; Todas las ediciones. En la Edición de aprendizaje, el Asistente para aplicaciones es nuevo y se ha mejorado el Asistente para instalar con el fin de permitir la creación de archivos de dependencias para un proyecto estándar. Ediciones profesional  y empresarial. En la edición profesional, son nuevos el Asistente para interfaz de controles Active  X, el Asistente para la migración de documentos Active X, el Asistente para formularios de datos y el Asistente de páginas de propiedades. El asistente para instalar se ha mejorado de modo que sea compatible con la distribución a través de Internet, la instalación de componentes remotos de servidor mediante  COM distribuido (DCOM) y Automatización remota, y la posibilidad de crear archivos de dependencias para proyectos y componentes creados con Visual Basic. La  Edición profesional también incluye la barra de herramientas Asistente y el Administrador de asistentes.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Modelo de extensibilidad:&lt;/strong&gt; Ediciones profesional y empresarial. El nuevo modelo le permite extender por programa el entorno de desarrollo y controlar proyectos, eventos, código y elementos visuales.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt; Declaración, desencadenamiento y tratamiento de sus propios eventos:&lt;/strong&gt; Todas las ediciones. Los objetos proporcionados por sus componentes pueden desencadenar eventos que otras aplicaciones pueden tratar. Puede tratar los eventos desencadenados por otras aplicaciones, o por sus propios objetos, mediante variables  WithEvents. Los eventos son una alternativa simple a las devoluciones de llamadas asíncronas.&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;Mejoras en el editor de código:&lt;/strong&gt; Todas las ediciones. Bloque con comentarios y Bloque sin comentarios agregan y quitan el carácter de comentario de cada línea de un bloque de texto seleccionado . Lista de  propiedades y métodos presenta una lista desplegable con las propiedades disponibles para cada control. Información rápida automática muestra la sintaxis de instrucciones y funciones. Los indicadores de margen marcan los puntos de interrupción y la instrucción actual; el indicador  Siguiente instrucción se puede arrastrar. Los nuevos botones Ver procedimiento y Ver  módulo completo facilitan ver tanto el procedimiento seleccionado como el código completo de un módulo. Puede arrastrar y colocar desde la ventana de código a la ventana Inspección. La inspección instantánea en el modo de depuración le permite ver los valores actuales como información sobre herramientas.&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;Transferencia de componentes por Internet:&lt;/strong&gt; Ediciones profesional y empresarial. Puede utilizar el Asistente para instalar con  el fin de empaquetar sus componentes de forma específica para su despliegue en el Web.&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;Enumeraciones:&lt;/strong&gt; Todas las ediciones. Con la Edición de aprendizaje, ahora puede definir constantes con nombre relacionadas al agruparlas en un enumerador o Enum. Ediciones profesional y empresarial  Con la edición profesional, es posible incluir tipos enumerados en la biblioteca de tipos de los componentes Active X para su uso por parte de cualquier programador que utilice el componente.&lt;br /&gt;&lt;br /&gt; &lt;strong&gt;Arrastrar y colocar OLE:&lt;/strong&gt; Todas las ediciones. La mayoría de los controles ahora son compatibles con operaciones de arrastrar y colocar entre aplicaciones OLE; por ejemplo, puede arrastrar el contenido de un documento de Word a un control TextBox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-2343726539537734943?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/2343726539537734943/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=2343726539537734943' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2343726539537734943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2343726539537734943'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/09/caractersticas-de-visual-basic-60.html' title='Características de Visual Basic 6.0'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_qqGefALtuG0/SKmmoophBcI/AAAAAAAAABM/vRSMkceeaOs/s72-c/vb.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-6540733039479127259</id><published>2008-08-30T21:16:00.000-07:00</published><updated>2008-08-31T16:40:06.853-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>Eventos en JavaScript</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s1600-h/Javascript.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s320/Javascript.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240524620808372306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Un evento es un mecanismo por el cual podemos detectar las acciones que realiza el usuario y llamar automáticamente a la función que tengamos asociada. Desde esta función realizaremos las acciones que tengamos desarrolladas.&lt;br /&gt;&lt;br /&gt;SINTAXIS:&lt;br /&gt;&lt;br /&gt; &amp;lt;elemento nombre_evento=nombre_funcion([parametros]);&amp;gt; &lt;br /&gt; &lt;br /&gt;&lt;br /&gt;La siguiente lista muestra los eventos y manipuladores de JavaScript:&lt;br /&gt;&lt;br /&gt;EVENTO          SE PRODUCE AL..&lt;br /&gt;onLoad:          Terminar de cargar una página o frame (entrar).&lt;br /&gt;onUnLoad:        Descargar una página o frame (salir).&lt;br /&gt;onAbort:         Abortar la carga de una página.&lt;br /&gt;onError:         Producirse algún error en la carga de la página.&lt;br /&gt;onMouseOver:     Pasar el ratón por encima de un enlace, area o frame.&lt;br /&gt;onMouseOut:      Dejar de estar el ratón encima de un enlace, area o frame.&lt;br /&gt;onMouseMove:     Mover el ratón por el documento.&lt;br /&gt;onKeyUp:         Presionar una tecla.&lt;br /&gt;onClick:         Hacer click con el ratón.&lt;br /&gt;onResize:        Dimensionar la ventana del navegador.&lt;br /&gt;onMove:          Mover la ventana del navegador.&lt;br /&gt;onChange:        Modificar texto en un control de edición. Sucede al perder el foco.&lt;br /&gt;onSelect:        Seleccionar texto en un control de edición.&lt;br /&gt;onFocus:         Situar el foco en un control.&lt;br /&gt;onBlur:          Perder el foco un control.&lt;br /&gt;onSubmit:        Enviar un formulario.&lt;br /&gt;onReset:         Inicializar un formulario.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-6540733039479127259?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/6540733039479127259/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=6540733039479127259' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6540733039479127259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6540733039479127259'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/08/eventos-enjavascript.html' title='Eventos en JavaScript'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s72-c/Javascript.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-6930520074608472101</id><published>2008-08-30T21:10:00.000-07:00</published><updated>2008-08-30T22:11:28.800-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>Sentencias de Control en JavaScript</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s1600-h/Javascript.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s320/Javascript.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240524620808372306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Es la manera que tiene JavaScript de provocar que el flujo de la ejecución avance y se ramifique en función de los cambios y estado de los datos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IF-ELSE: &lt;br /&gt;&lt;br /&gt;La ejecución  atraviesa un conjunto de estados boolean que determinan que bloques de código se ejecutan. Con la utilización de esta sentencia nunca se realizarán ambos bloques de código.&lt;br /&gt;&lt;br /&gt;SINTAXIS: En caso de ser una sola sentencia por parte las llaves son opcionales.&lt;br /&gt;&lt;br /&gt;   if (expresion-booleana)&lt;br /&gt;   {&lt;br /&gt;  Sentencia(s);&lt;br /&gt; {&lt;br /&gt; [else]&lt;br /&gt; {&lt;br /&gt;    Sentencia(s);&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;La cláusula else es opcional. La expresión puede ser de cualquier tipo y más de una (siempre que se unan mediante operadores lógicos).Otra opción posible es la utilización de if  anidados, es decir unos dentro de otros compartiendo la cláusula else.&lt;br /&gt;&lt;br /&gt;SWITCH:&lt;br /&gt;&lt;br /&gt;Es una sentencia muy similar a if-else. Si los valores con los que se compara son números se pone directamente el pero si es texto se debe encerrar entre comillas. La sintaxis de esta sentencia es:&lt;br /&gt;&lt;br /&gt;SINTAXIS:&lt;br /&gt;&lt;br /&gt;   switch (expresión){&lt;br /&gt;  case constante1:&lt;br /&gt;     sentencia(s);&lt;br /&gt;  break;&lt;br /&gt;  case constante2:&lt;br /&gt;     sentencia(s);&lt;br /&gt;  break;&lt;br /&gt;  case constante3:&lt;br /&gt;     sentencia(s);&lt;br /&gt;  break;&lt;br /&gt;  case constanteN:&lt;br /&gt;     sentencia(s); &lt;br /&gt;  break;&lt;br /&gt;  [default:]&lt;br /&gt;   sentencia(s);&lt;br /&gt;   }&lt;br /&gt;El valor de la expresión se compara con cada una de las constantes de la sentencia case, si coincide alguno, se ejecuta el código que le sigue, y cuando ejecuta break sale de este bloque hasta salir del switch. Si ninguno coincide se realiza el bloque default (opcinal), si no lo hay no se ejecuta nada.&lt;br /&gt;&lt;br /&gt;En el caso que varias sentencias case realicen la misma ejecución se pueden agrupar, utilizando una sola sentencia break. Evitamos de este modo duplicar líneas de código. La sintaxis es la siguiente:&lt;br /&gt;&lt;br /&gt;SINTAXIS:&lt;br /&gt;&lt;br /&gt;   switch (expresión){&lt;br /&gt;   case constante1:&lt;br /&gt;case constante5:&lt;br /&gt;     sentencia(s);&lt;br /&gt;   break;&lt;br /&gt;   case constante3:&lt;br /&gt;     sentencia(s);&lt;br /&gt;   break;&lt;br /&gt;   [default:]&lt;br /&gt;    sentencia(s);&lt;br /&gt;   }&lt;br /&gt;WHILE:&lt;br /&gt;&lt;br /&gt;Ejecuta repetidamente el mismo bloque de código hasta que se cumpla una condición de terminación. Hay cuatro partes en todos los bucles. Inicialización, cuerpo, iteración y condición.&lt;br /&gt;&lt;br /&gt;SINTAXIS:&lt;br /&gt;&lt;br /&gt;   [inicialización;]&lt;br /&gt;   while(condicion[es])&lt;br /&gt;{&lt;br /&gt;    cuerpo;&lt;br /&gt;    [iteración;]&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DO..WHILE:&lt;br /&gt;&lt;br /&gt;Es lo mismo que en el caso anterior pero aquí como mínimo siempre se ejecutará el cuerpo del bucle una vez, en el tipo de bucle anterior es posible que no se ejecute ni una sola vez el contenido de este.&lt;br /&gt;&lt;br /&gt;SINTAXIS:&lt;br /&gt;&lt;br /&gt;   [inicialización;]&lt;br /&gt; do{&lt;br /&gt;cuerpo; &lt;br /&gt;[iteración;]&lt;br /&gt;}while(condición);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;FOR:&lt;br /&gt;&lt;br /&gt;Realiza las mismas operaciones que en los casos anteriores pero la sintaxis es una forma compacta. Normalmente la condición para terminar es de tipo numérico. La iteración puede ser cualquier expresión matemática valida. Si de los 3 términos que necesita no se pone ninguno se convierte en un bucle infinito.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SINTAXIS: En caso de ser una sola sentencia por parte las llaves son opcionales.&lt;br /&gt;&lt;br /&gt;for (inicio;cond_fin;iteración)&lt;br /&gt;{&lt;br /&gt;   sentencia(S);&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;Dentro de las sentencias de control se pueden incluir las sentencias de ruptura ya que van muy ligadas a los bucles. Estas sentencias de ruptura son continue y break. A continuación vamos a ver como actúa cada una de ellas&lt;br /&gt;&lt;br /&gt;La sentencia continue lo que hace es ignorar las sentencias que tiene el bucle y saltar directamente a la condición para ver si sigue siendo verdadera, si es así, sigue dentro del bucle, en caso contrario, saldría directamente de el.&lt;br /&gt;&lt;br /&gt;La sentencia break tiene una operatoria más drástica que la sentencia continue, en vez de saltar a la línea de la condición para comprobar su estado, lo que hace es abandonar directamente el bucle dándolo por terminado.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-6930520074608472101?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/6930520074608472101/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=6930520074608472101' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6930520074608472101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/6930520074608472101'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/08/sentencias-de-control-en-javascript.html' title='Sentencias de Control en JavaScript'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s72-c/Javascript.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-2049488438127891790</id><published>2008-08-30T21:07:00.000-07:00</published><updated>2008-08-30T22:08:57.922-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>Operadores en JavaScript</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s1600-h/Javascript.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s320/Javascript.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240524620808372306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;JavaScript define TRES tipos de operadores: aritméticos, relacionales y lógicos. También hay definido un operador para realizar determinadas tareas, como las asignaciones.&lt;br /&gt;&lt;br /&gt;ASIGNACION (=)&lt;br /&gt;&lt;br /&gt;En JavaScript se puede utilizar el operador de asignación en cualquier expresión valida. Solo con utilizar un signo de igualdad se realiza la asignación. El operador destino (parte izquierda)  debe ser siempre una variable, mientras que en la parte derecha puede ser cualquier expresión valida. Es posible realizar asignaciones múltiples, igualar variables entre si  y a un valor.&lt;br /&gt;&lt;br /&gt; SINTAXIS:&lt;br /&gt;&lt;br /&gt;  variable=valor;&lt;br /&gt;  &lt;br /&gt;  variable=variable1;&lt;br /&gt;&lt;br /&gt;  variable=variable1=variable2=variableN=valor;&lt;br /&gt;&lt;br /&gt;ARITMÉTICOS&lt;br /&gt;&lt;br /&gt;Pueden aplicarse a todo tipo de expresiones. Son utilizados para realizar operaciones matemáticas sencillas, aunque uniéndolos se puede realizar cualquier tipo de operaciones. En la siguiente tabla se muestran todos los operadores aritméticos.&lt;br /&gt;&lt;br /&gt;OPERADOR DESCRIPCIÓN&lt;br /&gt;-         Resta.&lt;br /&gt;+         Suma&lt;br /&gt;*         Multiplica&lt;br /&gt;/         Divide&lt;br /&gt;%         Resto de una división&lt;br /&gt;--         Decremento en 1.&lt;br /&gt;++         Incrementa en 1.&lt;br /&gt;vari+=valor Incrementa el valor de vari.&lt;br /&gt;vari-=valor decrementa el valor de vari.&lt;br /&gt;vari*=valor Multiplica el valor de vari.&lt;br /&gt;&lt;br /&gt;LÓGICOS Y RELACIONALES&lt;br /&gt;&lt;br /&gt;Los operadores relacionales hacen referencia a la relación entre unos valores y otros Los lógicos se refiere a la forma  en que esas relaciones pueden conectarse entre si. Los veremos a la par por la estrecha relación en la que trabajan.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  OPERADORES RELACIONALES            OPERADORES LÓGICOS&lt;br /&gt;OPERADOR DESCRIPCIÓN  OPERADOR DESCRIPCIÓN&lt;br /&gt;&lt; Menor que.                &amp;&amp; Y (AND)&lt;br /&gt;&gt; Mayor que.               | | O (OR)&lt;br /&gt;&lt;= Menor o igual.                ¡! NO (NOT)&lt;br /&gt;&gt;= Mayor o igual   &lt;br /&gt;= = Igual   &lt;br /&gt;¡! = Distinto&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-2049488438127891790?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/2049488438127891790/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=2049488438127891790' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2049488438127891790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/2049488438127891790'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/08/operadores-en-javascript.html' title='Operadores en JavaScript'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s72-c/Javascript.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-96651923250774868</id><published>2008-08-30T21:04:00.000-07:00</published><updated>2008-08-30T22:07:11.019-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>Variables en JavaScript</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s1600-h/Javascript.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s320/Javascript.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240524620808372306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Espacio de memoria con un nombre reservado para guardar información mientras la página este cargada. El primer paso para poder trabajar con variables es declararlas, que es lugar donde se les da su nombre y su ámbito. &lt;br /&gt;&lt;br /&gt;Para dar nombre a una variable debemos tener en cuenta las siguientes normas:&lt;br /&gt;&lt;br /&gt;1. No pueden contener espacios.&lt;br /&gt;&lt;br /&gt;2. Distingue entre mayúsculas y minúsculas.&lt;br /&gt;&lt;br /&gt;3. No pueden contener acentos, puntos o cualquier signo gramatical.&lt;br /&gt;&lt;br /&gt;4. No pueden comenzar con un dígito ni contener la letra “ñ”.&lt;br /&gt;&lt;br /&gt;5. Nombre único y exclusivo para cada variable salvo que estén es 2 funciones distintas.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El ámbito de una variable define si la variable se podrá utilizar en cualquier parte del documento (es global). O si solo se podrá utilizar dentro de una función determinada (es local). La declaración de las variables globales se realiza dentro de las etiquetas &amp;lt;script&amp;gt; pero fuera de cualquier función. La declaración de las variables locales se realiza dentro de la función que nos interese usar esa variable.&lt;br /&gt;&lt;br /&gt;La sintaxis para declarar una variable es igual en ambos casos, la única diferencia es el lugar donde las declaramos. La siguiente línea nos muestra como hacerlo:&lt;br /&gt;&lt;br /&gt;var nombre_variable[=valor];&lt;br /&gt;&lt;br /&gt;El tipo de variable es asignado automáticamente por JavaScript. Depende del primer valor que se guarde en la variable. Por tanto los tipos de variable existentes son los que mostramos en la siguiente tabla:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;TIPO         VALORES&lt;br /&gt;numérica Cualquier tipo numérico&lt;br /&gt;boolean         True o False.&lt;br /&gt;String         Texto o letra.&lt;br /&gt;&lt;br /&gt;Otro aspecto importante, es la conversión de datos, que en JavaScript es automática. Transforma los datos de todas la variables en una expresión según el tipo de la primera variable. No es muy segura y puede acarrear muchos problemas.&lt;br /&gt;&lt;br /&gt;EJEMPLO:&lt;br /&gt;&lt;br /&gt; num1=”12”;&lt;br /&gt; num2=10;&lt;br /&gt;&lt;br /&gt; x=num1+num2; // daria como resultado 1210.&lt;br /&gt; y=num2+num1; // daria como resultado 22.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para evitar problemas en las conversiones, se pueden utilizar métodos ya implementados que realizan la conversión de una manera más segura.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;TIPO DE CONVERSION                 SINTAXIS&lt;br /&gt;De texto a numero entero.         var_numerica=parseInt(var_texto);&lt;br /&gt;De texto a coma flotante (decimal). var_numerica=parseFloat(var_texto);&lt;br /&gt;De numérica a texto.                 Es automática sin peligro.&lt;br /&gt;&lt;br /&gt;CONSTANTES (“literales”)&lt;br /&gt;&lt;br /&gt;Los valores iniciales que se les asigna son invariables. Estos no son variables, sino expresiones constantes. Los tipos de literales son los mismos que en las variables, según el primer dato que almacenemos será de un tipo u otro.&lt;br /&gt;&lt;br /&gt;TIPO         VALORES&lt;br /&gt;numérica Cualquier tipo numérico&lt;br /&gt;boolean         True o False.&lt;br /&gt;String         Texto o letra.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-96651923250774868?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/96651923250774868/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=96651923250774868' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/96651923250774868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/96651923250774868'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/08/variables-en-javascript.html' title='Variables en JavaScript'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s72-c/Javascript.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5523525714977873646.post-8461913967383798845</id><published>2008-08-30T21:00:00.000-07:00</published><updated>2008-08-31T15:00:06.501-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><title type='text'>Normas de código en JavaScript</title><content type='html'>&lt;a href="http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s1600-h/Javascript.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s320/Javascript.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5240524620808372306" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Las normas para poder escribir cualquier código de JavaScript se basan en 5 puntos básicos y que debemos cumplir siempre. Estas normas son las siguientes:&lt;br /&gt;&lt;br /&gt;1. Todo el código (sentencias) esta dentro de funciones.&lt;br /&gt;&lt;br /&gt;2. Las funciones se desarrollan entre las etiquetas &amp;lt;script&gt; y &amp;lt;/script&amp;gt;.&lt;br /&gt;&lt;br /&gt;3. Las etiquetas &amp;lt;script&amp;gt; deben colocarse entre las etiquetas &amp;lt;head&amp;gt; y &amp;lt;/head&amp;gt;.&lt;br /&gt;&lt;br /&gt;4. Las etiquetas &amp;lt;title&amp;gt; no pueden estar colocadas entre las de &amp;lt;script&amp;gt;.&lt;br /&gt;&lt;br /&gt;5. La llamada a la función se hace a través de un evento de un elemento del documento.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5523525714977873646-8461913967383798845?l=sharkvr.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sharkvr.blogspot.com/feeds/8461913967383798845/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5523525714977873646&amp;postID=8461913967383798845' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8461913967383798845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5523525714977873646/posts/default/8461913967383798845'/><link rel='alternate' type='text/html' href='http://sharkvr.blogspot.com/2008/08/normas-de-cdigo-en-java.html' title='Normas de código en JavaScript'/><author><name>edgar</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_qqGefALtuG0/SLoVYIv4wFI/AAAAAAAAACk/uRdv-LYtzjU/s72-c/Javascript.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
