I just used a text file viewer ("less") and that's what it showed.

I'm attaching a version with the line ends changed to normal ones. I didn't
check that PSPP accepts it, but there is a better chance of that.

On Fri, Jan 17, 2025 at 10:45 AM Nanci Avitable <avitab...@aaahawk.com>
wrote:

> I forget exactly as I've been trying so many things. Most likely a cut and
> paste from the original email (Mozilla Thunderbird). I can try typing it in
> from scratch and seeing what happens.
>
> Is there something I can turn on to see that for myself?  And if so, what
> should I be seeing?
>
> On 1/17/25 11:23 AM, Ben Pfaff wrote:
>
> Yeah, it's full of weird Unicode U+2028 Line Separator characters.
>
> Nanci, what did you use to create this file? It is a super weird text file
> that I would not expect any normal text editor to produce.
> [image: image.png]
>
>
> On Fri, Jan 17, 2025 at 10:20 AM Nanci Avitable <avitab...@aaahawk.com>
> wrote:
>
>> The attached Workaround.sps is what I used based on Frans original
>> suggestion just minus the Data List command. It's pretty much what you see
>> in the output.
>>
>> On 1/17/25 11:02 AM, Ben Pfaff wrote:
>>
>> Those are good suggestions.
>>
>> Nanci, can you attach the syntax file, please?
>>
>> On Fri, Jan 17, 2025 at 9:53 AM Frans Houweling <fhouwel...@email.it>
>> wrote:
>>
>>> Could it have to do with line endings or long lines, or character
>>> encoding (like utf-32 instead of utf-8)? That is what "1.215-1.225" (row 1
>>> columns 215 to 225) and
>>>
>>>
>>> |
>>> ^~~~~~~~~~~
>>>
>>> suggest to me.
>>>
>>>
>>> On 1/17/25 18:31, Nanci Avitable wrote:
>>>
>>> I'm afraid there might be something else going on which may have to do
>>> with the fact that this is actually an intel based program and I'm running
>>> it on a Mac silicon with Rosetta 2 installed. Rosetta is what enables
>>> silicon Macs to run intell programs, theoretically. I've also had the
>>> program crash several times. Thanks -- Nanci
>>>
>>> Anyhow doing as you suggest gets the following output:
>>>
>>> /Users/nanciavitable/Cloud-drive/Private
>>> Practice/Scoring&Report/ABASIII/ABASmacro.sps:1.215-1.225: error: DEFINE:
>>> Syntax error expecting macro body or !ENDDEFINE.
>>>
>>>     1 | define !subscore3 (!pos !tokens(1)/!pos !enclose('(',')')/!pos
>>> !tokens(1))
>>>
>>> !LET !limits = !2
>>>
>>> !DO !ssc = 1 !TO 19
>>>
>>>   !LET !limit = !HEAD(!limits)
>>>
>>>   !LET !limits = !TAIL(!limits)
>>>
>>>   if (!1 ge !limit) !3 = !ssc.
>>>
>>> !DOEND
>>>
>>> !enddefine.
>>>
>>>
>>>
>>> !subscore3 ctraw (0 10 14 18 22 26 30 34 38 42 46 49 52 55 58 62 65 100
>>> 100) ct.
>>>
>>> LIST.
>>>
>>>       |
>>>                                 ^~~~~~~~~~~
>>>
>>> define !subscore3 (!pos !tokens(1)/!pos !enclose('(',')')/!pos
>>> !tokens(1))
>>>
>>> !LET !limits = !2
>>>
>>> !DO !ssc = 1 !TO 19
>>>
>>>   !LET !limit = !HEAD(!limits)
>>>
>>>   !LET !limits = !TAIL(!limits)
>>>
>>>   if (!1 ge !limit) !3 = !ssc.
>>>
>>> !DOEND
>>>
>>> !enddefine.
>>>
>>>
>>>
>>> !subscore3 ctraw (0 10 14 18 22 26 30 34 38 42 46 49 52 55 58 62 65 100
>>> 100) ct.
>>>
>>> LIST.
>>>
>>>
>>>
>>> On 1/16/25 3:16 PM, fhouwel...@email.it wrote:
>>>
>>> Don't worry about the DATA LIST: just replace the define.. !enddefine
>>> part in your syntax. The DATA LIST and what follows was just there to show
>>> the macro works.
>>>
>>> Il 16 gen 2025 23:05, Nanci Avitable <avitab...@aaahawk.com>
>>> <avitab...@aaahawk.com> ha scritto:
>>>
>>> Frans,
>>>
>>> Thank you. I suspected that there might be a problem with Do Repeat.
>>>
>>> I have tried your syntax, but it is not working as expected. I wonder if
>>> there is a difference in the PSPP programs we are using. Mine did not like
>>> the Data List Free and when I removed that it said there was an error with
>>> IF parsing the expression. I will play with this some more now that I know
>>> Do Repeat could be a problem.
>>>
>>> On 1/16/25 1:29 PM, Frans Houweling wrote:
>>>
>>> I'm afraid DO REPEAT does not work well inside DEFINE. Here is a
>>> workaround:
>>>
>>> define !subscore3 (!pos !tokens(1)/!pos !enclose('(',')')/!pos
>>> !tokens(1))
>>> !LET !limits = !2
>>> !DO !ssc = 1 !TO 19
>>>   !LET !limit = !HEAD(!limits)
>>>   !LET !limits = !TAIL(!limits)
>>>   if (!1 ge !limit) !3 = !ssc.
>>> !DOEND
>>> !enddefine.
>>>
>>> I put an exclamation point  before subscore3 to distinguish it from your
>>> original.
>>>
>>> DATA LIST FREE /ctraw.
>>> BEGIN DATA
>>> 63
>>> END DATA.
>>> !subscore33 ctraw (0 10 14 18 22 26 30 34 38 42 46 49 52 55 58 62 65 100
>>> 100) ct.
>>> LIST.
>>>
>>>   Data List
>>> +-----+-----+
>>> |ctraw|  ct |
>>> +-----+-----+
>>> |63.00|16.00|
>>> +-----+-----+
>>>
>>> HTH, frans
>>> On 1/15/25 19:33, Nanci Avitable wrote:
>>>
>>> I am working on a new MacBookPro, M4 chip with Sequoia. I have
>>> downloaded and installed the PSPP version 2.0.1-2 bundle.
>>>
>>> I have several SPSS programs that I use to score some protocols and
>>> output information for use in WORD via mail merge.
>>>
>>> These programs include Define routines. Although the information I've
>>> read indicates that they should transfer okay, I'm running into problems.
>>> It may be that I don't fully understand when to use periods and things like
>>> "+". Below is a syntax portion that I've been trying to get to run. The
>>> actual program is around 1300 lines long so I'm just focusing on a small
>>> bit.
>>>
>>> My interpretation from the error messages is that there is something
>>> wrong with the "if" statement. Unless the problem is that Do Repeat cannot
>>> be used in a macro body.
>>>
>>> Thanks for whatever information you can give me about using Define
>>> properly. -- Nanci
>>>
>>> Data list / ctraw cutraw fatraw sltraw hstraw ltraw sctraw sdtraw straw
>>> (9f3).
>>> Begin data.
>>> 45 37 52 52 42 35 54 43 46
>>> end data.
>>>
>>> set Printback on.
>>> set mprint yes.
>>>
>>> define subscore3 (!pos !tokens(1)/!pos !enclose('(',')')/!pos !tokens(1))
>>> do repeat ssc = 1 to 19/limit = !2.
>>> if (!1 ge limit)  !3 = ssc.
>>> end repeat.
>>> !enddefine.
>>>
>>> do repeat ssc = 1 to 19 / limit = 0 10 14 18 22 26 30 34 38 42 46 49 52
>>> 55 58 62 65 100 100.
>>> if(ctraw ge limit)ct = ssc.
>>> end repeat.
>>>
>>> /Users/nanciavitable/Cloud-drive/Private
>>> Practice/Scoring&Report/ABASIII/ABASmacro.sps:7.1-7.78: error: DO REPEAT:
>>> In syntax expanded from `subscore3 ctraw (0 10 14 18 22 26 30 34 38 42 46
>>> 49 52 55 58...': Syntax error expecting END REPEAT.
>>>     7 | subscore3 ctraw (0 10 14 18 22 26 30 34 38 42 46 49 52 55 58 62
>>> 65 100 100) ct.
>>>       |
>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>
>>> /Users/nanciavitable/Cloud-drive/Private
>>> Practice/Scoring&Report/ABASIII/ABASmacro.sps:7.1-7.78: error: END REPEAT:
>>> In syntax expanded from `subscore3 ctraw (0 10 14 18 22 26 30 34 38 42 46
>>> 49 52 55 58...': No matching DO REPEAT.
>>>     7 | subscore3 ctraw (0 10 14 18 22 26 30 34 38 42 46 49 52 55 58 62
>>> 65 100 100) ct.
>>>       |
>>> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>
>>> subscore3 ctraw (0 10 14 18 22 26 30 34 38 42 46 49 52 55 58 62 65 100
>>> 100) ct.
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>

Attachment: Workaround.sps
Description: application/spss-sps

Reply via email to