|
| Autor |
Nachricht |
TheCoder_ Ü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 »

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


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


Anmeldedatum: 20.03.2007 Beiträge: 110 Wohnort: localhost
|
Verfasst am: 01.05.2007, 20:33 |
|
|
Dann viel Glück dir morgen  |
|
| |
|
 |
ZiG_ Ü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


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 »

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


Anmeldedatum: 31.12.2006 Beiträge: 359 Wohnort: Essen
|
Verfasst am: 02.05.2007, 16:39 |
|
|
OK thx wusste ich nich ^^
wieder was dazugelernt
 |
|
| |
|
 |