• Miércoles 6 de Noviembre de 2024, 00:34

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - IAO

Páginas: 1 [2] 3
26
Visual Basic para principiantes / Re: Problema con TextBox
« en: Domingo 25 de Enero de 2009, 23:58 »
Holaaaaa:

Bueno hasta este momento todo va quedando asi:
Código: Text
  1.  
  2.     If Option1.Value = True Then
  3.         Select Case MSComm1.CommEvent
  4.             Case comEvReceive '''recibo 1 bytes
  5.             '''Recibe y lo almacena en sData.
  6.             sData = MSComm1.Input
  7.            
  8.             'Datos que se quieren modificar. Los retiro de la Variable
  9.             sData = Replace$(sData, "m", "")
  10.             sData = Replace$(sData, "s", "")
  11.             sData = Replace$(sData, "V", "")
  12.             sData = Replace$(sData, Chr(9), "")  '''<--Así quite un TAB que me bloqueaba
  13.            
  14.             Text1 = Text1 & sData 'Derecha
  15.  
  16.             'b = Right(sData, 5) '& b
  17.             'c = b '& c
  18.            
  19.             Text2 = Right(Text2, 6) & Right(sData, 6)
  20.             'Text2 & c 'Mid(Text2, 1, 3) & Derecha
  21.             'Izquierda  '& vbCrLf  'Mid(Text1.Text, 11, 5) 'Text3.Text &
  22.              
  23.         End Select
  24.     End If
  25. End Sub
  26.  
  27.  

Logré quitar una tabulación que me tenía loco también. Se redujo el código considerablemente.
Está trabajando mucho, mucho, mejor, pero sigo sin poder desplazar el resultado en el Text2 multilinea.
A partir de ahora me enfocaré solo a esto. El desplazamiento en el Textbox2.

Bye('_')....

27
Visual Basic para principiantes / Re: Problema con TextBox
« en: Domingo 25 de Enero de 2009, 21:09 »
Holaaaa:

Gracias sr. m0skit0 por su colaboración, pero eso lo he intentado y no me trabaja.
Esta comentado porque coloca unos caracteres raros y luego se detiene en la tercera
linea o segunda y no hace nada más.

Hice esto hace un rato.
Código: Text
  1.  
  2.     If Option1.Value = True Then
  3.         Select Case MSComm1.CommEvent
  4.             Case comEvReceive '''recibo 1 bytes
  5.             '''Recibe y lo almacena en sData.
  6.             sData = MSComm1.Input
  7.            
  8.             'Datos que se quieren modificar. Los retiro de la Variable
  9.             sData = Replace$(sData, "m", "")
  10.             sData = Replace$(sData, "s", "")
  11.             sData = Replace$(sData, "V", "")
  12.            
  13.             'Text2 = Text2 & sData
  14.            
  15.             Paso = 0
  16.             For a = 1 To Len(sData)
  17.             pos = Len(sData) - (a - 1)
  18.               Select Case Paso
  19.                 Case 0
  20.                   If Mid(sData, pos, 1) = " " Then
  21.                     Paso = 1
  22.                     Else
  23.                     Derecha = Mid(sData, pos, 1) & Derecha '''Ultimo de la derecha
  24.                   End If
  25.                 Case 1
  26.                   If Mid(sData, pos, 1) = " " Then
  27.                     Paso = 2
  28.                     Else
  29.                     Centro = Mid(sData, pos, 1) & Centro   '''El del Centro
  30.                   End If
  31.                Case 2
  32.                     Izquierda = Mid(sData, pos, 1) & Izquierda '''Primero de la Izquierda
  33.             End Select
  34.             Next
  35.            
  36.              'Izquierda = " " 'Replace$(Izquierda, "m", "")
  37.             'Centro = " "     'Replace$(sData, "m", "")
  38.            
  39.             Text1 = Text1 & Derecha
  40.             Text2 = Text2 & Derecha  'Izquierda  '& vbCrLf  'Mid(Text1.Text, 11, 5) 'Text3.Text &
  41.              
  42.         End Select
  43.     End If
  44.    
  45. End Sub
  46.  
  47.  

Pero miren en esta captura lo que me pasa:

