<sigh> sending again due to the "email too big" problem.
> I think the operative word in the original post was "might" as in, "might > look like this". I gather that it might also not. Is the question, how do you > blindly detect a date format? In that case, you are going to need a function > that analyzes a string to determine if any of the data between quotes is a > date. > > I might suggest: (as always watch for line wraps) > > on mouseUp pMouseBtnNo > put quote & "Mon, Jan 18 , 2010" & quote & ",9:14 > AM,130557,4319,Trade,Buy,X,135,8.25,10,-82.5,1417.5,20,10" into myVar > set the itemdelimiter to quote > repeat for each item theString in myVar > if theString is a date then put true -- or whatever else you want to > do at this point. > end repeat > end mouseUp > > Two very obvious problems will immediately present themselves: First, in the > example text given, nothing is a date! Why you ask? Because there is a space > in the date after the day number, which is enough to convince Rev that the > string is not, in fact, a date. But that may be a typo, and the actual data > may correct this anomaly. The second thing is, what if the text has no > quotes? > > All this underscores the fact that you need to understand the nature of the > information before you can provide a solution. If it is going to be true CSV, > then the dates and all non-numeric data will (or should) be enclosed in > quotes. > > One last caution: When using this form of repeat, remember that you cannot > alter the contents of myVar while the loop is running because of the way the > repeat command handles the variable. > > So a revised function that does what you want could look like this: > > on mouseUp pMouseBtnNo > breakpoint > put quote & "Mon, Jan 18, 2010" & quote & ",9:14 > AM,130557,4319,Trade,Buy,X,135,8.25,10,-82.5,1417.5,20,10" into myVar > set the itemdelimiter to quote > put myVar into tempVar > repeat for each item theString in myVar > if theString is a date then > put the length of theString into theStrLength > put offset(theString, tempVar) into charStart > put charStart + theStrLength into charEnd > replace comma with "*&*" in char charStart to charEnd of tempVar > end if > end repeat > replace comma with return in tempVar > replace "*&*" with comma in tempVar > put tempVar into myVar > end mouseUp > > resulting in data that looks like this: > > "Mon, Jan 18, 2010" > 9:14 AM > 130557 > 4319 > Trade > Buy > X > 135 > 8.25 > 10 > -82.5 > 1417.5 > 20 > 10 > > Bob > > > On Mar 8, 2010, at 9:44 AM, Gregory Lypny wrote: > >> Hello everyone, >> >> I'm creating an app that imports comma-delimited tables. A few lines might >> look like this, where there are 14 items per line. >> >> "Mon, Jan 18 , 2010",9:14 >> AM,130557,4319,Trade,Buy,X,135,8.25,10,-82.5,1417.5,20,10 >> "Mon, Jan 18 , 2010",9:14 AM,130558,4371,Accept,Your >> ASK,X,135,8.25,10,82.5,1582.5,0,10 >> >> My problem is that Rev treats each date in quotes as three items rather than >> one. I convert the comma delimiters to tab by setting the itemDelimiter to >> comma and then running the lines through nested repeat-for-each loops as >> >> repeat for each line thisLine in dataTable >> repeat for each item thisItem in thisLine >> put thisItem & tab after newLine >> end repeat >> -- more stuff here >> end repeat >> >> I end up with >> >> "Mon (as the first item) >> Jan 18 (as the second) >> 2010" (as the third) >> >> Any suggestions as how I might get the date treated as one item? >> >> Regards, >> >> Gregory >> _______________________________________________ >> 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 > _______________________________________________ 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
