Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 13 su 13
  1. #11
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Il problema sta nello spazio separatore tra la
    parola che riesce ad essere inclusa nel limite dei caratteri
    per riga e quella che eccede.
    VB NET non inserisce uno spazio 'reale', ovvero il carattere
    chr(32) ma il chr(20).
    Rimetti questa funzione al posto della precedente.
    codice:
    Public Function ParseTextBox(RowLen As Integer, RowText As String ) As String
    	
      Dim sRet, sToken As String
      Dim nC As Integer
      Dim sCR as string = Microsoft.VisualBasic.Constants.vbCrLf 
      Dim c20 As String = Microsoft.VisualBasic.chr(20) 
      Dim mRowText As String
    	
    	' Rimpiazza tutti i CRLF con degli spazi
    	' --------------------------------------
    	mRowText = Microsoft.VisualBasic.Replace(RowText, sCR," ") 
    	' Rimpiazza tutti i chr(20) con degli spazi
    	' --------------------------------------
    	mRowText = Microsoft.VisualBasic.Replace(RowText, c20," ") 
    	sRet = ""
    	nC = 0  
    	
    	Do While Len(mRowText) > 0
    		' Se la lunghezza dela strimga rimanente Š minore
    		' della larghezza massima, aggiungo la romanenza ed esco 
    		If Microsoft.VisualBasic.Len(mRowText) < RowLen Then
    			sRet = sRet + sCR + mRowText
    			Exit Do
    		End If 
    
    		if RowLen > nC then 				
    			sToken =Microsoft.VisualBasic.Mid(mRowText,1,(RowLen - nC))
    		Else
    			exit do 
    		End if
    
    		If Microsoft.VisualBasic.Right(sToken,1) <> " "   Then
    			nC = nC + 1
    		Else
    			sRet = sRet + sCR + sToken
    			mRowText = Microsoft.VisualBasic.Mid(mRowText, (RowLen - nC))
    			nC = 0
    		End If
    	Loop
    	Return sRet
    
    End Function
    In questa funzione vengono rimpiazzati anche gli spazi di
    tipo chr(20) con spazi 'veri' (di tipo chr(32)).
    La chiamata resta come ti avevo suggerito :

    codice:
            strDoc = strDoc + ParseTextBox(40, TextBox1.Text) + vbCrLf + vbCrLf

    Ciao,
    Brainjar.
    Ciao, Brainjar

  2. #12
    e vabe mi sa che mi devo proprio rassegnare .
    Ti ringrazio per tutto l'aiuto che mi hai dato Brainjar solo che non va va.
    ora ti spiego il blocco perchè avviene
    se metto una textbox con la funzione fi parsing tutto ok per esempio se mando in stampa cosi funziona tutto perfettamente
    codice:
    Dim fFile As StreamWriter
            Dim strDoc As String = ""
    
    
            strDoc = strDoc + TextBox21.Text + vbCrLf + vbCrLf
            strDoc = strDoc + TextBox24.Text + vbCrLf + vbCrLf
            strDoc = strDoc + TextBox22.Text + vbCrLf + vbCrLf
            strDoc = strDoc + TextBox23.Text + vbCrLf + vbCrLf + vbCrLf
    
            strDoc = strDoc + ParseTextBox(40, TextBox1.Text) + vbCrLf + vbCrLf
            strDoc = strDoc + " " + TextBox11.Text + vbCrLf + vbCrLf
    ma se aggiungo anche gli altri textbox da stampare va in blocco
    per es
    codice:
    Dim fFile As StreamWriter
            Dim strDoc As String = ""
    
    
    strDoc = strDoc + TextBox21.Text + vbCrLf + vbCrLf
            strDoc = strDoc + TextBox24.Text + vbCrLf + vbCrLf
            strDoc = strDoc + TextBox22.Text + vbCrLf + vbCrLf
            strDoc = strDoc + TextBox23.Text + vbCrLf + vbCrLf + vbCrLf
    
            strDoc = strDoc + ParseTextBox(40, TextBox1.Text) + vbCrLf + vbCrLf
            strDoc = strDoc + " " + TextBox11.Text + vbCrLf + vbCrLf
    
            strDoc = strDoc + ParseTextBox(40, TextBox2.Text) + vbCrLf + vbCrLf
            strDoc = strDoc + " " + TextBox12.Text + vbCrLf + vbCrLf
    
            strDoc = strDoc + ParseTextBox(40, TextBox3.Text) + vbCrLf + vbCrLf
            strDoc = strDoc + " " + TextBox13.Text + vbCrLf + vbCrLf
    
            ..... e cosi via fino a 10
    ora non so perchè va in blocco e tanto meno mi va di rompere le scatole a te che sei stato cosi gentile.
    adesso il problema lo sai
    se ti va cerca di aiutarmi altrimenti ti ringrazio lo stesso
    ciao
    resti sempre il numero 1

  3. #13
    Utente di HTML.it L'avatar di Brainjar
    Registrato dal
    Nov 2004
    Messaggi
    1,162
    Allora se la funzione non da errori su un textbox non li darà
    neanche con 10. Questo vuol dire una cosa : non è la funzione
    di parsing a far bloccare il tutto.
    Potrebbe essere qualche carattere strano negli altri text box.
    Più semplicemente potrebbe essere il fatto che via via la
    stringa che vai a comporre strDoc diventa di una lunghezza
    estrema ed ingestibile.
    Prova a cambiare la logica e salvare in append ogni parte
    della stringa che componi, invece di unire i vari pezzi e
    salvarli solo alla fine.

    Ciao,
    Brainjar.
    Ciao, Brainjar

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.