Me invierte los datos, pero sigue mostrando todo.
Se supone que esta mejora toma los datos de entrada y los separa en una variables
y cuando tomo la variable Derecha y la coloco en el textbox 2, me muestra todo pero invertido.
Esto parece una locura.

Seguiré intentando...

Bye('_')...

29
Visual Basic para principiantes / Re: Problema con TextBox
« en: Domingo 25 de Enero de 2009, 02:21 »
Holaaaaaa:

Okey por fin luego de dos semanas ya puedo ver una luz....
Código: Text
  1.  
  2.     If Option1.Value = True Then
  3.         Select Case MSComm1.CommEvent
  4.             Case comEvReceive
  5.             '''Recibe y lo almacena en sData.
  6.             sData = MSComm1.Input
  7.                
  8.             'Datos que se quieren modificar. Los retiro de la Variable
  9.             sData = Replace$(sData, "m", "")
  10.             sData = Replace$(sData, "s", "")
  11.             sData = Replace$(sData, "V", "")
  12.    
  13.              Text1.Text = Text1.Text & sData    '''& sDatos(i) '& vbCr  'svar2
  14.            
  15.              a = Right(sData, 4)
  16.              b = Right(Text2, 4)
  17.              Text2 = Right(Text2, 4) & a        '''& vbCrLf  'Mid(Text1.Text, 11, 5) 'Text3.Text &
  18.  
  19.         End Select
  20.     End If  
  21. End Sub
  22.  
  23.  

Con este cambio  los datos que recibo les elimino las letras: s, m, V.    !!!BUENIIIIIISIMO
......
    8     tab          00.3
    9     tab         00.1
  10     tab         00.4
  11     tab         00.1
  12     tab         00.1
  13     tab         00.3
......

Pero sigo teniendo el mismo problema, cuando uso el Right(sData, 4) o  Right(a, 4),, me muestra todo el texto que ingresa menos los caracteres que eliminé.
Text2 = Right(Text2, 4) & Right(a, 4) --> de este modo me muestra como quiero ( 00.3 ) pero siempre en la
primera linea del TextBox, no me lo desplaza hacia bajo del textbox.

Bueno sigo intentando....

Bye('_').....

30
Visual Basic para principiantes / Problema con TextBox y ListBox Resuelto..
« en: Sábado 24 de Enero de 2009, 21:18 »
Hola para todos...

Amigos tengo un pequeño inconveniente, he buscado por todas partes algo similar pero no logro
dar con la solución a esto.

Tengo recibiendo por el MSCOMM unos datos en formato texto y los coloco en un TextBox.
Todo trabaja bien hasta allí.
Al tratar de operar o manipular el texto en dicho control se tranca la comunicación o no me muestra nada
el el segundo textbox.

Un poco de código, para hacerme entender.
Código: Text
  1.  
  2.  If Option1.Value = True Then
  3.         Select Case MSComm1.CommEvent
  4.             Case comEvReceive
  5.             '''Recibe y lo almacena en sData.
  6.             sData = MSComm1.Input
  7.                         
  8.             For i = 1 To Len(sData)
  9.             'svar1 = Mid$(sData, i, 1)
  10.             svar2 = sData
  11.             'svar1 = Mid(svar1, 12, 4)
  12.             sDatos(i) = sDatos(i) & svar2
  13.             Text1.Text = Text1.Text & sDatos(i)
  14.             Next i
  15.            
  16.             For j = 1 To Len(sData)
  17.             svar1 = svar1 & sDatos(j)
  18.             'svar3 = Mid(svar1, 11, 5)
  19.             Text3.Text = Text3.Text + sDatos(j)
  20.             Next j
  21.            
  22.         End Select
  23.      End If
  24.    
  25. End Sub          
  26.  
  27.  

Puede que este haciendo algo mal, tengo muchos intentos de todo tipo, pero ninguno me resulta.
No estoy seguro si el   svar3 = Mid(svar1, 11, 5) funciona con los textbox. Estoy frustrado de verdad.
Yo recibo estos datos por el Pto Serial:
......
     8ms    00.3mV
     9ms    00.1mV
    10ms    00.4mV
    11ms    00.1mV
    12ms    00.1mV
    13ms    00.3mV
