Programación General > Visual Basic 6.0 e inferiores

 Sobre Grabar En Un Richbox

(1/1)

Jamaicol:
A ver, se que soy un cansino y un pesao, pero abro este nuevo foro a ver si algun iluminado me ilumina el camino y tal, bueno, al tema, el post de abajo sobre los margenes es mio, y lo de los margenes esta resueltisimo (gracias a CPmario, un verdadero makina) pero el problema que tengo ahora es que yo quiero guardar el texto como texto plano, pero claro quiero que me respeste el texto con las frases que se van haciendo en la hoja que yo veo, esto es, el texto cuando llega al margen, salta a la linea de abajo, creando una nueva linea, pero cuando lo guardo en un texto plano, me sale solo una linea larguisimaaaaa, quiero que me respete esos saltos en el archivo de texto, o sea, que en vez de un fin de linea inexistente me inserte un retorno de carro al llegar al margen derecho.
No se si me he explicado, si queda alguna duda, pues no dudeis en preguntar. :lightsabre:

cpmario:
Una manera de abordar tu problema es que antes de guardar el documento lo modifiques con la función WordWrap, la obtuve en la red y la adapté a mis programas.

Llama a la función WordWrap como el siguiente ejemplo, toma en cuenta que el número 40 es el tamaño de la línea (en caracteres).

txtRtf.Text = WordWrap(txtRtf.Text, 40)


--- Código: Text ---Function WordWrap(Expression As String, Length As Integer) As String    Dim BufferCrLf() As String    Dim BufferSpace() As String    Dim Buffer As String    Dim k As Long    Dim j As Long    Dim Count As Long    On Error GoTo ErrorWordWrap    BufferCrLf() = Split(Expression, vbCrLf)    For k = 0 To UBound(BufferCrLf())        If Len(BufferCrLf(k)) <= Length Then            Buffer = Buffer & BufferCrLf(k) & vbCrLf        Else            BufferSpace() = Split(BufferCrLf(k), " ")            Count = 0            For j = 0 To UBound(BufferSpace())                Count = Count + Len(BufferSpace(j)) + 1                If (Count <= Length) Then                    Buffer = Buffer & BufferSpace(j) & " "                Else                    Count = 0                    Buffer = Buffer & vbCrLf & BufferSpace(j) & " "                    Count = Len(BufferSpace(j)) + 1                End If            Next j            Buffer = Buffer & vbCrLf        End If    Next k    WordWrap = Buffer    Exit FunctionErrorWordWrap:    'coloca aquí el manejo de erroresEnd Function  
---------------------
"Corrector Ortográfico de Notas", freeware, utilidad para programadores.
Programado en VB6, con diccionario propio.
http://consultapractica.aztecaonline.net/index2.html

Jamaicol:
La funcion esta genial, pero ¿que pasa cuando las mayusculas ocupan mas que las minusculas?(que es lo que pasa) tendria que ser algo asi pero no para caracteres si no
para cm. De todas formas he pensado que de alguna forma ha de indicar el programa a la text box que salte de linea (con un caracter especial) si ese al guardar lo sustituyo por el chr(13) estaria solucionado, pero vamos no se por donde empezar a buscar ni na de na.

Navegación

[0] Índice de Mensajes

Ir a la versión completa