Hallo,
ik probeer een programma te schrijven waarin ik in een text string een letter (de eerste die men tegenkomt) vervangt door een andere opgegeven letter.
Ik heb 4 text velden (invoer van de tekst txtInvoer, de letter die gezocht wordt txtZoek, de letter die in de plaats komt txtVervang, en een uitvoer veld met het resultaat txtUitvoer)
en een button "btnVervang"
Ik moet hiervoor de functie in een aparte module schrijven met de vorm "Function VervangLetter(strTekst As String, strOudeLetter As String, strNieuweLetter As String) As String"
(In de opgave wordt als tip gegeven om de functie inStr te gebruiken)
Ook moet de tekst langer zijn dan 1 letter en de zoek- en vervangletter moet 1 letter zijn (Len = 1)
ik heb reeds een deel van de code uitgeschreven maar heb hiermee 2 issues:
namelijk, als een letter niet gevonden wordt dan krijg ik met de inStr functie een 0 als waarde, en daar loopt het programma op vast.
Ik heb geprobeerd om een if statement in te bouwen in te functie
if inStr = 0 dan txtUitvoer.text = txtInvoer.text (dus de uitvoer zal hetzelfde zijn als invoer)
else
replace function
Maar dit lukte niet.
Een tweede issue, het uitvoer veld geeft enkel de tekst terug na de positie van de te vervangne letter
VOORBEELD:
dit is een test! (d vervangen door D) -> lukt met mijn huidige code en uitvoerveld wordt "Dit is een test!"
Dit is een test! (d vervangen door t) -> d komt niet voor in de tekst, dus inStr = 0 n dan loopt het progamma vast
Dit is een test! (e vervangen door d) -> lukt maar in uitvoerveld komt "den test!"
De code:
Public Function VervangLetter(strTekst As String, strOudeLetter As String, strNieuweLetter As String) As String
Dim intPositie As Integer
intPositie = InStr(strTekst, strOudeLetter)
VervangLetter = Replace(strTekst, strOudeLetter, strNieuweLetter, intPositie, 1)
End Function
Private Sub btnVervang_Click(sender As Object, e As EventArgs) Handles btnVervang.Click
Dim strNieuw As String
If (Len(txtInvoer.Text) < 1) Or (Len(txtZoek.Text) <> 1) Or (Len(txtVervang.Text) <> 1) Then
Exit Sub
Else
strNieuw = VervangLetter(txtInvoer.Text, txtZoek.Text, txtVervang.Text)
txtUitvoer.Text = strNieuw
End If
End Sub
Alvast bedankt voor de moeite!
Jen
ik probeer een programma te schrijven waarin ik in een text string een letter (de eerste die men tegenkomt) vervangt door een andere opgegeven letter.
Ik heb 4 text velden (invoer van de tekst txtInvoer, de letter die gezocht wordt txtZoek, de letter die in de plaats komt txtVervang, en een uitvoer veld met het resultaat txtUitvoer)
en een button "btnVervang"
Ik moet hiervoor de functie in een aparte module schrijven met de vorm "Function VervangLetter(strTekst As String, strOudeLetter As String, strNieuweLetter As String) As String"
(In de opgave wordt als tip gegeven om de functie inStr te gebruiken)
Ook moet de tekst langer zijn dan 1 letter en de zoek- en vervangletter moet 1 letter zijn (Len = 1)
ik heb reeds een deel van de code uitgeschreven maar heb hiermee 2 issues:
namelijk, als een letter niet gevonden wordt dan krijg ik met de inStr functie een 0 als waarde, en daar loopt het programma op vast.
Ik heb geprobeerd om een if statement in te bouwen in te functie
if inStr = 0 dan txtUitvoer.text = txtInvoer.text (dus de uitvoer zal hetzelfde zijn als invoer)
else
replace function
Maar dit lukte niet.
Een tweede issue, het uitvoer veld geeft enkel de tekst terug na de positie van de te vervangne letter
VOORBEELD:
dit is een test! (d vervangen door D) -> lukt met mijn huidige code en uitvoerveld wordt "Dit is een test!"
Dit is een test! (d vervangen door t) -> d komt niet voor in de tekst, dus inStr = 0 n dan loopt het progamma vast
Dit is een test! (e vervangen door d) -> lukt maar in uitvoerveld komt "den test!"
De code:
Public Function VervangLetter(strTekst As String, strOudeLetter As String, strNieuweLetter As String) As String
Dim intPositie As Integer
intPositie = InStr(strTekst, strOudeLetter)
VervangLetter = Replace(strTekst, strOudeLetter, strNieuweLetter, intPositie, 1)
End Function
Private Sub btnVervang_Click(sender As Object, e As EventArgs) Handles btnVervang.Click
Dim strNieuw As String
If (Len(txtInvoer.Text) < 1) Or (Len(txtZoek.Text) <> 1) Or (Len(txtVervang.Text) <> 1) Then
Exit Sub
Else
strNieuw = VervangLetter(txtInvoer.Text, txtZoek.Text, txtVervang.Text)
txtUitvoer.Text = strNieuw
End If
End Sub
Alvast bedankt voor de moeite!
Jen