Latest UploadsSample Bio ... ph FractalAndy_A Biomorph FractalsAndy_AFisheyeAndy_ARpg itemsPakzDuck InvaderszzoomSmaller Scar?zzoom

### array Problem

UserMessage
Posted : Saturday, 07 January 2012, 19:06 | Permalink
dna

 Hey. I'm trying to pass an array into a function and change certain characters within the string. This code is giving me an error. Is it the square bracket? Function INS\$(E\$[10]) For J=1 To 6:For S=1 To Len(E\$[J]) If Mid\$(E\$[J],S,1)="B" Or Mid\$(E\$[J],S,1)="b" Mid\$(E\$[J],S,1)="/" EndIf Next Next End Function Dim R\$[10] For K=1 To 6:W=Rand(10,30): For TT= 1 To W:Q=Rand(26)+64 R\$[K]=R\$[K]+Chr\$(Q) Next Next For O=1 To 6 Print R\$[O]:Print INS\$(R\$[O]) Next --> -----DNA
Posted : Sunday, 08 January 2012, 12:00 | Permalink
bram32

WW Entries : 1
 Hey dna, I think it is the assignment to Mid\$ that doesn't work: Mid\$(E\$[J],S,1)="/" Should be something like: E\$[J] = Left\$(E\$[j],S-1) + "/" + Mid\$(E\$[j],S+1)
Posted : Sunday, 08 January 2012, 20:54 | Permalink
dna

 A type mismatch now Function INS(E\$[10]) Local J:Local S For J=1 To 6:For S=1 To Len(E\$[J]) If Mid\$(E\$[J],S,1)="B" Or Mid\$(E\$[J],S,1)="b" E\$[J]=Mid\$(E\$[J],1,S-1)+"/"+Mid\$(E\$[J],S+1) EndIf Next Next End Function Local R\$[10] ;Local K For K=1 To 6:W=Rand(10,30): For TT= 1 To W:Q=Rand(26)+64 R\$[K]=R\$[K]+Chr\$(Q) Next Next For O=1 To 6 Print R\$[O]:;Print INS\$(R\$[O]) Next --> The dim does not work. Does Blitz pass string arrays? -----DNA
Posted : Monday, 09 January 2012, 16:04 | Permalink
Evil Roy Ferguson

WW Entries : 3
 Blitz's array support is anemic. You can pass string arrays to methods, but the so called "blitzarrays" break if you specify the type anywhere but declaration. That is to say, the following will work: Function INS(E\$[10]) Local J:Local S For J=1 To 6:For S=1 To Len(E[J]) If Mid\$(E[J],S,1)="B" Or Mid\$(E[J],S,1)="b" E[J]=Mid\$(E[J],1,S-1)+"/"+Mid\$(E[J],S+1) EndIf Next Next End Function Local R\$[10] ;Local K For K=1 To 6:W=Rand(10,30): For TT= 1 To W:Q=Rand(26)+64 R[K]=R[K]+Chr(Q) Next Next For O=1 To 6 Print R[O]:;Print INS\$(R[O]) Next --> No idea what you're doing, though...
Posted : Monday, 09 January 2012, 19:15 | Permalink
dna

 Thanks Evil One Still, It compiles but does not pass the array. Must be some funny syntax. the program will replace any occurrence of Upper or Lower case B with a "/". From there it will do something else. I might be able to get the result using integers instead of passing the string to the function. Just compare the integer to the "/" equivalent. -----DNA
Posted : Monday, 09 January 2012, 22:13 | Permalink
Retro

 I'm no Blitz expert, so apologies if this is utter crap. It seems to me you could wrap the string array in a custom type. This would be passed by reference, e.g. Const Max = 5 Type StringArray Field s\$[Max] End Type Function Dump(t.StringArray) For i = 1 To Max Print t\s[i] Next End Function o.StringArray = New StringArray o\s[1] = "one" o\s[2] = "two" o\s[3] = "three" o\s[4] = "four" o\s[5] = "five" Dump(o) -->
Posted : Tuesday, 10 January 2012, 19:27 | Permalink
dna

 That probably is the best method (no pun) for doing what I'm attempting. I did want to know the square bracket string array syntax though.-----DNA
Posted : Tuesday, 10 January 2012, 20:05 | Permalink
Retro

 I guess if you use that method, you may as well not use an array at all. i.e. just use the built-in type iterators. They're stored in a linked-list, so effectively you'd have a dynamic array.
Posted : Tuesday, 10 January 2012, 20:53 | Permalink
dna

 You are right again but the algorithm was created to test the use of passing those square bracket arrays. It's undocumented in some versions of BB I'll learn types then. -----DNA