......
Y lo que quiero tomar y meterlo en una variable o arreglo es lo que está en color azul, para graficarlo.
Me parece que debo mandar esto a un archivo de texto.txt, y manipularlo desde el archivo pero lo veo
como infuncional.
No puedo modificar lo recibido, porque es un Multimetro Digital que envía en ese formato.
Puede alguien entender esto y ayudarme?

Cualquier comentario, o ayuda lo agradecería muy grandemente.....

Bye('_')....

Nota: Perdón aquí dejo un link del codigo VB6 funcionando... Pero sin manipular el TextBox.
http://www.box.net/shared/lp89o3rrdg

31
Visual Basic para principiantes / Re: De Access A Txt
« en: Viernes 9 de Mayo de 2008, 20:16 »
Holaaaa:

Aquí dejo el programa mejorado.
Ahora son dos ejemplos con diferente método. Espero puedan entenderlo.
El ejemplo8 lo mejoré y comenté por donde pude para que se entienda mejor.
Ya no me da el error del post anterior.
Ejemplo 8 y 9

Link documento Schema.ini, muy bueno.

Bye('_

32
Visual Basic para principiantes / De Access A Txt
« en: Domingo 13 de Abril de 2008, 23:52 »
Holaaaa:
De una Base de Datos Access pasar a .TXT el contenido.
Estuve mucho tiempo intentando hacer este ejemplito. No se consigue mucha información y la que hay es medio confusa.
Citar
Solo tengo que añadir :
Debe de estar referenciado Microsoft DAO 3.6 Object Library  -- En proyecto referencias

Da un un error de: Separador de campos coincide con el separador decimal o de texto. (Ver .GIF el error.)
Quité este error pasando la configuración regional a Inglés.
Como evitar esto, todavía no lo he resuelto.

Es un ejemplo para que tengan un poco más claro como hacerlo.

Hay un archivo que debemos aprender a manejar que es el ---Schema.ini --- y es importante para su correcta ejecución.

Espero les sirva de algo en el futuro....

Bye('_').

33
Visual Basic para principiantes / Re: Leer Puerto Paralelo Con Vbasic
« en: Miércoles 10 de Octubre de 2007, 22:26 »
Holaaaaaa:

Aquí te dejo link para que bajes unos programas que hice hace tiempo y te guies.
Monitor LPT

Y este otro que es para manipularlo.
Enviando a LPT

Espero te sirva y colabores cuando logres algo interesante estimado amigo.

Saludos y mis respetos.....

Bye('_')

34
Visual Basic para principiantes / Re: Interaccion Vb Y Excel
« en: Jueves 4 de Octubre de 2007, 17:21 »
Hola:

Sra Srta. norita:
Si es posible hacer que VB tome datos de un rango y los pase a un formato .TXT por dar un ejemplo.
Estoy trabajando en algo parecido y debe guardarme los datos en columnas dentro del .TXT

La segunda pregunta no la entendí, me disculpa.

Saludos....

Bye('_').

35
Visual Basic para principiantes / Re: Registros Dentro De Un Txt.
« en: Miércoles 3 de Octubre de 2007, 15:29 »
Holaaaaaaaa:

Sr. cpmario:
Felicitaciones, usted es lo máximo. La ayuda fue fantástica, mejor de lo que pensaba.  Usted es un cerebro o mejor dicho 2 cerebros. ;)

Okey.
Aquí les paso el codigo del programa que escribe un archivo de texto de unos datos que recibió por RS232 y luego lo grafica en una hoja de cálculo Excel.
Solo es un ejemplo para guiarse, no soy un graaaan programador.
Esto funciona y se puede adaptar a sus conveniencias.

Originalmente fue hecho para recibir unos datos de una calculadora HP48/50g, se que puede adaptarse a otros objetivos.
Lea un txt dentro del .ZIP para entender un poco más.

Bye('_').

36
Visual Basic para principiantes / Re: Registros Dentro De Un Txt.
« en: Martes 2 de Octubre de 2007, 20:43 »
Holaaaaaa:

Sr. cpmario:
Muchas gracias por responder y por su zip.

Hice una prueba con mi archivo RS232.dat que tiene unos espacios en blanco y me tomó solo las líneas que tenían contenido. Esta mejor de lo que pensaba.

En realidad le digo, que nunca pensé fuera tan complicado como esta en su ejemplo. Me imaginaba algo más sencillo.
Voy a tratar de hacer la combinación de lo suyo más lo mio, para ver que tal me vá.

