Array Index out of Bounds!
Übersicht

EdeBetreff: Array Index out of Bounds! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi erstmal, ich bin neu hier im Forum und relativ neu in BB,
also wie schon gesagt, kommt bei mir die fehlermeldung "array index...". es geht um einen teil von einem programm das in dem fall das datum automatisch korrigiert bzw anpasst. normal sollte soweit alles klappen, tuts aber nich und ich komm auch nimmer weiter deshalb hab ich hier den code, komlett auskommentiert! PS: Das soll später aus TextAreas ausgelesen werden, also nicht(!) zuerst als .dat oder .txt gespeichert werden... WIE DAS? und falls wer ne lösung mit types hat: umso besser! aber bitte nur als ergänzung weil das hab ich auch noch nicht so wirklich drauf... ![]() ede Code: [AUSKLAPPEN] file=WriteFile("c:/pillemann.dat"); erstellt die datei die späterausgelesen ;wird... WriteLine file,"1.6"; schreibt den das datum rein... ;alternativ: ;WriteLine file,"01.06.2006" ;WriteLine file,"1.6.06" usw. CloseFile file stream=ReadFile("c:/pillemann.dat") Const char_limit=20; hab hier ne konstante gewählt, damit ich die zahl ;nicht überall extra verändern muss Dim char$(char_limit); ich glaub so oder so ähnlich sehn auch die strings in ;C aus, wo jedes Zeichen ein array Feld bekommt und so solls hier auch ;werden... Dim date$(2) ;tt/mm/jj ... date$(0)=Tag/date$(1)=Monat/date$(2)=Jahr For i=0 To char_limit readt=ReadByte(stream);liest zuerst alle 20 Zeichen aus, es sei denn die ;Schleife wird vorher beendet If readt<>Asc(Chr$(13)) Then;bei einem Zeilenumbruch (mit Chr$(13) eingeleitet) wird die schleife beendet char$(i)=Chr$(readt);Speichert jedes Zeichen in einem anderen Feld Else Exit;ende d. schleife bei zeilenumbruch EndIf Next For i=0 To char_limit;arbeietet alle char(i) ab! If char$(i)="" Then Exit; wenn char="" (siehe oben, if readt<>asc...), While char$(i)<>"." And char$(i)<>",";während das Zeichen weder ein ;Punkt noch ein Komma ist... date$(v)=date$(v)+char$(i);... wird ins aktuelle Datumsfeld geschrieben, ;also t/m/j i=i+1;i um 1 erhöhen da die for-next schleife ja nicht durchlaufen wurde ;und man trotzdem mit dem nächsten i arbeiten will. Wend ;wenn das nächste datumsfeld beginnt also nach Punkt/Komma Print "Datumsfeld "+Str$(v+1)+": "+date$(v);nur zur überprüfung: wert ;des aktuellen damtumsfeldes wird auf dem Bildschirm ausgegeben v=v+1; nach dem beenden der while schleife muss ins nächste datumsfeld ;geschrieben werden... Next WaitKey() CloseFile stream End |
||
![]() |
Rone |
![]() Antworten mit Zitat ![]() |
---|---|---|
moin,
der Debugger zeigt doch sogar die Zeile: While i<20 And char$(i)<>"." And char$(i)<>"," date$(v)=date$(v)+char$(i) i=i+1 Wend mfg |
||
Ede |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok danke rone werds direkt mal probieren...
PS: das mit den semikolons is auch n bisschen in die hose geggangen... die tauchen mal hier mal da auf, bloß nich wo man sie haben will... ![]() bis denne ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group