Faster way to get tabStops?

Mike Bonner bonnmike at gmail.com
Thu Feb 19 01:40:19 CET 2015


Ah, here.  If you're looking for the longest formatted line, you can do
"the formattedwidth of field..." whatever.

Then, if you're looking for the maximum number of tabs, you can cycle
through the lines with for each, and look for the line with the most items.
 (if the number of items in tLine > tCurrentItems then put the number of
items in tLine into tCurrentItems)

Does this get you close to what you want to do?

On Wed, Feb 18, 2015 at 5:30 PM, Mike Bonner <bonnmike at gmail.com> wrote:

> The problem here is that even though you use the for each form, you are
> still using chunking (line x of field y) to do your checks.
>
> I don't know if there is a way to put the formatted text into a variable
> in such a way that when you use "for each" you can check the formattedwidth
> of tLine
>
> Since you're cycling through every line, with your current method, using
> "with i = 1 to the number of lines..." would work just as well and obviate
> the need for a self run counter.
>
> On Wed, Feb 18, 2015 at 4:50 PM, Dan Friedman <dan at clearvisiontech.com>
> wrote:
>
>> Greetings!  I am trying to set the tabStops to fit the data a field.  The
>> script below works great!  However, ask it to process a few thousand lines
>> with 10 or so columns, and you'll have time to get a cup of coffee!  Any
>> ideas on how to speed this up?  Maybe there is some magical property I
>> don't about?
>>
>> Thanks in advance,
>> -Dan
>>
>>
>> on formatData
>>   set the itemDel to tab
>>   put "" into theTabs
>>
>>   put 0 into l
>>   repeat for each line tLine in fld "myField"
>>     add 1 to l
>>     put 0 into i
>>     repeat for each item tItem in tLine
>>       add 1 to i
>>       if the formattedWidth of item i of line l of fld "myField" > item i
>> of theTabs then
>>         put the formattedWidth of item i of line l of fld "myField" into
>> item i of theTabs
>>       end if
>>     end repeat
>>   end repeat
>>
>>   put "" into fTabs
>>   put 0 into i
>>   put 0 into tTotal
>>   repeat for each item tItem in theTabs
>>     add 1 to i
>>     add tItem+20 to tTotal
>>     put tTotal into item i of fTabs
>>   end repeat
>>
>>   replace tab with "," in fTabs
>>
>>   set the tabStops of fld "myField" to fTabs
>> end formatData
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>>
>
>


More information about the use-livecode mailing list