Avatar billede eksperten Nybegynder
06. august 1999 - 18:42 Der er 7 kommentarer og
1 løsning

Læse en linie ad gangen i et tekstfelt

Jeg har følgende kontroller:

txtTekst
lblLabel
cmdOk

Ved tryk på cmdOk skal lblLabel.caption vise indholdet af linie 15 i txtTekst som er har multiline = True
Avatar billede mikker Nybegynder
06. august 1999 - 20:19 #1
Hmmm. Interessant.
Vender lige tilbage hvis jeg finder noget :-)
Avatar billede bkp Nybegynder
07. august 1999 - 00:40 #2
Skal bruger selv skrive i tekstfeltet, ellers kan du da bruge listboks.
Avatar billede eksperten Nybegynder
07. august 1999 - 07:00 #3
Brugeren skal kunne redigere i teksten altså skal det være et tekstfelt, men på et tidspunkt skal jeg så ha alle linierne over i programmet, og redigere dem, og så skrive linierne tilbage, og nogen linier bliber slettet osv. så jeg har altså brug for at kunne læse ind i liner ok?
Avatar billede swjensen Nybegynder
07. august 1999 - 09:13 #4
Bruger du tvungne linieskift for at være sikker på tekstens placering i forhold til linienummer?
Avatar billede mikker Nybegynder
07. august 1999 - 10:54 #5
Du skal bruge en form med følgende:
1. MultiLineTextBox - text1
2. CommandButton - Command1
3. Label - label1

Private Sub Command1_Click()

    Dim A%, B$, c$
    A% = 1
    B$ = Text1.Text


    Do While InStr(B$, Chr$(13))
        A% = A% + 1
        B$ = Mid$(B$, InStr(B$, Chr$(13)) + 1)
    Loop

    countLines = CStr(A%)
Label1.Caption = countLines
End Sub

Hvis du skriver nogle linier i testboxen og derefter trykker på din commandbutoon vises i din label hvor mange linier der er i textboxen.

Koden er fundet på nettet og er _ikke_ min opfindelse.
Avatar billede eksperten Nybegynder
07. august 1999 - 17:47 #6
Det kikker jeg på!
Avatar billede swjensen Nybegynder
07. august 1999 - 19:28 #7
Ovenstående kode forudsætter også tvungne linieskift. Hvis det holder stik, og du har VB6 eller har Microsoft Scripting Runtime (scrrun.dll) installeret, er den enkleste måde at bruge funktionerne Split og Join:

Private Sub cmdOK_Click()

    Dim arrLinier() As String
    arrLinier = Split(txtTekst, vbNewLine)
    lblLabel = UBound(arrLinier) + 1
   
'  Når der skal redigeres i linierne:
    For i = 0 To UBound(arrLinier)
        ' gør en masse ved arrLinier(i)
    Next i
   
'  Når de redigerede linier skal
'  tilbage i tekstfeltet
    txtTekst = Join(arrLinier, vbNewLine)
   
End Sub

Avatar billede swjensen Nybegynder
07. august 1999 - 19:30 #8
PS.
Hvis du skal have vist linie 15, skriver du

lblLabel = arrLinier(14)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester