Spanish Quitar espacios en blanco

23021959Pepe

Member
Licensed User
Longtime User
Hola de nuevo a todos, estoy intentando quitar los espacios en blanco de un string o cadena pero no consigo dar con la tela.
En Visual Basic tengo una función que lo hace perfectamente pero a la hora de convertirla a B4A no consigo que funcione como tiene que ser.
la función de VB es:
B4X:
Public Function ReplaceCharInStr(sData As String, sR As String, sW As String) As String

    Dim d As Integer
    Dim c As String * 1                        
    Dim tmp As String
   
        For d = 1 To Len(sData)                
                                                
            c = Mid(sData, d, (d + 1))          
           
            If c = sR Then                      
           
                tmp = Mid(sData, 1, d - 1)      
                tmp = tmp & sW                  
                tmp = tmp & Mid(sData, d + 1)  
                sData = tmp                    
               
            End If                              
           
        Next                                    
       
        ReplaceCharInStr = sData                

End Function

El ejemplo seria quitar los espacios en blanco de la cadena, por ejemplo
B4X:
1 2 0 3 5 6
que me debería de dar
B4X:
120356

El código de B4A que he creado
B4X:
Public Sub ReplaceCharInStr(sData As String, sR As String, sW As String) As String

    Dim d As Int
    Dim dd As Int
    Dim ch As String                      
    Dim tmp As String
   
'    dd = Len(sData) 
    dd = sData.Length 

        For d = 1 To dd
            ch = Mid(sData, d, (d + 1))
            If ch = " " Then 
                tmp = Mid(sData, 1, d - 1)
                tmp = tmp & sW 
                tmp = tmp & Mid(sData, d + 1, 0)
                sData = tmp
            End If 
           
        Next
'      ReplaceCharInStr = sData
'        Return ReplaceCharInStr
        Return  sData

End Sub

Sub Mid(Text As String, Start As Int, Length As Int) As String
    Return Text.SubString2(Start - 1, Start+Length - 1)
End Sub

El la linea
B4X:
tmp = tmp & Mid(sData, d + 1, 0)
he tenido que incluir el 0 final (que la VB no figura) por que si no B4A me daba error.

Alguna sugerencia.

Saludos
Pepe
 

23021959Pepe

Member
Licensed User
Longtime User
Se me olvido poner la llamada a la función que es:
B4X:
 ReplaceCharInStr(New, " ", "")

Saludos
 

josete

Member
Licensed User
Longtime User
Hola,prueba con esto y si te funciona modifica la funcion:
B4X:
Dim cadena As String
cadena = "1 9 8 6 5 5"
cadena = cadena.Trim
Msgbox(cadena,"")
 

23021959Pepe

Member
Licensed User
Longtime User
Hola josete, creo que el Trim sola vale para quitar los espacios al principio y al final de una cadena.

Saludos
 
Top