-=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- (c) WidthPadding Industries 1987 ||0 -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=-
Socoder -> Blitz -> array Problem

Posted : Saturday, 07 January 2012, 19:06 - Mark Unread
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?



-=-=-
DNA
Posted : Sunday, 08 January 2012, 12:00 - Mark Unread
bram32
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 - Mark Unread
dna
A type mismatch now



The dim does not work.

Does Blitz pass string arrays?


-=-=-
DNA
Posted : Monday, 09 January 2012, 16:04 - Mark Unread
Evil Roy Ferguson
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:



No idea what you're doing, though...
Posted : Monday, 09 January 2012, 19:15 - Mark Unread
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 - Mark Unread
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.


Posted : Tuesday, 10 January 2012, 19:27 - Mark Unread
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 - Mark Unread
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 - Mark Unread
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 - Mark Unread
Evil Roy Ferguson
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 - Mark Unread
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 - Mark Unread
Evil Roy Ferguson
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 - Mark Unread
dna

Found my syntax error


This is right.

-=-=-
DNA
Posted : Thursday, 12 January 2012, 02:36 - Mark Unread
Retro
Can't you just use the Replace$ function?


Posted : Thursday, 12 January 2012, 11:54 - Mark Unread
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 - Mark Unread
Retro
Unlikely. The library functions would be C/C++ not BlitzBasic.
Posted : Thursday, 12 January 2012, 19:02 - Mark Unread
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