toss Skrevet 30. juli 2004 Del Skrevet 30. juli 2004 er det mulig å forandre deler av en ferdigskrevet tekst med vb? slik at når brukeren av programmet skriver noe inn i en text box, og trykker på en knapp, så skal en gitt del av en tekst forandres? Lenke til kommentar
aadnk Skrevet 30. juli 2004 Del Skrevet 30. juli 2004 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
GeirGrusom Skrevet 30. juli 2004 Del Skrevet 30. juli 2004 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
toss Skrevet 30. juli 2004 Forfatter Del Skrevet 30. juli 2004 (endret) 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 skal snart få meg noe ordenlig.. så snart pappa godtar det.. Endret 30. juli 2004 av toss Lenke til kommentar
aadnk Skrevet 30. juli 2004 Del Skrevet 30. juli 2004 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
aadnk Skrevet 30. juli 2004 Del Skrevet 30. juli 2004 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
toss Skrevet 30. juli 2004 Forfatter Del Skrevet 30. juli 2004 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
aadnk Skrevet 30. juli 2004 Del Skrevet 30. juli 2004 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
toss Skrevet 30. juli 2004 Forfatter Del Skrevet 30. juli 2004 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
Jonas Skrevet 30. juli 2004 Del Skrevet 30. juli 2004 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
toss Skrevet 30. juli 2004 Forfatter Del Skrevet 30. juli 2004 prøvde koden, men jeg fikk opp feilmelding run.time error '424': Object required Lenke til kommentar
Jonas Skrevet 30. juli 2004 Del Skrevet 30. juli 2004 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
toss Skrevet 30. juli 2004 Forfatter Del Skrevet 30. juli 2004 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
Jonas Skrevet 30. juli 2004 Del Skrevet 30. juli 2004 Nå ser jeg også at det står "txt" istedenfor "text" et par steder.. Lenke til kommentar
toss Skrevet 30. juli 2004 Forfatter Del Skrevet 30. juli 2004 en annen ting.. skal det stå "text" forran filnavnet? filnavnet er egentlig htmlmal.txt.. Lenke til kommentar
Jonas Skrevet 30. juli 2004 Del Skrevet 30. juli 2004 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå