123
-=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- (c) WidthPadding Industries 1987 0|577|0 -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=- -=+=-
Socoder -> Blitz -> searching the directory for a file.

Tue, 18 Jan 2011, 18:24
dna
Can someone check my syntax.

I looked at the sample and for some reason I cannot figure out my error.



I'm trying to match the name.

-=-=-
DNA
Tue, 18 Jan 2011, 20:21
dna

I updated the loop, found it is going through the loop, checking names, but stopping at a particular name while giving the error "parameter must be positive".



-=-=-
DNA
Wed, 19 Jan 2011, 02:53
j\\'ordos
Why not put a print or debuglog before the line it crashes? I guess that error comes from the left$() command, one of the filenames might have a . at it's start. Do the '..' and '...' "files" get pruned out by checking for folders? (filetype=2)
Wed, 19 Jan 2011, 04:55
HoboBen
T=Instr(DF$,"."):TR$=Left$(DF$,T-1)

This bit looks suspect. Perhaps check to make sure that T > 1

-=-=-
blog | work | code | more code
Wed, 19 Jan 2011, 16:20
dna
There's still a problem in it.

Here is the current source.



The program hangs for some reason.

GE$ is the directory location while GH$ is the name for which you're searching .

-=-=-
DNA
Thu, 20 Jan 2011, 04:41
HoboBen
What does HALT(11) do?

I think on line four you'll need something like

If DF$="" Then Return ""

Because on line three, DF$=NextFile will set DF$ to "" when there is no next file left in the directory.

-=-=-
blog | work | code | more code
Thu, 20 Jan 2011, 10:06
dna
You're right about the NULL. I'm not checking for that.

Here's the routine that I got to work thus far.



The HALT(11) is a routine for stopping the program at a spot to view the variables.

I also need to re write the routine for checking the names. The line LEFT$(DF$,LEN(GH$))=GH$ works but if you truncate your input, something like: 'pa' instead of 'pau', it finds the first occurance of 'pa', which is the wrong file.

-=-=-
DNA
Thu, 20 Jan 2011, 11:15
dna
Here it is.


This works having known the full complete name of the file. Partial names or any form of search for the name is not included yet.


-=-=-
DNA
Thu, 20 Jan 2011, 11:27
Orion Pax


and in your program put
IF GET_NAME$("C:\MYDIR","MYFILE.EXT")=" " then DO THIS

its been a while since I dabbled in b3d/2d but its like riding a bike. I just need to look over the docs on the site and I get the idea again.
Thu, 20 Jan 2011, 18:59
dna
Oh.
I never knew you could embed a function name inside of a conditional statement!

That could shorten the program quite a bit.




I was using at the top of the program which, though it logically does the same thing, makes the program a bit longer than doing it your way.

Also, does the statement

require the argument RETURN "" inside the function or does it return automatically?

-=-=-
DNA
Thu, 20 Jan 2011, 20:06
Orion Pax
Yes it still requires the RETURN " "! The RETURN command is ALWAYS needed when using functions or else there is no way to exit from them. The RETURN command also gives you a chance to RETURN a value back on exit. For example RETURN "1234" in a function would RETURN the string (I think since it has quotes) "1234". So A$=My_Function$() with a RETURN "1234" would be A$="1234". To do a numerical value omit the quotes.

With all that being said you could also as well do this... RETURN TRUE or RETURN FALSE, and with if statements you could do a lot with it. IF My_Function() Then DO THIS and the function could RETURN TRUE or RETURN FALSE! If true then the DO THIS would execute. False and it wont.

Uhhgg....I dont have b3d installed and I cant remember how b3d declares its variables...strings are $....what are # and %???? There are 3 types of variables...and I cant remember EXACTLY what the other 2 are called! Asking because I THINK functions have to be declared according to the type of info its going to return....I think...been a while. I know if its a string you HAVE TO HAVE a $ or it wont work. Dunno about the other 2.....

*EDIT*
Integers % (symbol not needed)
Floating point # (Symbol needed)
For some reason I was thinking there was a boolean version too...
Thu, 20 Jan 2011, 20:08
dna
I ed your syntax and it threw the program out for some reason. I may need to change some other things for that to work.

It jumps into a loop.

-=-=-
DNA
Thu, 20 Jan 2011, 20:13
Orion Pax
In your example the code box has " " and below that you have "", you have to make sure that it matches. If that makes sense? If your looking for " " make sure your returning " "!

Might be why....post your code for it and I will see where your looping.
Thu, 20 Jan 2011, 20:50
dna
This appears to be the final syntax.


It works in that subroutine.

-=-=-
DNA
Thu, 20 Jan 2011, 21:13
Orion Pax
the .N_FI and goto N_FI are redundant as that is what the repeat until commands do. And you dont have to look for filetype 2 since your looking for a file. But unless you have a directory with a similar name you might need it. But other than that it will work.

If you have any issues, post some of the code around where the function is being called and I'll have a look at it. At any rate its WAY past my bed time!