arrays in functionen resizen..
Übersicht

da_pollerBetreff: arrays in functionen resizen.. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wie mach ich das richtig ein array in ner funktion ne neue größe zuzuweisen?
wäre dieser codeschnipsel ok so? Code: [AUSKLAPPEN] Dim wkztab(1,2) Function initWKZ() wkztabelle=OpenFile("data\tools.wkz") While Not Eof(wkztabelle) x=x+1 Wend Dim wkztab(x,2) While Not Eof(wkztabelle) tempstream$=ReadLine$(wkztabelle) p1=Instr(tempstream$,";") tempID=Mid(tempstream$,p1-1) p2=Instr(tempstream$,";",p1+1) tempname$=Mid(tempstream,p1+1,p2-p1-1) tempradius$=Right(tempstream$,Len(tempstream)-p2) wkztab(tempid,1)=tempname$ wkztab(tempid,2)=tepmradius Wend End Function |
||
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Geht doch, warum sollte es dann falsch sein?
MfG DjDETE |
||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
![]() |
ShadowJumper |
![]() Antworten mit Zitat ![]() |
---|---|---|
nur, wenn die Datei leer ist, denn:Code: [AUSKLAPPEN] While Not Eof(wkztabelle)
x=x+1 Wend sollte der Zeiger, der die aktuelle Leseposition in der Datei angibt nicht von Anfang an am Ende stehen, so wird diese Schleife unendlich lang ausgeführt das Dimensionieren müsste so funktionieren (denk ich mal) den restlichen Code hab ich mir nicht angeguckt... |
||
Bilder kostenlos hosten
lest und weint: RAM - 512 MB; GrafikRAM - 32 MB; CPU - 800 MHz Ps: ... und weint (vor lachen) |
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich denke es geht hier hauptsächlich um das dim(x,2) in der Funktion? | ||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
jop
genau.. weil ich hab mal gemeint wo gelesen zu haben das es eig nicht geht aber bei mir funktioniert es so noch was.. ich durchlaufe die datei am anfang um die zeilenzahl festzulegen... wo steht der lesezeiger in der 2ten schlefie dann? muss ich den evtl neu positionieren.. kann es im moment nicht testen da ich auf die werkzeugliste warten muss bis ich montag na rechner kann um die zu senden.. |
||
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Er springt nach dem auslesen immer eins weiter.
->1. Zeile Position 1 ->2. Zeile Position 2 jeweils vor dem auslesen bzw. wenn du die zweite schleife meinst: anzahl schleifendurchläufe+x glaub ich |
||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
erste schleife läuft bis dateiende und steht dann folglich wieder am dateianfang oder lieg ich da falsch=? | ||
![]() |
Eingeproggt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: sollte der Zeiger, der die aktuelle Leseposition in der Datei angibt nicht von Anfang an am Ende stehen, so wird diese Schleife unendlich lang ausgeführt
Zitat: Er springt nach dem auslesen immer eins weiter.
--> So wie du es derzeit hast, wird der Lesezeiger immer dort sein, wo er vor der Schleife war, weil du in der Schleife nichts ausliest. Das ist mit den obigen zitaten gemeint. Da die Datei frisch geöffnet wurde, wird der Pointer auf 0 sein (Dateianfang) mfG, Christoph. |
||
DjDETE |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Stimmt das habe ich nicht bedacht... ![]() |
||
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden. |
da_poller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
soo ich hab jetzt auch was ausgelesen(nur nen temp stream) um mal die funktion des ganzen zu überprüfen will ich mir5 auch den datensatz anzeigen..
hier mein code: Code: [AUSKLAPPEN] Dim wkztab$(1,1)
;Include "bootfunctions.bb" Global x=0 ;initWKZ() wkztabelle=OpenFile("data\tools.wkz") While Not Eof(wkztabelle) temp$=ReadLine(wkztabelle) x=x+1 Wend SeekFile(wkztabelle,0) Dim wkztab$(x,2) While Not Eof(wkztabelle) tempstream$=ReadLine$(wkztabelle) p1=Instr(tempstream$,";") tempID=Mid(tempstream$,p1-1) p2=Instr(tempstream$,";",p1+1) tempname$=Mid(tempstream,p1+1,p2-p1-1) tempradius#=Right(tempstream$,Len(tempstream)-p2) wkztab$(tempID,1)=tempname$ wkztab$(tempID,2)=tepmradius# Wend Print "x ist: "+x For l= 1 To x Print [b]l[/b]+";"+wkztab$([b]l[/b],1)+";"+wkztab$([b]l[/b],2)+"!" Next Print "fertig ausgelesen" WaitKey() End und hier der inhalt der datei: Code: [AUSKLAPPEN] 1;A;12.88
2;BWWF;5.85 3;CE;2.74 4;DR;1.24 5;EBR;0.99 6;FGDD;3.01 7;GT;1.49 8;ME;9.98 9;HWE;8.99 10;IWER;7.99 11;K;6.00 12;J;5.99 13;LWER;4.99 14;DG;3.99 15;SE;2.99 16;VGZRF;1.99 17;DTZJG;8.11 18;FDH;4.22 19;DF;3.15 aber irgendwie bekomme ich als ausgabe das: Zitat: x ist: 19 19;;! 19;;! ... 19;;! fertig ausgelesen irgendwie scheint in dem array keine daten vorhanden zu sein.. wei0ß zufällig jmnd wo der fehler CA liegt..? so den fehler hab ich nun beim durchlesen des forum thread gefunden aber nun bekomme ich komische ausgaben die nicht im geringsten mit dem was in der datei steht zusammen passen... und ab 10 ist das array wieder mal leer.. ps die änderung ist im code farbig markiert..[/b] |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group