× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Scott,

Thanks for the (as usual) detailed and informative information.  I just 
have to nitpick though - this is a pet peeve of mine.  I'm sure you know 
this already, but I want to point it out because there are a lot of people 
out there who don't know the difference.

This is a slash:            /
This is a backslash:  \

The way I remember is that the backslash is leaning 'backward' in relation 
to the direction I read.  There is good reason to be precise about this - 
as you pointed out below, Unix-type systems (including Linux, the 
stream-based filesystem in i5/OS and I believe MacOS) use a slash as a 
directory separator, whereas Windows uses a backslash.

Sorry if this comes across as pedantic.  I just wanted to bring it up 
because I'm always surprised how many people get this mixed up. 

Thanks again for the explanation ... I was never quite sure what UNC stood 
for or meant exactly.
Adam



midrange-l-bounces@xxxxxxxxxxxx wrote on 26/07/2006 04:58:03 PM:


===> "e) You use RTVNETA to get the system name to use in a UNC path. 
This
is incorrect."
Then, I do not understand why is working perfectly if I try to use it 
for
files with no spaces in between, like DIRECTDATA.txt, SAMPLEDATA.XLS 
or
TEST_DATA.TXT?

I hate trying to explain this -- and this is now the 3rd time I find 
myself doing it on Midrange-L!

Consider this code, which is obviously incorrect code:

     RTVUSRPRF USRPRF(*CURRENT) RTNUSRPRF(&SYSTEM)
     PING RMTSYS(&SYSTEM)

How can it PING a user profile?  Yet it works perfectly. Does this mean 
that you can legally PING a user profile?  No, of course not.

My user profile is KLEMSCOT.  I happen to have a computer on the network 

who's name is also KLEMSCOT. Therefore, the PING happens to work -- that 

doesn't mean that when it's time to look up a computer name, the 
RTVUSRPRF 
command is the right command to use!

The same is true for RTVNETA.  It returns the APPC/SNA name of your 
system.  Can you use that name in Microsoft Networking?  Sure, but it'll 

only be coincidence if it works.  The guy who configured your system 
just 
happened to use the same name for the APPC system name as he did for the 

Windows Networking system name.

My name is Scott.  If I call out "Scott, come here" the guy in the next 
office will walk over here.  His name, just by coincidence, happens to 
also be Scott. That does not mean that calling out my own name is the 
right way to summon other people. It's only coincidence that his name 
happens to be the same as mine.

The same is true in your case.  Your APPC system name coincidentally 
happens to be the same as your Windows Networking name. That doesn't 
mean 
that your code is correct.  If someone changes your Windows Networking 
name and not your APPC name, the code will fail. If you run it on my 
system (where the names don't match) it'll fail.

You'd be better off hard-coding the name than using RTVNETA.  At least 
then it'd be OBVIOUS to the next programmer that the code will only work 

on the current machine, instead of misleading him into thinking that 
it's 
written in a generic way that'll work anywhere.


===> "f) You assemble your UNC path into the &SYSPATH variable, which 
is
1000 chars long.  This won't work..."
Again, I am confused then when the other examples presented above can
work.

It'll only work if the last 877 bytes of &SYSPATH are blanks.  What's 
the 
point of making a variable 1000 long when it's impossible to use 
anything 
over 123 chars?


===> "g) The samples that you included in the e-mail involve a UNC 
path 
that points to TXT file.  You then pass this UNC path to STRPCCMD -- 
which makes no sense..."
Just for illustration of the issue, if I go to Windows Explorer and 
type 
in \\TT400\ROOT\TEST\Copy of DETAILDATA.txt it will automatically 
launch 
NOTEPAD.EXE but it will not work from my CLP; However, if I try to 
access the file\\TT400\ROOT\TEST\DETAILDATA123456abcdef.txt it will 
automatically launch NOTEPAD.EXE and it will do exactly the same thing 

if I run it using my CLP.

Windows has several different ways to run commands. There's the 
CreateProcess() API (which is what Microsoft recommends), the 
WinExec() API(from Win 3.1) the ShellExecute() API, and probably some 
others that I'm not aware of, since I'm not really a Windows guy.

When your 5250 emulation software was written, the programmer who wrote 
it 
had to use one of these APIs. One 5250 emulator may behave differently 
than the next 5250 emulator!

I tried your program from the open source TN5250 (Current developer's 
sources from CVS, from tn5250.sf.net) and it worked just fine with the 
way 
your command is quoted. With or without spaces, it doesn't matter. I 
happened to be the programmer who wrote the STRPCCMD support for that 
emulator, so I know how it works.

I also tried your command from NetManage's Rumba (version 7.3), and it 
worked just fine from there as well.

Then I tried it from Mochasoft, and it didn't work.

If I change your code to specify "notepad" (the actual program name) 
instead of just sending the pathname (as follows) it works just fine in 
all 3 of the above emulators:

   CHGVAR     VAR(&SYSPATH) VALUE('notepad +
             "\\' *CAT &SYSTEM *TCAT '\KLEMSCOT\' *CAT &OBJ *TCAT +
             '"')

I don't have iSeries Access (our company doesn't own a license for it) 
so 
I can't try that one, but I suggest that you specify the program name 
instead of just the pathname, I think it'll work better.  YMMV.

If I use the "start" command (as I previously suggested) it has problems 

with any filename that has a space in it, but specifying "notepad" 
instead 
doesn't seem to have that problem.


a) What is an UNC path?

UNC path is a Windows term.  Normally a pathname in Windows consists of 
an 
(optional) drive letter, followed by (optionally) folders, and then the 
filename.  For example:

      C:\Documents\Programming\RPG Manual.pdf

The problem with this syntax was that in order to connect to different 
devices, such as network drives, you had to map a drive letter to them. 
On a big network you very quickly run out of available drive letters.

Later, Microsoft introduced UNC (Universal Naming Convention) in which 
you 
you can specify the comptuer name, share name, diretory name(s) and 
filenames all in one string. This was integrated into the operating 
system 
starting with (I think) Windows 95.  In UNC, you use two slashes, 
followed 
by a comptuer name, a slash, the share name, a slash, folder names, and 
finally the document name.  For example:

        \\Computer\Share\dir1\dir2\file.txt

This gives Windows something similar to what a Unix machine would have 
with a path like this:

        computer:/dir1/dir2/file.txt

The computer name in UNC format can either be the Windows NetBIOS/SMB 
name, or it can be a fully qualified domain name or IP address.(at least 

in recent versions of Windows)


b) How can I add the quotes at the end of this parameter so the 
STRPCCMD
command can work correctly?

You're already doing that correctly.  When I run your code, I get the 
quotes as expected.  All I can say is that you're probably getting a 
garbage character in the string somewhere.  Take a look at the parameter 

in hex to see if there's something besides x'40'.  It's not happening on 

my machine, but then I'm not calling the program the same way that you 
are.
-- 
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing 
list
To post a message email: MIDRANGE-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.


#####################################################################################
Attention:
The above message and/or attachment(s) is private and confidential and is 
intended 
only for the people for which it is addressed. If you are not named in the 
address 
fields, ignore the contents and delete all the material. Thank you. Have a nice 
day.

For more information on email virus scanning, security and content
management, please contact administrator@xxxxxxxxxxxx
#####################################################################################

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.