Lo que tengo es un programa que toma unos valores del RS232.dat y lo lleva a una hoja de Excel para graficarlo. Es bien simpático  el programa. Voy a terminarlo y se los paso para compartir y aprender.

No encuentro palabras para tantos agradecimientos.
Gracias = Millón^Millón*Millón^Millón. :)


Bye('_').

37
Visual Basic para principiantes / Registros Dentro De Un Txt.
« en: Martes 2 de Octubre de 2007, 15:49 »
Hola para todos.
Amigos estoy atrapado en una tontería que no consigo la solución.

Tengo un archivo.dat (es un .TXT) que tiene varios números de 8 caracteres de longitud. En el pueden haber 20, 40, 100 ó XX registros de números guardados.
La pregunta es:
¿Como hago para saber la cantidad de registros guardados en ese archivo.dat?
Esa cantidad de registros es para colocarla en una Variable y luego poder hacer un: FOR 1 to Variable
He intentado varias formas pero no doy con la solución.
Si alguno me pudiera ayudar a resolver esto, le estaría muy agradecido.

Este es uno de mis fallidos intentos. Está un poco confuso como yo.
'''Aquí debo hacer un Get y un For para leer datos en el .Dat
Dim MiCar As String
Open "RS232.dat" For Random As #1 'Len = Len(MiCar)  'Len("RS232.dat")

MiCar = String(41, " ")
 Do While Not EOF(1)               '''Repite hasta el final del archivo.
    Get #1, 8, MiCar      
   'MiCar = Left(Input(1, #1), 8)    '''Lee el siguiente carácter de datos.
   For iCol = 1 To 41 'Asc(MiCar) '41
   Input #1, varLinea
   Next iCol
Loop
Close #1   ' Cierra el archivo.

El programa me funciona, pero debo abrir el archivo.dat contar manualmente cuantos numeros hay,
luego voy al programa y en el "For iCol = 1 To 41" <--Cambio este último número y así trabaja
sin problemas. Como pueden ver es un fastidio, abrir y contar, cambiar y ejecutar.

Este es el original sin cambios.
    Open "RS232.dat" For Input As #2                    '''Abre el archivo para lectura.
    For iCol = 1 To 41  '2 '50 '24 '52         '''armo un contador
      Input #2, varLinea                            '''meto en la variable varLinea cada dato
      aTemp(iCol) = varLinea                        '''paso al ARRAY el valor leído
    Next iCol                                       '''incremento el contador y sigo
    Close #2


Por favor si alguien sabe como hacerlo, les agradecería el auxilio que pudieran darme.
Si gustan, al finalizarlo les paso el programita completo, es bien ponqueto, simpático pués.

Bye('_').

38
Visual Basic 6.0 e inferiores / Re: Visual Basic Para Linux
« en: Sábado 15 de Septiembre de 2007, 20:51 »
Holaaa:

El sr. RadicalEd, tiene toda la razón.
Ese es como VB de Linux.

Bye('_').

39
ASM (Ensamblador) / Re: ñ Ascii
« en: Martes 12 de Diciembre de 2006, 13:42 »
Hola a todos:

Sr. beach87:
Trata de hacerte un programa, que muestre todo el codigo ascii en pantalla.
Luego si aparece ese caracter que buscas, vas contando en que posición está.

Me pasó algo parecido con una PALM Zire72, y así lo solucioné.

Puedes hacerlo en Basic, que me imagino será mas facil de programar.


Bye('_').

40
ASM (Ensamblador) / Re: Control Del Lpt En Modo Epp
« en: Sábado 7 de Octubre de 2006, 00:51 »
Hola a todos...

Sr. Davolo.
Si gusta, dese una mirada por:
http://foros.solocodigo.com/index.php?showtopic=19470

Dentro hay unos ejemplos para DOS y WIndows.
Con eso puedes guiarte.

Bye('_').

41
ASM (Ensamblador) / Re: Lpt Archivo Fuente
« en: Viernes 19 de Mayo de 2006, 20:15 »
Hola para todos.
Aquí les mando un "Link" con programas fuentes para el LPT.

Hay unas carpetas para DOS y otras para Windows.
Las que son para Windows funcionan en Win98, WinXp y 2000.