Posted : Tuesday, 10 January 2012, 21:05 | Permalink
Evil Roy Ferguson

WW Entries : 3
 Passing in the array works; the line doing it was just commented out in your example above and I did not change it back.
Posted : Tuesday, 10 January 2012, 21:31 | Permalink
dna

 I removed the comment and the string array did not pass. I got a Variable type mismatch error.-----DNA
Posted : Tuesday, 10 January 2012, 22:42 | Permalink
Evil Roy Ferguson

WW Entries : 3
 That's because you're passing in a single element of the array with INS(R[0]) instead of the array, when what you need is just INS®. You also can't print the result of that, since it doesn't return anything.
Posted : Wednesday, 11 January 2012, 21:52 | Permalink
dna

 Found my syntax error Graphics 800,600,0,2 SeedRnd MilliSecs() Local INFO\$[16] INFO[1]="JBBBBL" For XX=2 To 10:Q=Rand(15,40) For X2= 1 To Q INFO[XX]=INFO[XX]+Chr(Rand(26)+64) Next Next For xx=1 To 16:Print INFO[XX]:Next CHECK(INFO) Function CHECK(E\$[16]) For X=1 To 10: For Y1=1 To Len(E[X]) If Mid\$(E[X],Y1,1)="B" E[X]=Left\$(E[X],Y1-1)+"*"+Mid\$(E[X],Y1+1) EndIf Next Print e[X] Next End Function WaitKey:End --> This is right.-----DNA
Posted : Thursday, 12 January 2012, 02:36 | Permalink
Retro

 Can't you just use the Replace\$ function? Function CHECK(E\$[16]) For X = 1 To 16 E[X] = Replace(E[X],"B","*") Print E[X] Next End Function -->
Posted : Thursday, 12 January 2012, 11:54 | Permalink
dna

 Yes I could have. I never knew the command existed before. That looks easier than using the mid\$ function. What I wrote is probably the same somewhere inside the REPLACE function. -----DNA
Posted : Thursday, 12 January 2012, 17:13 | Permalink
Retro

 Unlikely. The library functions would be C/C++ not BlitzBasic.
Posted : Thursday, 12 January 2012, 19:02 | Permalink
dna

 You're right again but I meant the logistics of how it works. thanks for pointing that out to me. I have never really read the B3D manual. -----DNA
-=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- (c) WidthPadding Industries 1987 523|0 -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=-
 Latest PostsRotate a 1bpp image? Jayenkai Fri 18:53 AL MICKSES A MACKEY TRACKEY Jayenkai Fri 17:10 Rhythm Heaven Megamix Jayenkai Fri 17:04 NetBreak? Kuron Fri 16:11 Siri Where'd I park my car? : BOOM! Jayenkai Fri 15:04 Don't Stream That Scene Kuron Fri 15:00 ''Virtual''!!! steve_ancell Fri 13:18 Happy Birthday Rychan rychan Fri 08:55 Nintendo Switch GfK Fri 05:35 AGameAWeek : 2016 - Part Two Jayenkai Thu 06:51 More

 Latest Items Woot : Getting Noticed... for Gameboy Dev!rychan Fri 08:56 Dev-Diary : 1st Ever Wed Workshop Progresszzoom Thu 23:12 Showcase : Biomorph FractalsAndy_A Wed 12:43 Snippet : Fisheye Lens EffectJayenkai Wed 11:50 Snippet : 2D BallsJayenkai Wed 06:22 Showcase : Mining Map AI DemoStealth Tue 19:41 Showcase : Biotic Limit - Games For Better (2 Days) Editionrychan Mon 12:27 Dev-Diary : Intellivision Controller Adapterspinal Sun 11:33 Snippet : Contour Map from DataHoboBen Fri 18:14 Snippet : FPS Control (WASD+Mouse)Pakz Wed 22:30 Article : Concurrency in C#Afr0 Sun 12:28 Snippet : Mandelbrot in BMaxJayenkai Sun 03:37 News : Newsletter #281HoboBen Fri 04:18 News : Newsletter #280Jayenkai Sat 05:10 Blog : Monkey-X Box2D: Learning from my perspective... Hopefully!steve_ancell Sun 14:49More

Who's Online
Kuron
Fri, at 19:38
Jayenkai
Fri, at 19:03
GfK
Fri, at 17:31
shroom_monk
Fri, at 17:20
steve_ancell
Fri, at 16:19
spinal
Fri, at 15:24
rockford
Fri, at 15:04
Krakatomato
Fri, at 14:11
HoboBen
Fri, at 11:44
Pakz
Fri, at 11:28
Link to this page
Site : Jayenkai 2006-Infinity | MudChat's origins, BBCode's former life, Image Scaler.