Muy buenas. Tengo una serie de TextBox con sílabas Y quisiera unirlas para formar palabras, pero estas palabras que se generan, deben de pertenecer a un archivo "*.txt". Necesitaría todas las combinaciones posibles. Gracias de antemano.
Tu problema es bastante extenso de explicar por lo cual lo resumí en un ejemplo, no se que capacidad tendrá puesto que solo probé 3 textbox y una archivo con 4 items. El algoritmo te sirve para cualquier tipo de combinación (también numéricas) Option Explicit Private Const RUTA_DICCIONARIO = "\Diccionario.txt" Public Function funcChequearPalabra(ByVal prmPalabra As String) As Boolean Dim varDatos As String Open App.Path & RUTA_DICCIONARIO For Input As #1 Do While Not EOF(1) Line Input #1, varDatos If varDatos = prmPalabra Then funcChequearPalabra = True Exit Do End If Loop Close #1 End Function Public Function funcCombinarPalabra(ByVal prmSilabas As String, Optional ByVal Pos As Integer = 1) As String Dim loopSilaba As Integer If Pos = Len(prmSilabas) Then If funcChequearPalabra(prmSilabas) = True Then List1.AddItem prmSilabas End If Else For loopSilaba = Pos To Len(prmSilabas) funcCombinarPalabra = funcCombinarPalabra(Left(prmSilabas, Pos - 1) & _ Mid(prmSilabas, loopSilaba, 1) & _ Mid(prmSilabas, Pos, loopSilaba - Pos) & _ Mid(prmSilabas, loopSilaba + 1), Pos + 1) Next End If End Function Private Sub Command1_Click() Dim loopCtrl As Integer Dim varSilabas As String Screen.MousePointer = vbHourglass For loopCtrl = 0 To Text1.Count - 1 varSilabas = varSilabas & Text1(loopCtrl).Text Next loopCtrl Call funcCombinarPalabra(varSilabas) Screen.MousePointer = vbDefault End Sub Suerte .: Gydba :.
Gracias por tu atención y perdona mi ignorancia, pero tengo dos pequeños problemas. El primero es varSilabas = varSilabas & Text1(loopCtrl).Text ¿Se puede poner algo entre paréntesis des pues de un "Text"? Me da error. Y el segundo es el "For loopCtrl = 0 To Text1.Count - 1" El "count" me da error también. Gracias.
Veo que no tenés mucha experiencia en VB. Los problemas que vos me contás son porque ese ejemplo está hecho en base a una matriz de textboxs y de seguro no lo tenés, es decir un grupo de controles textbox que tienen el mismo nombre (de ahí el de familia o matriz de controles). Para referir a cada miembro de esta familia existe una propiedad que se llama index, es decir text1(0) es el control nro 1. Así mismo podemos saber la cantidad de controles de una familia de controles con la propiedad count (el -1 es porque los índices comienzan de 0). Lo que tenés que hacer es poner un textbox con el nombre text1, lo copias con ctrl+c y lo pegas cuantas veces quieras, al primer intento te pregunta si querés crear una matriz, ponele si. No te olvides de poner un list también. PD: En vb todos los controles tienen la posibilidad de manejarse como matriz. Suerte .: Gydba :.
Además de mi falta de experiencia... Mi ignorancia,... Y mi obcecación que no me permite pensar como es debido... Pues eso... Que tienes ( o en tu idioma... tenés ) toda la razón acerca de las matrices. Agradecerte tu preocupación y tu pronta respuesta a la pregunta. Veremos como sale el temita... Un saludo y nuevamente... Gracias