66 lines
2.1 KiB
Markdown
66 lines
2.1 KiB
Markdown
|
|
||
|
La función `ReemplazarSaltosLinea` hace lo siguiente:
|
||
|
|
||
|
1. Recorre el texto carácter por carácter
|
||
|
2. Cuando encuentra un salto de línea (código ASCII 10 o 13), verifica:
|
||
|
- Si el siguiente carácter NO es un espacio
|
||
|
- Y si el último carácter agregado NO es un espacio
|
||
|
3. Solo en ese caso, reemplaza el salto de línea por un espacio
|
||
|
|
||
|
|
||
|
```pascal
|
||
|
|
||
|
Public Function ReemplazarSaltosLinea(texto As String) As String
|
||
|
' Declaración de variables
|
||
|
Dim resultado As String
|
||
|
Dim i As Long
|
||
|
Dim longitudTexto As Long
|
||
|
Dim caracterActual As String
|
||
|
Dim caracterSiguiente As String
|
||
|
|
||
|
' Inicializar variables
|
||
|
resultado = ""
|
||
|
longitudTexto = Len(texto)
|
||
|
|
||
|
' Recorrer el texto caracter por caracter
|
||
|
For i = 1 To longitudTexto
|
||
|
caracterActual = Mid(texto, i, 1)
|
||
|
|
||
|
' Si no es el último caracter, obtener el siguiente
|
||
|
If i < longitudTexto Then
|
||
|
caracterSiguiente = Mid(texto, i + 1, 1)
|
||
|
Else
|
||
|
caracterSiguiente = ""
|
||
|
End If
|
||
|
|
||
|
' Verificar si el caracter actual es un salto de línea
|
||
|
If Asc(caracterActual) = 10 Or Asc(caracterActual) = 13 Then
|
||
|
' Si el siguiente caracter no es un espacio y el último caracter agregado no es un espacio
|
||
|
If caracterSiguiente <> " " And Right(resultado, 1) <> " " Then
|
||
|
resultado = resultado & " "
|
||
|
End If
|
||
|
Else
|
||
|
resultado = resultado & caracterActual
|
||
|
End If
|
||
|
Next i
|
||
|
|
||
|
ReemplazarSaltosLinea = resultado
|
||
|
End Function
|
||
|
|
||
|
' Función de prueba
|
||
|
Sub ProbarReemplazarSaltosLinea()
|
||
|
' Casos de prueba
|
||
|
Dim texto1 As String
|
||
|
texto1 = "Hola" & vbCrLf & "mundo"
|
||
|
Debug.Print "Prueba 1: " & ReemplazarSaltosLinea(texto1) ' Debería imprimir: "Hola mundo"
|
||
|
|
||
|
Dim texto2 As String
|
||
|
texto2 = "Hola " & vbCrLf & "mundo"
|
||
|
Debug.Print "Prueba 2: " & ReemplazarSaltosLinea(texto2) ' Debería imprimir: "Hola mundo"
|
||
|
|
||
|
Dim texto3 As String
|
||
|
texto3 = "Hola" & vbCrLf & vbCrLf & "mundo"
|
||
|
Debug.Print "Prueba 3: " & ReemplazarSaltosLinea(texto3) ' Debería imprimir: "Hola mundo"
|
||
|
End Sub
|
||
|
|
||
|
```
|