tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
8
ZUGRIFFE
821
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    FooFighter31 Tutorials.de Gastzugang
    Hallo!

    Ich habe vor Jahren schon mit VB gearbeitet, aber nun da ich etwas machen möchte, hab ich ein Problem.
    Ich habe eine Multiline-textbox. Dort wird per copy-paste immer die gleiche anzahl an zeilen eingegeben.
    Ich möchte jetzt immer die 3 werte aus der 4. Zeile in 3 verschiedene labels ausgeben.
    die werte sind zahlen von 0 bis n

    sieht zB so aus

    zeile
    zeile
    zeile
    wert1 wert2 wert3
    zeile
    zeile
    ...

    Mein Problem:
    Ich schaffe es nicht die 3 werte aus der Zeile herauszufischen..
    kann mir dabei bitte jemand helfen?

    Grüße,
    Foo
     

  2. #2
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Da bietet sich mal schnell Split an:
    Code vb:
    1
    2
    3
    4
    
    Dim sZeilen() As String, sWerte() As String
    sZeilen = Split(Textbox1.Text, vbNewLine)
    sWerte = Split(sZeilen(3), " ") 'Wenn die Werte mit Space getrennt sind, sonst da entsprechende Trennzeichen einsetzen
    'Jetzt hast du im Array sWerte (von 0-2) deine Werte, die du ausgeben kannst


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  3. #3
    FooFighter31 Tutorials.de Gastzugang
    ok... ich raffs nicht
    ich habe jetzt folgendes:

    Private Sub Text1_Change()

    Dim Wert1
    Wert1 = Array(0)

    Dim sZeilen() As String, sWerte() As String
    sZeilen = Split(Text1.Text, vbNewLine)
    sWerte = Split(sZeilen(3), " ")

    Label1.Caption = Wert1(0)


    End Sub

    Label1 gibt mir aber den Wert "0" aus. Wert1 sollte aber "4723" sein.

    Oder soll ich da mit varWert1 arbeiten?

    übrigens sind die Werte 1 - 3 so aufgebaut:
    Wert1[leerzeichen][leerzeichen][tabulator]Wert2[leerzeichen][leerzeichen][tabulator]Wert3


    tut mir leid, wegen den blöden fragen - ich hoffe, ihr habt geduld mit mir -.-

    Grüße,
    Foo
     

  4. #4
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Dein Wert1(0) ist da irgendwie fehl am Platz, mal davon abgesehen, dass du im zweiten Split ja auch deine Trennzeichen anpassen musst:
    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    Private Sub Text1_Change()
     
    Dim sZeilen() As String, sWerte() As String
     
    sZeilen = Split(Text1.Text, vbNewLine)
    sWerte = Split(sZeilen(3), "  " & vbTab) 'ich hoffe, vbTab ist auch unter VB6 der Tabulator, sonst einfach in der Hilfe nachsehen
     
    Label1.Caption = sWerte(0) '0 für den ersten Wert
     
    End Sub


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  5. #5
    FooFighter31 Tutorials.de Gastzugang
    danke, jetzt klappts!
    das &vbTab funktioniert auch, hab ich aber oben noch nicht eingetragen, da ich's nur mal mit dem ersten wert versuchen wollte.

    Hab irgendwie verpeilt, dass ich da keine extra Dim mehr angeben muss..

    Vielen Dank für die Hilfe!
    Hat mir unheimlich weitergeholfen!
     

  6. #6
    FooFighter31 Tutorials.de Gastzugang
    so... ich hab alles richtig, was ich noch so gebraucht hab. jetzt möchte ich aber noch eine zeile auslesen. und zwar die zeile 25 (inkl. 0).
    Aber diese eine Zeile hat einen anderen Aufbau:
    Wort[Tab]Wert25

    Private Sub Text1_Change()

    Dim sZeilen() As String, sWerte() As String

    sZeilen = Split(Text1.Text, vbNewLine)
    sWerte = Split(sZeilen(25), " " & vbTab)

    Wert1.Text = sWerte(0)
    Wert2.Text = sWerte(1)
    Wert3.Text = sWerte(2)
    Wert25.Text = sWerte(25)

    End Sub

    jetzt sagt er mir aber "index außerhalb des gültigen bereichs" und markiert mir
    "Wert2.Text = sWerte(1)"

    und wieder versteh ich das nicht.. -.-
    mit "sWerte = Split(sZeilen(25)" werden ja 26 Zeilen ausgelsen, oder!?
    und mit "WertX.Text = sWerte(x)" wird die so-und-so-vielte Zeile wiedergegeben, oder!?

    bitte, noch mal um hilfe (auch wenn ich mir schon etwas blöd vorkomme...) :/
     

  7. #7
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    Gehen wir das ganze mal schrittweise durch:
    Code vb:
    1
    
    sZeilen = Split(Text1.Text, vbNewLine)
    Hier wird der gesamte Text in Zeilen geteilt und zeilenweise in ein Array geschrieben

    Code vb:
    1
    
    sWerte = Split(sZeilen(25), " " & vbTab)
    Hier wird eine Zeile (in diesem Fall die Zeile 26, durch den 0-Index hat sie die Nummer 25) getrennt, dabei sind die Zeichen, an denen getrennt wird wichtig. Du musst dir ansehen, wie die einzelnen Werte in der Zeile getrennt sind.

    In deinem Fall wird es so sein, dass in der Zeile 26 die einzelnen Werte irgendwie anders getrennt sind, daher gibt es den Eintrag sWerte(0), in dem befindet sich aber nun deine ganze Zeile. Der Aufruf von sWerte(1) erzeugt daher die Fehlermeldung, aufgrund deiner Trennzeichen hat Split nur ein Array mit der Dimension 0 erzeugen können.

    Zeig doch mal, die wie Zeile 26 (also 25 inkl. 0) aussieht.


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

  8. #8
    FooFighter31 Tutorials.de Gastzugang
    Hier ist die Zeile:
    Geo 10 Mat 20

    also "Geo[Tabulator]10[Leerzeichen][Tabulator]20"
     

  9. #9
    Avatar von DrSoong
    DrSoong DrSoong ist offline Iss was, Doc!
    tutorials.de Premium-User
    Registriert seit
    Jul 2003
    Ort
    Dem Zentrum meiner Welt
    Beiträge
    1.836
    Blog-Einträge
    85
    In dem Fall ist also nur ein Tabulator für diese Zeile dein Trennzeichen, die überflüssigen Leerzeichen am Anfang und Ende kriegst du mit Trim() weg.
    Code vb:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    Private Sub Text1_Change()
     
    Dim sZeilen() As String, sWerte() As String
     
    sZeilen = Split(Text1.Text, vbNewLine)
    sWerte = Split(sZeilen(25), vbTab)
     
    Wert1.Text = sWerte(0)
    Wert2.Text = Trim(sWerte(1))
    Wert3.Text = sWerte(2) 'du hast deiner Beschreibung nach in dieser Zeile nur 3 Werte
     
    End Sub


    Der Doc!
     
    A: Hilfe, ich hab zwei Dateien hinzugefügt und nun sind die anderen weg
    B: Die Scrollbar da rechts ist dir schon mal aufgefallen?

Ähnliche Themen

  1. HTML Tags in einer Textbox wiedergeben?
    Von VB_ADMIRAL im Forum .NET Café
    Antworten: 0
    Letzter Beitrag: 10.02.09, 14:51
  2. Unterste Zeile in Textbox
    Von jank1310 im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 10.08.05, 11:09
  3. daten auslesen und in einer textbox wiedergeben
    Von CoderX im Forum Visual Basic 6.0
    Antworten: 6
    Letzter Beitrag: 08.05.05, 00:23
  4. Neue Zeile in Textbox
    Von Swebble im Forum .NET Archiv
    Antworten: 5
    Letzter Beitrag: 23.03.05, 20:59
  5. neue zeile in TextBox oder RichtextBox
    Von T1-Fox im Forum .NET Archiv
    Antworten: 2
    Letzter Beitrag: 17.02.05, 14:45