Gå til innhold

Forandre deler av en skrevet tekst med vb


Anbefalte innlegg

Videoannonse
Annonse

Ikke umulig. Du kan antagentlig bruke funksjonen Replace til dette formålet. Hvis du f.els vil erstatte alle P-ene til bokstaven K, kan du bruke denne koden:

 

txtText.Text = Replace(txtText.Text, "p", "k", , , vbTextCompare)

 

Du kan bruke vbBinaryCompare hvis du ønsker at det skal gjøres forskjell på store og små bokstaver.

 

Håper dette hjalp.

Lenke til kommentar

String manipulering:

 

Mid() gjør at du kan hente en spesifikk del ut av en string

Left() gjør at du kan hente begynnelsen av en string

Right() gjør at du kan hente slutten av en string

Replace() gjør at du kan bytte ut en del av en string

LCase() Gjør om til lower case (små bokstaver)

UCase() gjør om til upper case (store bokstaver)

Trim() Fjerner mellomrom fra begynnelsen og slutten av en string

RTrim() Samme som over, men lar begynnelsen være

LTrim() Nesten samme som over, bare omvendt, på en måte.

Split() Deler en string opp i et array

InStr() Leter etter en string i en annen string

Len() Gir lengden av en string

 

Hvordan disse skal brukes må du finne ut av

Lenke til kommentar

skrev denne koden;

Replace(txtHtmlmal.txt, "tittelen", "(txtTittel)", , , vbTextCompare)

men programmet vil at jeg skal skrive "=" og en expression..

 

kan noen finne en feil der?

ps. bruker foreløpig bare vb i word :blush:

skal snart få meg noe ordenlig..

så snart pappa godtar det..

Endret av toss
Lenke til kommentar

Jeg kan vel legge til at Mid er mer enn en funksjon, den kan faktisk brukes som en syntaks. Hvis du vil endre den første bokstaven i en streng til stor bokstav kan du gjøre slik:

 

Dim sTest As String

' Gi strengen et eksempelinnhold
sTest = "hello world"

' Her utfører vi selve konverteringen
Mid(sTest, 1, 1) = UCase(Mid(sTest, 1, 1))

' Hvis resultatet
MsgBox sTest

 

Hvis du ønsker å gjøre hver bokstav i hvert ord til stor bokstav, kan du bruke denne koden:

 

MsgBox StrConv("hello world", vbProperCase)

 

Flere funksjoner:

 

InStrRev() - Som InStr(), bare her letter den etter strenger fra slutten.

StrReverse() - Gjør en streng omvendt, dvs. hus blir til suh

Lenke til kommentar
skrev denne koden;

Replace(txtHtmlmal.txt, "tittelen", "(txtTittel)", , , vbTextCompare)

men programmet vil at jeg skal skrive "=" og en expression..

Du må skrive koden slik:

 

txtHtmlmal.txt = Replace(txtHtmlmal.txt, "tittelen", "(txtTittel)", , , vbTextCompare)

Lenke til kommentar

har et spørsmål til..

hvordan blir koden hvis jeg så skal lagre htmlmal.txt som en .html-fil med de forandringene jeg gjorde?

og må jeg først skrive en kode som åpner filen før forandringene skjer?

Lenke til kommentar

Du trenger ikke åpne filen før forandringen skjer. Legg først denne koden inn i prosjeket ditt:

 

Public Sub SaveFile(Path As String, Data As String, Append As Boolean)

On Error Resume Next
Dim Free As Long

If Not Append And Dir(Path) <> "" Then
   Kill Path
End If

Free = FreeFile

Open Path For Binary As Free
   Put #Free, , Data
Close Free

End Sub

 

Etter dette kan du ganske enkelt kalle SaveFile når du vil lagre en fil:

 

SaveFile App.Path & "\htmlmal.html", txtHtmlmal.Text, False

Lenke til kommentar

sikkert dumt spm, men hvor skal jeg legge det til?

 

koden var slik:

Private Sub btnSave_Click()

   
   With htmlmal.txt
       texthtmlmal.txt = Replace(txtHtmlmal.txt, "tittelen", "(txtTittel)", , , vbTextCompare)
           
       'også noe som saver filen..

   
   End With

End Sub

 

skal jeg putte inn koden du skrev i suben jeg skrev over?

den godtar ikke en sub inni en annen..

 

eller er det en egen sub, og den andre koden du skrev skal være i den første suben??

Lenke til kommentar

Jeg anntar at "tittel" skal byttes ut med noe i en tekstboks? Da blir alt sammen slik som dette:

 

Private Sub btnSave_Click()

texthtmlmal.txt = Replace(txtHtmlmal.txt, "tittelen", txtTittel.text , , , vbTextCompare)

SaveFile "C:\htmlmal.html", txtHtmlmal.Text, False

End Sub

Public Sub SaveFile(Path As String, Data As String, Append As Boolean)

On Error Resume Next
Dim Free As Long

If Not Append And Dir(Path) <> "" Then
  Kill Path
End If

Free = FreeFile

Open Path For Binary As Free
  Put #Free, , Data
Close Free

End Sub

Lenke til kommentar

Det betyr at du mangler et objekt i prosjektet ditt (sikkert en tekstboks)

 

Jeg anntok at "(txtTittel)" skulle være tekst fra en tekstboks så jeg bytta det ut med txtTittel.text. Bytt tilbake hvis det ikke skulle være slik.

Lenke til kommentar
Jeg anntok at "(txtTittel)" skulle være tekst fra en tekstboks så jeg bytta det ut med txtTittel.text. Bytt tilbake hvis det ikke skulle være slik.

det skulle det være..

 

har to teorier om hva problemet kan være..

 

1: jeg bruker foreløpig vb i word..

 

eller 2: programmet skal forandre en bit ("tittelen") i en lagret .txt-fil, og lagre den som .html..

kanskje en missforståelse noe sted??

Lenke til kommentar

Du skal altså ha to tekstbokser i prosjektet ditt: txtHtmlmal og txtTittel.

Private Sub btnSave_Click()

txthtmlmal.text = Replace(txtHtmlmal.text, "tittelen", txtTittel.text , , , vbTextCompare)

SaveFile "C:\htmlmal.html", txtHtmlmal.Text, False

End Sub

Public Sub SaveFile(Path As String, Data As String, Append As Boolean)

On Error Resume Next
Dim Free As Long

If Not Append And Dir(Path) <> "" Then
 Kill Path
End If

Free = FreeFile

Open Path For Binary As Free
 Put #Free, , Data
Close Free

End Sub

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...