Duda Leer Linea por Linea de Un textBox

Iniciado por NsTeam, 30 Noviembre 2010, 17:57 PM

0 Miembros y 1 Visitante están viendo este tema.

NsTeam

Hola Gente...

Se me surgio un problema y quize acudir a ustedes para ver si me dan una manito :)

Como podria hacer para que un Timer Lea Linea por Linea el contenido de un texbox

me Explico:

en un intevalo de 1 segundo lea linea por linea el contenido de un textbox
y luego al terminar de leer la ultima linea vuelva a leer la primera linea :)

espero dejarme entender... gracias a todos y un fuerte abrazo :)

Psyke1

#1
Yo al menos haria asi:
Código (vb) [Seleccionar]
Option Explicit

Rem Añade un TextBox, un CommandButton y un Timer

Private sTextBoxLines$()
Private lLimit&
Private lLine&

Private Sub Form_Load()
   With Timer1
       .Enabled = False
       .Interval = 1000
   End With
   
   Command1.Caption = "Prueba"
   
   Text1.Text = "Que" & vbCrLf & _
                "vivan" & vbCrLf & _
                "las" & vbCrLf & _
                "ranas"
End Sub

Public Function LoadLines(ByVal sText$) As Boolean
   Erase sTextBoxLines$() : lLine& = 0
   sTextBoxLines$() = Split(sText$, vbCrLf)
   lLimit& = UBound(sTextBoxLines$())
   LoadLines = CBool(lLimit&)
End Function

Private Sub Timer1_Timer()
   MsgBox sTextBoxLines$(lLine&)
   lLine& = lLine& + 1
   If lLine& > lLimit& Then
       Timer1.Enabled = False
       End
   End If
End Sub

Private Sub Command1_Click()
   If LoadLines(Text1.Text) Then
       Timer1.Enabled = True
   End If
End Sub


DoEvents! :P

Stelio Kontos

#2
Para ahorrarte el lío lo que puedes hacer es usar Split y un módulo que haga de timer.
El siguiente código actúa de timer, pero sin tener que cargar el control (en un módulo):
Código (vb) [Seleccionar]
Sub Pause(interval)
Current = Timer
Do While Timer - Current < Val(interval)
DoEvents
Loop
End Sub

Su uso es Pause(intervalo)

Y aquí te dejo un ejemplo que he hecho sobre la marcha:
Código (vb) [Seleccionar]
Dim tArray() As String 'Declaro un array
Text1.Text = "Hola" & vbCrLf & "tio" & vbCrLf & "calla" 'Text1.text multilinea
tArray = Split(Text1.Text, vbCrLf) 'Almaceno en el array lo que hay en cada salto de linea
Do 'Empiezo el bucle
For i = LBound(tArray) To UBound(tArray) 'Esas funciones recorren el array sin saber donde empieza ni donde acaba
       Text2.Text = Text2.Text & tArray(i)  'Opcional, aniade la palabra a otra caja de texto
Pause (1) 'Espero un segundo
Next i
Loop 'El bucle empieza de nuevo