[VisualBasic] per zeile andere cd-zahl

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von bacardi, 17. Dezember 2006 .

Schlagworte:
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 17. Dezember 2006
    per zeile andere cd-zahl

    nabend,

    der titel ist bisschen blöd geworden aber naja.. =)

    also ich möchte, dass wenn ich in einem textfeld eine adresse gebe, dann soll es für jede zeile andere cd-zahl stehen.

    z.B. 2 links

    dann soll es so aussehen;

    CD1
    CD2

    z.B. 4 links

    dann so;

    CD1
    CD2
    CD3
    CD4

    ps: ich habe gegooglet aber nichts gefunden.. :(
     

  2. Anzeige
    Dealz: stark reduzierte Angebote finden.
  3. #2 17. Dezember 2006
    AW: per zeile andere cd-zahl

    Code:
    Dim anzahl as integer = 5
    
    Dim Abc as String = "CD"
    
    for i as integer = 1 to anzahl
     msgbox(Abc & i)
    next
    ... ich hoffe du bist ein blutiger Programmier anfänger

    Ansonsten: Lern die Grundlagen

    Code könnte fehler enthalten (hab ich nich getestet), aber im großen und ganzen sollte es so funktioniern.

    Gruß

    Hamml
     
  4. #3 18. Dezember 2006
    AW: per zeile andere cd-zahl

    Sehe ich auch so, nur das grundsätzlich Stringverknüpfungen mit & sehr langsam sind. Besser wäre es String.Concat zu verwenden oder bei größeren Texten einen StringBuilder (System.Text.StringBuilder).

    BG MaxDev
     
  5. #4 18. Dezember 2006
    AW: per zeile andere cd-zahl

    Zu deinem Code muss ich folgendes sagen: Wenn er für VB6 sein soll, wird das nicht funktionieren, da man nach der Deklaration der Variablen nicht direkt den Wert angeben kann, also z. B. 'Dim Abc As String = "CD"'. Bei der For-Next-Schleife ist genau das selbe der Fall (wie gesagt, falls es für VB6 ist, kA wie es bei VB.Net ist).

    Demnach würde mein Code so aussehen:

    Code:
    Private Sub Command1_Click()
    
    Text1 = ""
    
    For i = 1 To 8 Step 1 'Die 8 ersetzt du durch die Anzahl der CDs^^
     Text1 = Text1 & "CD" & i & vbNewLine
     Text1.SelStart = Len(Text1) 'Ans Ende der Textbox scrollen
    Next
    
    End Sub
    Du benötigst: 1 Commandbutton [Command1] und eine Textbox [Text1]

    Am besten setzt du die Multiline-Eigenschaft der Textbox auf "True" und ScrollBars auf "2", damit alles funktioniert!
     
  6. #5 18. Dezember 2006
    AW: per zeile andere cd-zahl

    ... normalerweise Progg ich ja c++, deswegen vielleicht die kleinen Fehler.

    Wenn dann wärs für VB.NET vorgesehn.

    Trotzdem danke, für die Infos :D

    Gruß

    Hamml
     
  7. #6 19. Dezember 2006
    Zuletzt von einem Moderator bearbeitet: 15. April 2017
    AW: per zeile andere cd-zahl

    erstmal danke, dass ihr mir so hilft.

    also ich habe 2 formulare, deswegen musste ich bisschen ändern.

    es sieht zur zeit so aus:

    wenn ich es so benutze, funktioniert es schon aber ist nicht ganz richtig.

    nun bleibt die zahl immer 2 --> CD2. ist egal ob ich 2 zeilen oder nur eine zeile benutze.

    ich möchte aber, wenn ich 2 zeilen benutze, dass es CD1 und CD2 gibt und wenn ich 3 zeilen benutze, dass es halt CD1, CD2 und CD3 gibt.

    mfg
     
  8. #7 19. Dezember 2006
    AW: per zeile andere cd-zahl

    Code.Text1.Text &= ....


    sonst weisst du Code.Text1.Text immer wieder einen neuen wert zu, und ergänzt ihn nicht.

    Gruß

    Hamml
     
  9. #8 19. Dezember 2006
    AW: per zeile andere cd-zahl

    also das heißt ?? ...
     
  10. #9 19. Dezember 2006
    AW: per zeile andere cd-zahl

    Damit addierste den alten Code.Text1.Text mit dem, was jetzt neu hinzukommt. deswegen das &-zeichen vorm =

    verständlicher ist es, wenn man statt &= einfach code.text1.text=code.text1.text & "..hierneuentexteinfügen.." hinschreibt. &= ist einfach die kurzform.

    ciao - Idefix!
     
  11. #10 19. Dezember 2006
    AW: per zeile andere cd-zahl

    Naja, du setzt es falsch an.
    Du hast ja eine Variable Zeilenanzahl, also kannst du nich immer nur bis 2 durchzählen.
    Nimm diesen Code, um die Zeilenanzahl rauszukriegen:
    Code:
    Public Const EM_GETLINECOUNT = &HBA
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
    
    Public Function AnzahlZeilen(txt As TextBox) As Long
     AnzahlZeilen = SendMessage(txt.hWnd, EM_GETLINECOUNT, 0, 0&)
    End Function
    
    Das kopierst du in ein Modul oder so.

    und dann in deinem prog:
    Code:
    For i = 1 to AnzahlZeilen(DieTextBox)
     txtAusgabe.text = txtAusgabe.text & "CD " & i & vbCrlf
    next i
    
    Hoffe, das war verständlich

    PS: Wenn du VB.NET benutzt, dann kriegst du die Zeilenanzahl mit .Lines (afaik) raus
     

  12. Videos zum Thema
Die Seite wird geladen...