• Domingo 8 de Septiembre de 2024, 01:46

Autor Tema:  Sobre Grabar En Un Richbox  (Leído 1279 veces)

Jamaicol

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Sobre Grabar En Un Richbox
« en: Miércoles 18 de Mayo de 2005, 23:37 »
0
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

  • Miembro HIPER activo
  • ****
  • Mensajes: 629
    • Ver Perfil
    • http://www.cpimario.com
Re: Sobre Grabar En Un Richbox
« Respuesta #1 en: Jueves 19 de Mayo de 2005, 03:43 »
0
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
  1. Function WordWrap(Expression As String, Length As Integer) As String
  2.     Dim BufferCrLf() As String
  3.     Dim BufferSpace() As String
  4.     Dim Buffer As String
  5.     Dim k As Long
  6.     Dim j As Long
  7.     Dim Count As Long
  8.     On Error GoTo ErrorWordWrap
  9.     BufferCrLf() = Split(Expression, vbCrLf)
  10.     For k = 0 To UBound(BufferCrLf())
  11.         If Len(BufferCrLf(k)) <= Length Then
  12.             Buffer = Buffer & BufferCrLf(k) & vbCrLf
  13.         Else
  14.             BufferSpace() = Split(BufferCrLf(k), " ")
  15.             Count = 0
  16.             For j = 0 To UBound(BufferSpace())
  17.                 Count = Count + Len(BufferSpace(j)) + 1
  18.                 If (Count <= Length) Then
  19.                     Buffer = Buffer & BufferSpace(j) & " "
  20.                 Else
  21.                     Count = 0
  22.                     Buffer = Buffer & vbCrLf & BufferSpace(j) & " "
  23.                     Count = Len(BufferSpace(j)) + 1
  24.                 End If
  25.             Next j
  26.             Buffer = Buffer & vbCrLf
  27.         End If
  28.     Next k
  29.     WordWrap = Buffer
  30.     Exit Function
  31. ErrorWordWrap:
  32.     'coloca aquí el manejo de errores
  33. End Function
  34.  
  35.  

---------------------
"Corrector Ortográfico de Notas", freeware, utilidad para programadores.
Programado en VB6, con diccionario propio.
http://consultapractica.aztecaonline.net/index2.html

Jamaicol

  • Nuevo Miembro
  • *
  • Mensajes: 22
    • Ver Perfil
Re: Sobre Grabar En Un Richbox
« Respuesta #2 en: Jueves 19 de Mayo de 2005, 10:41 »
0
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.