Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
Autor
Nachricht
TheCoder_
Überflieger
Überflieger



Anmeldedatum: 31.12.2006
Beiträge: 359
Wohnort: Essen

WTF oO denkfehler?
Verfasst am: 01.05.2007, 19:47

Hey ich hab ma voll die Simple frage die mich total beschäftigt und ich glaub das ich iwie voll down bin.
Also ich möchte jedes einzelne zeichen einer Textbox haben soweit so gut:
Code:
Dim i As Integer
Dim s As String
s = Text1.Text
For i = 1 To Len(s)
msgbox Mid(s,i,1)
Next i

k geht klar easy. als nächste in einen array laden lassen und da is bug oO wär nett wenn mir das jmd. erklären kann warumd er kommt ob mit oder ohen lösung is egal wenn ich den fehler verstehe kann ich auch ne alternative finden:
Code:

Option Base 1
Private Sub Command1_Click()
Dim Char() as String
Dim i As Integer
Dim s As String
s = Text1.Text
For i = 1 To Len(s)
 Char(i) = Mid(s,i,1)
Next i
End Sub

wieso zur hölle is der index außerhalb des gültigen Bereichs? ich lass den doch extra bei 1 beginnen und da i bei der ersten schleife auch 1 is müsste das doch alles stimmen oda?
 
413X_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 16.12.2006
Beiträge: 266


Verfasst am: 01.05.2007, 20:30

Also bisher is dein Array Char noch nicht initialisiert, dh. du hast den nur deklariert aber noch keinen Bereich angegeben, du musst den wie gesagt erst initialisieren ^^ Das geht so

Redim [Preserve] Char(i)

Dqs Preserve steht dafuer das die vorherigen Variablen alle behalten werden.

Hm naja das is nun so aus der hand gecoded, bin ja ned zu hause aber es sollte afaik funzen xD

http://www.413x.dl.am

Tod den 1337-Scriptkiddies xD
 
TheCoder_
Überflieger
Überflieger



Anmeldedatum: 31.12.2006
Beiträge: 359
Wohnort: Essen


Verfasst am: 01.05.2007, 20:32

Oh na gut danke. Daran hab ich echt nich gedacht. über 24 stunden wach bleiben schadet wohl tatsächlich. Naja thx werds morgen ausprobieren und dann evtl. edit machen obs funzt weil ich jetzt für morgige mathe abschlussprüfun glernen muss
 
treY.de_
Poster
Poster



Anmeldedatum: 20.03.2007
Beiträge: 110
Wohnort: localhost


Verfasst am: 01.05.2007, 20:33

Dann viel Glück dir morgen Wink
 
ZiG_
Überflieger
Überflieger

Anmeldedatum: 07.03.2007
Beiträge: 1248


Verfasst am: 01.05.2007, 20:53

Also Redim Preserve Char(i) ist schon richtig. Nutze ich auch oft.
Aber in einer Schleife zerrt das stark an der Leistung.

Besonders wenn sehr viele Zeichen sind, also die Schleife sehr oft durchlaufen muß.
Mit einer Textbox und paar Zeichen ist es egal, aber für andere Projekte wo ihr das vielleicht braucht, geb ich euch den Tipp lieber das Array vorher zu initialisieren.


Bei deinem code ist das leicht. Einfach "Redim Char(Len(s))"
Wer nicht auf seine Weise denkt, denkt überhaupt nicht. (Oscar Wilde)
 
TheCoder_
Überflieger
Überflieger



Anmeldedatum: 31.12.2006
Beiträge: 359
Wohnort: Essen


Verfasst am: 02.05.2007, 07:02

dank trey aber wird schon. Danke Zig so isses ok hast mir echt geholfen. Warum ich nich selber dran gedaht habe weiß ich auch ncih. hab dann mal im zusammenhang mit arrays noch ne frage.
HIer mussteich sie ja erst initialisieren aber wenn ich einen array hab der nu so is:
dim daten() as String
dann kann ich den ja mit split füllen
Daten() = Split(Text1.Text, ":")
und da geht das doch auch. Warum?
 
413X_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 16.12.2006
Beiträge: 266


Verfasst am: 02.05.2007, 09:08

Das macht das Split schon ^^

http://www.413x.dl.am

Tod den 1337-Scriptkiddies xD
 
TheCoder_
Überflieger
Überflieger



Anmeldedatum: 31.12.2006
Beiträge: 359
Wohnort: Essen


Verfasst am: 02.05.2007, 16:39


OK thx wusste ich nich ^^
wieder was dazugelernt
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB6] Fragen - Antworten
 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge ich glaub, ich hab nen Bug... 818 03.07.2008, 20:51
Keine neuen Beiträge txt mit Computernamen erstellen lassen 404 16.10.2007, 22:09
Keine neuen Beiträge Windows abstürzen lassen 817 16.10.2007, 20:18
Keine neuen Beiträge lokale ip anzeigen lassen 1438 09.10.2007, 19:54
Keine neuen Beiträge IP anzeigen lassen 556 27.09.2007, 13:06
 


[ Time: 0.1291s ][ Queries: 101 (0.0852s) ][ GZIP on - Debug on ]