|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Dec 2003
Città: Spoleto (PG)
Messaggi: 293
|
[VB 2005] Dividere contenuto di una TextBox
Salve gente, avrei un problemino, è un giorno intero che ci sbatto la testa, ma nada. Dunque, in una textbox ho il seguente contenuto:
(i dati sono di esempio) Gruppo1, Matricola 1213, Dominio: NT Gruppo1, Matricola 1215, Dominio: NT Gruppo1, Matricola 1218, Dominio: NT Gruppo2, Matricola 1312, Dominio: NT Gruppo2, Matricola 1511, Dominio: NT Gruppo2, Matricola 1616, Dominio: NT Gruppo3, Matricola 1111, Dominio: NT Gruppo3, Matricola 1414, Dominio: NT Gruppo3, Matricola 1614, Dominio: NT ok? bene, a me servirebbe trasformare il contenuto di questa text cosi: Gruppo1 Matricola 1213, Dominio: NT Matricola 1215, Dominio: NT Matricola 1218, Dominio: NT Gruppo2 Matricola 1312, Dominio: NT Matricola 1511, Dominio: NT Matricola 1616, Dominio: NT Gruppo3 Matricola 1111, Dominio: NT Matricola 1414, Dominio: NT Matricola 1614, Dominio: NT come posso fare ? (ho provato con cicli for, do while ecc, ma il risultato al max era: Gruppo1 Matricola 1213, Dominio: NT Gruppo1 Matricola 1215, Dominio: NT Gruppo1 Matricola 1218, Dominio: NT poiche per ogni occorrenza mi ripeta anche il "gruppo"... ![]()
__________________
Affari conclusi con: ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Stai cercando di fare un albero.
Perche' non usare un componente albero? (TreeView) Comunque non ho capito dove stia il problema. Sei tu che ordini e ristampi le cose no? E' sufficiente stampare "Gruppo X" solo se X e' diversa dal valore precedente.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Dec 2003
Città: Spoleto (PG)
Messaggi: 293
|
Alura,
Perche mi servono i dati nell'altra maniera ? Come dice all'inizio, i dati erano fittizi Gruppo1 Matricola 1213, Dominio: NT Matricola 1215, Dominio: NT Matricola 1218, Dominio: NT i dati mi servono cosi per fare il dump su una active directory e debbono per forza essere cosi. il dato FINALE sarebbe una cosa di questo genere: dn: CN=Gruppo1 ,CN=Users,DC=locale,DC=Roma,DC=it changetype: modify replace: member member: CN=1213,CN=Users,DC=locale,DC=Roma,DC=it member: CN=1518,CN=Users,DC=locale,DC=Roma,DC=it mentre io ho questo dato: Gruppo1 member: CN=1213,CN=Users,DC=locale,DC=Roma,DC=it Gruppo1 member: CN=1518,CN=Users,DC=locale,DC=Roma,DC=it
__________________
Affari conclusi con: ![]() Ultima modifica di luxe : 05-06-2008 alle 07:32. |
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Dec 2003
Città: Spoleto (PG)
Messaggi: 293
|
up !.....qualche help !
__________________
Affari conclusi con: ![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Non capisco davvero il problema.
Hai detto che hai: Gruppo1 Matricola 1213, Dominio: NT Matricola 1215, Dominio: NT Matricola 1218, Dominio: NT qualcosa tipo Codice:
for (su tutte le righe) { If (inizia con Gruppo) Scrivi "dn: CN Gruppo, CN Users, ....) Else if (inizia con matricola) Scrivi "member:CN=qualcosa" Else Errore }
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
![]() |
![]() |
![]() |
#6 | |
Member
Iscritto dal: Dec 2003
Città: Spoleto (PG)
Messaggi: 293
|
Quote:
quello che ho io non è Gruppo1 Matricola 1213, Dominio: NT Matricola 1215, Dominio: NT Matricola 1218, Dominio: NT ma bensi: Gruppo1, Matricola 1213, Dominio: NT Gruppo1, Matricola 1215, Dominio: NT Gruppo1, Matricola 1218, Dominio: NT Gruppo2, Matricola 1312, Dominio: NT Gruppo2, Matricola 1511, Dominio: NT Gruppo2, Matricola 1616, Dominio: NT Gruppo3, Matricola 1111, Dominio: NT Gruppo3, Matricola 1414, Dominio: NT Gruppo3, Matricola 1614, Dominio: NT è il risultato finale che dovrebbe essere: Gruppo1 Matricola 1213, Dominio: NT Matricola 1215, Dominio: NT Matricola 1218, Dominio: NT Gruppo2 ecc... ecc... non so se mi sono spiegato bene ! Ti ringrazio infinitamente :-)
__________________
Affari conclusi con: ![]() |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
|
Una soluzione l'avevo gia' proposta
Codice:
vecchiogruppo=""; for(su tutte le righe) { questogruppo=prendo il gruppo della riga corrente con substring if (questogruppo!=vecchiogruppo) Write "Gruppo="+QuestoGruppo Write RestanteParteDellaRiga con Substring vecchiogruppo=questogruppo }
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto. E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test. |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
Il codice è il seguente ( sicuramente può essere ottimizzato e snellito, ma l'ho buttato giù di getto in pochi min. perciò... accontentati ![]() Codice:
Dim strPre As String strPre = TextBox1.Text Dim strPost As String = "" Dim testPre As String = "_" Dim arrayStr() As String arrayStr = stringa.Split(vbCrLf) Dim i As Integer = 0 For i = 0 To arrayStr.GetUpperBound(0) Dim strLinea As String = CStr(arrayStr(i)).Trim If strLinea.StartsWith(vbCrLf) Then strLinea = Mid(strLinea, 2, strLinea.Length - 1) Dim test As String = Mid(strLinea, 1, 7) If test.Equals(testPre) Then strPost = strPost & vbCrLf & Mid(strLinea, test.Length + 3, strLinea.Length - (test.Length + 2)) Else If Not strPost.Equals("") Then strPost = strPost & vbCrLf & vbCrLf strPost = strPost & test strPost = strPost & vbCrLf & Mid(strLinea, test.Length + 3, strLinea.Length - (test.Length + 2)) Else strPost = strPost & test strPost = strPost & vbCrLf & Mid(strLinea, test.Length + 3, strLinea.Length - (test.Length + 2)) End If End If testPre = test Next TextBox2.Text = strPost ![]() |
|
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Dec 2003
Città: Spoleto (PG)
Messaggi: 293
|
Ciao Marco, grazie
ho provato, ma mi da errore qui: arrayStr = stringa.Split(vbCrLf) mi dice che stringa non è stato dichiarato
__________________
Affari conclusi con: ![]() |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
![]() Errore mio, ( eehhh, quando si fanno le cose di fretta... ) ma si rimedia subito : Codice:
Dim strPre As String strPre = TextBox1.Text Dim strPost As String = "" Dim testPre As String = "_" Dim arrayStr() As String arrayStr = strPre.Split(vbCrLf) Dim i As Integer = 0 For i = 0 To arrayStr.GetUpperBound(0) Dim strLinea As String = CStr(arrayStr(i)).Trim If strLinea.StartsWith(vbCrLf) Then strLinea = Mid(strLinea, 2, strLinea.Length - 1) Dim test As String = Mid(strLinea, 1, 7) If test.Equals(testPre) Then strPost = strPost & vbCrLf & Mid(strLinea, test.Length + 3, strLinea.Length - (test.Length + 2)) Else If Not strPost.Equals("") Then strPost = strPost & vbCrLf & vbCrLf strPost = strPost & test strPost = strPost & vbCrLf & Mid(strLinea, test.Length + 3, strLinea.Length - (test.Length + 2)) Else strPost = strPost & test strPost = strPost & vbCrLf & Mid(strLinea, test.Length + 3, strLinea.Length - (test.Length + 2)) End If End If testPre = test Next TextBox2.Text = strPost |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:31.