Jim,

You paint a pretty bleak picture to the aspiring "programmer/coder/ scripter". Are we already too far gone to espouse the establishment of some kind of standard? Or, at least, some method of Universal conversion to a common standard; perhaps something as mundane as a conversion function? I, for one, would not have the foggiest of ideas as to how to begin such a task, but you seem to have something of an handle on the subject. Thanks for your, as always, insightful contribution.

Joe Wilkins


On Mar 31, 2008, at 7:37 AM, Jim Ault wrote:

On 3/31/08 6:32 AM, "David Bovill" <[EMAIL PROTECTED]> wrote:

Recently had the following problem processing lists from ftp directories - fetching and displaying the directories in a list field was fine but when I tried to use the list field to obtain an ftp url the script failed - the
debugging was a nightmare as the ftp url looked correct and manually
entering the url worked fine. The problem? numToChar(13) returned from the
ftp url. So I now use this script to fetch the directory listing:

function ftp_FolderContents ftpDirectory
   libURLSetFTPListCommand "NLST"
   get word 1 to -1 of url ftpDirectory
   replace numToChar(13) with empty in it
   return it
end ftp_FolderContents



Rev uses numToChar(10) for line endings (showing its Unix origins), but if
written to a file on a Mac, using URL "file:", they're translated to
numToChar(13). if using URL "binfile:", no translation happens, so
numToChar(10) is preserved. I thought the act of putting text into a field cleaned' up the line endings to standard Rev numToChar(10) = CR's - but
seems not? I am also not quite sure hwat to expect from different ftp
platforms - it seems NLST is CRLF seperated - but my server is Unix not a
PC?

I am wandering if there is any tutorial out there that goes into these issues in any depth - they also come up when using certain command line
tools, and reading and writing data in CGIs.

Since this is a tricky area that usually requires customization, a quick suggestion: Google the terms that would apply to your situation, bookmark
these for reference.

Another excellent reference area is PHP.NET when it comes to managing
characters for web, ftp, and database delimiters. As you will soon find, it can be very tricky and confusing when moving data from platform-to- platform
and app-to-app.

And of course, you could post your specific need to this list and let others
learn some of the tricks that sometimes take hours to develop.

This is an area that I deal with frequently since I grab data from various
sources (other apps, text files, databases, web pages, ftp sites, php
servers, CD published archives, spreadsheets). There is no 'standard' since
all of these formats have their own delimiter conventions and escaping
rules. (Now add grep to the mix and you have some real head scratchers)

The main caution I would give you is to be aware of the exact escaping rules
for each data source and its storage location.

One example is the path name which has special characters depending on the operating system (not to mention 'long name' limitations). I believe that most of this is documented in our list archives. It is like driving your car on vacation.. you may or may not have to worry about crossing water.

The Rev docs do get into the use of binfile, CRLF and other issues that regard single character replacements, but there are other considerations:

encoding files for storage or transfer, then decoding later
multi-character html entities
xml tag rules
database text string storage
CSV, tab delimited files that include quotes and commas in the data
invisible files on ftp sites
permissions that allow the directory listing but not access to the file
contents

It is difficult to find a single source for these issues, but they are
critical to successful programming.

Hope this helps

Jim Ault
Las Vegas




_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to