Todos los programas se compilaron con Masm32.
Menos los de DOS, que usé Masm para 16 bits.

Los mismos programas que estan en el cartel anterior, estan con sus
cabeceras y modifcaciones para Masm ensamblador.

Espero puedan disfrutarlos.
Puedes hacer con esos programas lo que quieras. (mejorarlos, borrarlos, tutoriales, etc.)
Se los estoy regalando. Te lo pongo facilito, para que aprendas.
Fue un año de trabajo y estudio para terminar todo eso.

http://www.radasm.com/projects/Led-y-Asm.zip

No puedo adjuntar archivo, es un poco grande. Disculpen.
Usar el Link.
Bye('_').

42
ASM (Ensamblador) / Lpt Archivo Fuente
« en: Martes 24 de Enero de 2006, 16:31 »
Hola a todos.
Lamento que cerraran la discusión del puerto serial.

Aqui les mando unos ejemplos del puerto paralelo.

Ojo - Ojo - Ojo  Los archivos trabajan Solo con el EMU8086 o
con Micro-Assembler (Gratis). Estos emulan y compilan.
La ventaja, es que no hace falta usar code segment, data segment, es màs
fàcil en ese sentido.

Si deseas pasarlo a Tasm o Masm debes hacer algunos cambios.
Solo hay que colocar al principio del programa las directivas, que
corresponden al Tasm o Masm



Ya pronto estaré más frecuente y abriremos otro serial port.

43
ASM (Ensamblador) / Re: Encender Leds Desde El Puerto Serial
« en: Domingo 4 de Diciembre de 2005, 18:12 »
Hola a todos.
Amigo en unos Dias te lo hago llegar, he estado retirado por
remodelaciones del local comercial, pero pronto estaré de vuelta.

Chao ('-').

44
ASM (Ensamblador) / Re: Encender Leds Desde El Puerto Serial
« en: Jueves 20 de Octubre de 2005, 22:46 »
Hola....

Por problemas de cambio de empleo y estudio, he estado ausente.

Eli, espero estes bièn.

Aunque no he podido estar aquì por varias razones, estoy aplicado haciendo un
proyecto con unos UART (6402 ò 8250A), que es la forma màs antigua de hacerlo.

Una opciòn màs facil, es usar un Pic microcontrolador, como dice nuestra colega.

Les repito que es realmente complicado, he tenido que documentarme de màs.
Estoy a punto de comprar dos libros:
(Serial Port Complete y Parallel Port Complete)

En lo que tenga algo màs concreto, se los paso. Mientras, hay que esperar un poco.

Les voy a comentar un poco:
1.- Armar un cable tipo Null Modem.
Ya que se usa en DTE (Data Terminal Equipment).
Tambien hay DCE (Data Communication Equipment).
Estas son dos de las formas de comunicaciòn del RS-232. (despuès ampliarè esto).
2.- Tratar de tener un Generador Rangos de Baudios. (Hardware)
Para sincronizar la comunicaciòn del UART con el PC.
(Recordar que la comunicaciòn es Asincrona o Sin Clock)
3.- Conversor de niveles Rs232 a TTL. (Hardware)
4.- Hacer la integraciòn de los dispositivos anexos. (Hardware)
5.- Utilizar el UART configurandolo para su uso. (Software)
Hay que utilzar unos registros, IRQ, y otros como: IER, IIR, FCR, LCR,
 MCR, LSR Y MSR. (No se asusten, lo explicarè)
6.- Programa para el funcionamiento en conjunto. (Software)
Aquì hay que ver si se hace la programaciòn por POLLING que es màs lento
o usando el metodo de INTERRUPCION.

Bueno eso es lo que màs recuerdo por los momentos. Como les dije es un poco
complicado, màs no difìcil. Es cosa de ponerle empeño y lo lograràs.
Es todo por hoy.

Saludos a todos. (Especiales saludos para Eli)

45
ASM (Ensamblador) / Re: Ide Para Nasm
« en: Lunes 26 de Septiembre de 2005, 20:02 »
Hola.....

Particularmente te recomiendo RADASM
http://radasm.visualassembler.com/

Es graatiss, configurable, con fuentes.
Visita la pagina, pienso que te gustará.

