Android Question [SOLVED]writing txt

camolas

Member
Licensed User
Longtime User
Hi,

Please i need hellp on modify a existing txt but i only want to change one line.

example:
B4X:
1
2
3
4

or

1,2,3,4

I want to replace the third position to A and leave the others without any change

B4X:
1
2
A
4

or

1,2,A,4

Its is possible?

Thanks
 

stevel05

Expert
Licensed User
Longtime User
If you don't know the value of the 3rd entry, you can use Regex.Split:

B4X:
Sub FieldReplace(FieldNo As Int,Delim As String,Source As String,ReplacementStr As String) As String

    'Stops arrayindex out of bounds error
    If FieldNo < 0 Then Return Source

    Dim T() As String = Regex.Split(Delim,Source)

    'Stops arrayindex out of bounds error
    If FieldNo >= T.Length Then Return Source

    T(FieldNo) = ReplacementStr

    'Build Return String
    Dim ReturnStr As String
    For i = 0 To T.Length - 1
        ReturnStr =  ReturnStr & T(i)
        If i < T.Length - 1 Then ReturnStr = ReturnStr & Delim
    Next
    Return ReturnStr
End Sub

Use As:

B4X:
    Dim Str As String = "1,2,3,4"
    Log(FieldReplace(2,",",Str,"A")) 'Positions are zero based same as arrays
 
Last edited:
Upvote 0

stevel05

Expert
Licensed User
Longtime User
B4X:
Sub GetField(FieldNo As Int,Delim As String,Source As String) As String
    'Stops arrayindex out of bounds error
    If FieldNo < 0 Then Return ""
   
    Dim T() As String = Regex.Split(Delim,Source)
   
    'Stops arrayindex out of bounds error
    If FieldNo >= T.Length Then Return ""
   
    Return T(FieldNo)
End Sub

Usage:

B4X:
Dim Str As String = "1,2,3,4"
    Dim TexttoReplace As String = GetField(2,",",Str)
    Log(FieldReplace(2,",",Str,"A"))
 
Upvote 0

DonManfred

Expert
Licensed User
Longtime User
I suggest starting at the Beginners Guide and then working trhrough it and all it´s samples to get further. The start at the users guide (all examples here too) then.

It should dont need this thread knowing the basics!
 
Upvote 0

camolas

Member
Licensed User
Longtime User
B4X:
Sub bt_1_Click
    Dim xx As String
    xx = 1
    Stre  = Items(0) & "," &  Items(1) &  "," & xx  & "," &  Items(3)
    File.WriteString(File.DirRootExternal, "TT.txt", _
        Stre)
End Sub

Thanks @stevel05

@Manfred i dont now why every time you reply to my posts you have to implicate...:(
B4X:
https://www.b4x.com/android/forum/threads/solved-tts-service-for-2-activitys.49877/#post-311439
 
Upvote 0

Cableguy

Expert
Licensed User
Longtime User
B4X:
Sub bt_1_Click
    Dim xx As String
    xx = 1
    Stre  = Items(0) & "," &  Items(1) &  "," & xx  & "," &  Items(3)
    File.WriteString(File.DirRootExternal, "TT.txt", _
        Stre)
End Sub

Thanks @stevel05

@Manfred i dont now why every time you reply to my posts you have to implicate...:(
B4X:
https://www.b4x.com/android/forum/threads/solved-tts-service-for-2-activitys.49877/#post-311439

He is not implicating... but there are noob questions... and then there are the "I don't care about the search engine on the top right of the this site" questions...
yours are more on the later category...
 
Upvote 0
Top