ERLEDIGT
NEIN
NEIN
ANTWORTEN
8
8
ZUGRIFFE
821
821
EMPFEHLEN
-
05.01.11 07:32 #1FooFighter31 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
-
05.01.11 07:57 #2
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?
-
05.01.11 08:43 #3FooFighter31 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
-
05.01.11 08:52 #4
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?
-
05.01.11 08:59 #5FooFighter31 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!
-
05.01.11 13:35 #6FooFighter31 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...) :/
-
05.01.11 14:07 #7
Gehen wir das ganze mal schrittweise durch:
Hier wird der gesamte Text in Zeilen geteilt und zeilenweise in ein Array geschriebenCode vb:1
sZeilen = Split(Text1.Text, vbNewLine)
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.Code vb:1
sWerte = Split(sZeilen(25), " " & vbTab)
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?
-
05.01.11 14:50 #8FooFighter31 Tutorials.de Gastzugang
Hier ist die Zeile:
Geo 10 Mat 20
also "Geo[Tabulator]10[Leerzeichen][Tabulator]20"
-
06.01.11 14:33 #9
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
-
HTML Tags in einer Textbox wiedergeben?
Von VB_ADMIRAL im Forum .NET CaféAntworten: 0Letzter Beitrag: 10.02.09, 14:51 -
Unterste Zeile in Textbox
Von jank1310 im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 10.08.05, 11:09 -
daten auslesen und in einer textbox wiedergeben
Von CoderX im Forum Visual Basic 6.0Antworten: 6Letzter Beitrag: 08.05.05, 00:23 -
Neue Zeile in Textbox
Von Swebble im Forum .NET ArchivAntworten: 5Letzter Beitrag: 23.03.05, 20:59 -
neue zeile in TextBox oder RichtextBox
Von T1-Fox im Forum .NET ArchivAntworten: 2Letzter Beitrag: 17.02.05, 14:45





Zitieren

Login





