Textbehandling

Läsa och skriva textfiler Matematik

Här följer några metoder för att behandla text. En del skrivs annorlunda än i VB6, men det "gamla" sättet fungerar fortfarande.

ToUpper används för att omvandla alla bokstäver till versaler, och är detsamma som UCase i VB6. Antag att vi har en TextBox med text. I en knapp kan vi skriva koden:

TextBox1.Text = TextBox1.Text.ToUpper

Lägg märke till att när vi har skrivit TextBox1.Text = TextBox1.Text, öppnas en lista med metoder som vi kan använda, och ToUpper finns där tillsammans med de övriga som beskrivs nedan. På samma sätt kan man behandla text som finns i variabler av typen String.

Dim Namn As String
Namn = TextBox1.Text
TextBox1.Text = Namn.ToUpper

När vi skriver punkten efter variabeln Namn kommer listan över metoder även här.

Om vi vill använda Ucase och andra "gamla" metoder eller de som inte förändrats, får vi använda namnområdet Microsoft.VisualBasic. När vi skrivit punkten efter Microsoft.VisualBasic öppnas en lista över vad man kan använda. För Ucase blir alltså koden:

TextBox1.Text = Microsoft.VisualBasic.UCase(TextBox1.Text)

På samma sätt får vi all text som gemener när vi skriver ToLower:

TextBox1.Text = TextBox1.Text.ToLower

som motsvarar LCase.

För att få antalet tecken i en text, inklusive mellanslag, skriver vi Length som motsvarar Len i VB6.

TextBox1.Text.Length

Det som var Mid heter nu Substring, som returnerar angivet antal tecken som finns efter en angiven position i texten. Det första tecknet har position 0. Om man till exempel vill att de 4 tecknen från det 4:e tecknet skall returneras, skriver man:

TextBox1.Text = TextBox1.Text.Substring(3, 4)

För att hitta positionen för ett tecken använder man IndexOf:

TextBox1.Text = TextBox1.Text.IndexOf("B")

För att hitta en text i en längre text används Instr:

TextBox1.Text = InStr(1, TextBox1.Text, "box", CompareMethod.Text)

Antag att det står TextBox1 i TextBoxen. Vi söker alltså efter bokstäverna "box". Om vi använder CompareMethod.Text ignorerar sökningen gemener och versaler. Resultatet i detta exempel blir siffran 5, som alltså motsvarar positionen där "box" börjar. Skulle sökordet inte finns returneras 0. Om vi nu använder CompareMethod.Binary sker sökningen med matchning av både gemener och versaler. I exemplet finns inte "box" och resultatet blir 0. Skriver vi i stället "Box" får vi resultatet 5.

Remove tar bort angivet antal tecken efter en viss position i en text. Till exempel skall 4 tecken tas bort från och med tecken nummer 4:

TextBox1.Text = TextBox1.Text.Remove(3, 4)

Insert lägger till tecken i en text. Till exempel skall "Hej" läggas till efter tecken nummer 5:

TextBox1.Text = TextBox1.Text.Insert(5, "Hej")

Left returnerar angivet antal tecken med början längst från vänster:

TextBox1.Text = Microsoft.VisualBasic.Left(TextBox1.Text, 4)

Motsvarande för Right som returnerat angivet tecken med början längst till höger:

TextBox1.Text = Microsoft.VisualBasic.Right(TextBox1.Text, 4)

För att jämföra om två texter är lika oavsett gemener eller versaler används StrComp:

Dim Lika As Short
Lika = StrComp(TextBox1.Text, TextBox2.Text, CompareMethod.Text)
MsgBox(Lika)

Detta ger i meddelanderutan -1 om texterna är olika och 0 om de är lika.

ASCII-kod

Varje bokstav och tecken har en Ascii-kod som är ett heltal. Ibland kan man behöva använda Ascii-koden i program, till exempel vid sortering av text eller kryptering.

Ett exempel som visar Ascii-koden för ett tecken. Lägg ut TextBox och en Button. I Button skriver vi koden:

TextBox1.Text = TextBox1.Text & "-" & Asc(TextBox1.Text)
TextBox1.Focus()

För TextBoxen väljer vi händelsen KeyDown för att skriva kod som skall rensa textboxen innan ett nytt tecken skrivs dit:

Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown

TextBox1.Text = ""
End Sub

Kör programmet, skriv in en bokstav och klicka på knappen. Nu syns bokstavens Ascii-tecken.

Vill vi gå åt andra hållet och få reda på vilken bokstav som ett nummer representerar kan vi skriva:

Dim Bokstav As Char
Bokstav=Chr(65)

vilket ger Bokstav=A

Läsa och skriva textfiler Matematik

SupportData.Net
©