Sobre un buen manual de Asembler el: AoA
Art of Assembler (en ingles) es muy bueno
para mi concepto, pero debes comenzar a leerlo
desde el capitulo 5.

Chao ('-')....

46
ASM (Ensamblador) / Re: Encender Leds Desde El Puerto Serial
« en: Viernes 2 de Septiembre de 2005, 22:25 »
Hola..

Okey,
Para encender unos leds por el puerto serial.
Aquí les envío una forma de hacerlo. Debo decirles que no es algo fácil. Realmente es complicado.

Deben estar pendiente de:
El transmisor(PC) y receptor(Circuito) deben estar al mismo rango de baudios.
Cambios de voltaje, pueden variar los baudios. Conecte a 5 voltios.
En este circuito el CLOCK esta a 9600 HZ. aproximadamente.
El requiere 2 bits de tiempo muerto para el stop.
Recuerde conectar la GND del computador con el Circuito.
O-8-T-P-H-Ñ-X fue lo que utilice, para enviar por el PTO serial.

EL circuito me ha funcionando. Estoy preparando otro mejor.
Componentes:
Chips: un 4011, un 4013, un 4017, un 74LS164
Tran: un BC547, un 2N3904.

Disculpen lo corto, pero estoy apurado. Escriba cualquier
pregunta o sugerencia. Sino entiende algo lo discutimos.

Saludos a todos.

47
ASM (Ensamblador) / Re: Encender Leds Desde El Puerto Serial
« en: Jueves 25 de Agosto de 2005, 16:56 »
Hola...

Hola "Eli"

Puedes conectarlo directo, pero lo ideal es colocar 2 transistores o
el famoso MAX232 (muy costoso).

En realidad, el depende de la entrada que dice clock. Que sería: sincronizado con el clock. Hay que colocarle una señal clock de 1 a 10 Hz, que se puede hacer con el no menos famoso 555.

El circuito funciona. Tiene un inconveniente.
El chip 74LS374, muestra la información en nibble.

Voy a eleborar uno, que preste el servicio solicitado. A mí me interesa mucho.
Siempre me digo después lo hago  y pienso que yá llego el momento.

El otro problema es que yo trabajo con emuladores. Me fastidia armar en el protoboard para hacer pruebas. Pero tendré que hacerlo.
En unos días les  paso el zip.

Chao ('-').

48
ASM (Ensamblador) / Re: Encender Leds Desde El Puerto Serial
« en: Miércoles 24 de Agosto de 2005, 21:05 »
Hola..

Aquí está, el esquemático (jpg).

Disculpa, pero no pude escanear mejor.

Chao ('-').

49
ASM (Ensamblador) / Re: Encender Leds Desde El Puerto Serial
« en: Miércoles 24 de Agosto de 2005, 16:17 »
Hola..

Si lo puedes hacer.
El problema es que, debes convertir la señal Serial a Paralelo.
Con un chip, que no recuerdo.
Si te sirve de algo, a esta fecha. Luego te paso el esquema.

Chao ('-').

50
ASM (Ensamblador) / Re: Cual Es El Mejor Ensamblador Para Windows
« en: Martes 23 de Agosto de 2005, 23:59 »
Hola..
-No soy un gran programdor. Pero lo que buscas,  puedes encotrarlo con:
Masm32, HLA, GAS, Nasm. Pienso que son de lo Mejor.

-Particularmente Uso Masm32. Pero pienso que a futuro me cambiaré para HLA.
-Si lees un poco de inglés, que me imagino que sí, usa este link:
http://webster.cs.ucr.edu/AsmTools/WhichAsm.html

http://webster.cs.ucr.edu/AsmTools/index.html

-Con assembler, te espera un trabajo duro,  pero maravilloso.
-Particularmente, no me arrepiento. He logrado cosas que con C y VC,
no pude lograr. (Por Desconocimiento.)

-Cuando te decidas, lee este tutorial:
http://mipagina.cantv.net/numetorl869/tut_es.htm

-Si deseas un IDE, para trabajar mejor con ensamblador:
http://www.radasm.com   Gratis. Para mi el Mejor.

-Te estoy poniendo todo como: Pan a Piquito. Usted tome la decisión.

Nos vemos.
"Eli" si lees esto, Saludos. Te recuerdo con cariño.

Chao ('-').

Páginas: 1 [2] 3