24. oktober 2002 - 13:36Der er
8 kommentarer og 1 løsning
Gå til linie x, læs fra karakter y til z og indsæt i text2.
Hej Alle.
Jeg har et problem, jeg har flg. i min kode, som med syntaxen:
InsertChars Text1, 5, 14, "Hello"
kigger i Textbox1, Går til linie nr 5, Går til karakter nr 14, "og indsætter Hello"
Private Function InsertChars(TextBox As TextBox, LineNum As Long, CharIn As Long, InsertText As String) As Boolean Dim a() As String 'Insert linie funktionen Dim I As Long
Der er en Text1 og en Text2 samt en command1 på din form. Følgende kode læser fra text1 og putter resultatet i text2 vha følgende funktionskald: ReadChars(IntputTextBox, linienummer, Startplads, Slutplads, OutputString)
Private Function ReadChars(TextBox As TextBox, LineNum As Long, CharStart As Long, CharEnd As Long, ReadText As String) As Boolean Dim a() As String Dim I As Long ReadChars = True On Error GoTo Erro a = Split(TextBox.Text, vbCrLf) ReadText = Mid(a(LineNum - 1), CharStart, CharEnd - CharStart + 1) Exit Function Erro: ReadChars = False End Function
Private Sub Command1_Click() Dim ReadText As String If ReadChars(Text1, 5, 7, 11, ReadText) = True Then Text2.Text = ReadText Else MsgBox "Der opstod en fejl" End If End Sub
Private Sub Form_Load() Text1.Text = "Dette er linie 1" & vbCrLf & _ "Dette er linie 2" & vbCrLf & _ "Dette er linie 3" & vbCrLf & _ "Dette er linie 4" & vbCrLf & _ "Dette er linie 5" End Sub
Virker faktisk RIGTIGT godt, bortset fra, at hvis den linie man læser i har teksten tabuleret ind til højre 2 gange kommer der til at stå 2 sorte lodrette streger før det man har kopieret ind i text2, hvad kan det være ??.
Har lige testet det, de sorte streger fremkommer, hvis der er tabuleret foran den første karakter, kan man få vb til at "over se" disse tabuleringer ???
Er der tabulatorer i teksten - hvor kommer de fra???
Her en lille funktion, der sortere uønskede karakterer ud af en string:
Private Function SkipCertainChars(StringOfText As String, ANSIToBeSkipped As Integer) As String 'Funktion, der modtager StringOfText og ANSIToBeSkipped, og 'returnere StringOfText reduceret for ANSIToBeSkipped i sit navn Dim i As Long SkipCertainChars = "" For i = 1 To Len(StringOfText) If Asc(Mid(StringOfText, i, 1)) <> ANSIToBeSkipped Then SkipCertainChars = SkipCertainChars & Mid(StringOfText, i, 1) End If Next i End Function
Den kunne du jo bruge på følgende måde, hvis du f.eks. ville ignorere alle "å"'er i din tekst (ANSI kode for "å" = 229)
Mange tak for hjælpen, du spørger om hvor de tabuleringer kommer fra, TJA, de behøvede ikke være der, så nu her jeg fjernet dem, så nu viker det hele bare PERFEKT.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.