Originariamente inviato da Luciano79
ciao,
non ho analizzato tutto il codice perchè è sbagliato già in partenza come logica: dividendo la stringa in 3 stringhe senza chiederti se l'ultimo carattere è uno spazio (per esempio dividi la stringa 1 dalla 2 al carattere 47, chi ti dice che lì non c'è una lettera?) rischi di spezzare le parole.
Non è sbagliato,ne illogico anche se all'inizio del codice puo' sembrare...ma se leggi il codice finale vedi che anche se l'ultimo carattere di una stringa è uno spazio o se le parole si spezzano tra un array e l'altro, poi riunisco tutto con i 3 cicli for e con la formattazione finale delle stringhe!...ecco il codice finale
codice:
For a1 = 0 To contarray1 - 1
str1 = str1 & "-" & array1(a1)
Next
For a2 = 1 To contarray2 - 1
str2 = str2 & "-" & array2(a2)
Next
For a3 = 1 To contarray3
str3 = str3 & "-" & array3(a3)
Next
ds1 = str1 & vbCrLf & array1(contarray1) & array2(0) & " " & str2 & vbCrLf & array2(contarray2) & array3(0) & " " & str3
ds1 = Replace(ds1, " ", "")
ds1 = Replace(ds1, "-", " ")
ds1 = Trim(ds1)
Se hai tempo fai una prova...vedrai che tutto è formattato nel giusto modo, solo che la seconda riga riporta anche alcune parole della terza riga!
E non dovrebbe succedere! E' questo il mio problema
Ho provato allora a disossare il codice per vedere dov'era il problema, ho tolto i 3 cicli, le tre variabili contarray, ho fatto 3 join(array) e poi ho passato tutto su una stringa!
e il problema persiste, cioè alcune parole del terzo array sono presenti anche alla fine del secondo array! e questo non dovrebbe accadere!
Ti ringrazio tanto per il tuo codice, ma volevo capire cosa non va nel mio, visto che usando solo 2 array tutto va alla perfezione, ma usandone 3 capita che quando estraggo le parole dagli array, le parole contenute nel terzo sono presenti anche nel secondo!!e non me ne capacito!