mandel@vax.anes.tulane.edu (Jeff E Mandel MD MS) (02/27/91)
This stack addresses the need (or rather, my perception of the need) expressed by Peter Bako in his posting to comp.sys.mac.hypercard of 26 Feb 91. As it seemed that others might benefit from it, and I spent several hours hacking this together, I thought I'd post it to the net. Briefly, if you have a file with a resource formatted as a pascal string, this XFCN will get it for you. If you specify a full pathname to the file as the first parameter, the XFCN will use that string; if you pass an empty string for the parameter, SFGetFile is called to get the filename. The call is filtered by the fileType specified in the first field of the rTYP resource of the stack (I include a TMPL for editting with ResEdit). The ResType of the resource is specified in the second field of the rTyp resource. Note that the rTYP resource is accessed by number; don't renumber it. Given the file and resource type, the resource may be specified (as the 2nd parameter) by ID (any positive number), index (any negative number, i.e. -1 returns the first resource), or name. Note that the XFCN closes the file when done; it would not be a good idea to point it at an open application, stack, the system file, etc. Good will ware. Remember me when I need a favor. Jeff E Mandel MD MS Asst. Professor of Anesthesiology Tulane University School of Medicine New Orleans, LA (This file must be converted with BinHex 4.0) :$@GPG&*PFe0dFLjcDA3!8dP8)90*9#%!!!!!%di!!!!!ldp6593K!!%!!"01FNa KG3'q!!!!&J!!!J)-Cf9d8Q9c8h4bD@jRG#jMF!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!8e4"5eG*6%3!!+2[m1LMm$##!!! 4q`!!&Z!!!!b4!!!'0eRMrT`!!!!!!!$jM3!!"!J))!+KJ"!1"VcM6j%*)#!@3(P d4SD3!$EbE-%"X!+)2&`JTJK!mimG!!BKj3"BJ#32R$*bU*4T!`G%$!%%Te!*XZ4 +%LC%#!V0ZE2Rck"$NbSG1JSHM%%",B!,''&IaipJL&c-Z2%Ub#P+8!&!B!EPP"F 3R1LL*`6,)c!1AL`)#3,0@""3R%"b'h)M$"3Rj5!3"XL-!EP1@JQ3!,%4"5!QlM! !q)I2L4FARjc81I6Pba!Q6kB8#HM%5N!Njd*J31&QV"*+CLKXeCM!D`Fq!Nq#%BT !cK`jBm5`-A1'S!F%4Y+`+82&*A-R3CS`N!"5CXkE1X#C1kF#[3P#+DApk82pB(9 V"(!%[!#!4)m!)#mBU%AJ6!Q!*qp1&Jr!,XZM&cc%P!882r!`!!LTJ0,#&rrSBiB &96b5bLX`I)!%-1[&TpB#9Nbd@`$#[1"#JfSjB!NFm!'J&Ni245JA%Qlmidq*P1K J)4i$U48!1Jr*Y9''mZQL!!L)kI)!$8S!JKm!'*JK"`JakS0A#e$mSdi2Z-R`McP B!U!P1L*Zf9i!M[`)J"`"r"!!M&DZabBR*5ULa)LFR)&#K'Eq-+)S*5TK)jZQU2@ !&)!@k3!S5c)!"J4M`U#K,JESiD&!$"LUMiX,T()*$am`B-3rrlMeB)369RJKN!" U+8$(T!#!!k0iF!5!ULi*Q1'"#q)aF!!!,54U"JUh!3!#V,)#m'J#Y1!!J(p30SM A#i!4m!-"U$KJ`KFH-U%V!$#dJF+f1EJK3Ubc*Q#)$mXqdUb88%!,J,3(*(LYKak mUNq*@M!EjE24fTY++0IbY8"XT&*S)BE'"TQ!-KlD)&FUNK6CJ!)[6&#L%a)M)0H M"Z$bJ`'TD)+RX3$S+D0D$A"JBk+3!'%!McrL@)DCCSNF83391NNK44&6!'$$"-N Y"q8EG)!`adYMT'&''Q@3!1"0-8FCbBa5pY0"d[!%#'fq%38C!Cj4"aa4db%( G(#UDPUk)BkR&!"XJI'!CcCfjF8GR4P54"QPUbfA#H4'GFGJ#EN[apcrmc&e()Tf 4`3EH80M"pfRR--RD5ArI06!%F"bQSLlrH2*34'kG3F+M$-"M!b!A5J()HQVp3mJ *3!#JAU8Vf1kf+8Y#%&(,NeAQK@D4G&CeCcF-3EBFDEKaKK&3M$%jHj@EKcRJQhF 11qJfM,j!k5,B3!N-%l6qqZIrJ%#ll5q``(lZ!VJ04++r4aDmiTJB6`IbbTIGr20 550lbrNH3!0*3MNQC3d"%c-!jckR&(mc`AZPi8*2YqB-A+)"2TCi@*!E`!(8+@0f T2ZF28+c[GLq!hiC#rX'**)+LIC#LM1%MSMhm$G*i4f&"!YD('FUeK3!)Af%! ,-N'#&#(#SaEJL3`p,5fk@!!Ph#)#BAe!'S#`35$)Cci,HZ#%m8QKlU))RbH+-Aj #iXH5-#$$q`f[$T1ii4F%k$mG4Sm+-CLHhl"h"L+T8"Ip3!IT+#)"%(!3!33jJmB )"dKTZ19`LAZM$Ep!K[h0XAr-dk(NT[G$k`N4F+f"J,[8icle-2)I$!!H$GmBabr !iA&I-))8KN$(6*i"MjbXAJ*4X)EhM9%"QPJ2P%ibbP3aJST@a+)@Z3J-eff[(aB !)qjqLB0K9JS`k[PM!Z$aU(j)3*A#di`Q1K1'9q+`MJ#N*5B*Q%XJAQmXCe3,2k6 4[Pq'N!"ec6bI2$d"aP,'NeDqD1-U0C-*FXlKR,D8T6Tc@*bd(G"k#)!""EViZF6 eb*q-6-#6&J"1a8QL-fq!3r33qMmME0+Ke(0R4#HDcqha!`%AC9p'@9#N"("#S1' %)dK&@S8aN!"8NhTN`183N!##)!)!#MR!cDkBX$Afk+8&20`)"&L$1-Z!!&Y2F!) d,J'&)1MN#9SSJK5Hd*NB`)!+@"K#%l3#QL%X)DK$,HT*MTT8!#3!!%cP)4+H'P8 !6$9'NE`U&,+keCa4i3QJFF)4bRV@Y+j9#'ep+dSl195fY6##m'%NI9,`9U6LCL" jG5SN1ZS&`4,@%k*a!K''%!3T%+%*2*Y#%'`f"-DL9DeXIB*EHrJ2FF4RU1d"J$A BG#pGl%-$`88'QpbKPRdiB#*12!QEd+%@IIJ$ZZb*%6h8dJm-"-%Grk"(SPk!!1* b&`R%C92-M-X$l$lU(d!)VK`H"3!rT-G0-9S[2b"ahqb'9jk%k1pbjBN(!FH)ZVV J"aX-6+)%Ji'UhP!F)%)`K65F`3eKB)-4`N#($"G"$R*iJaaXkeLYF'd-Di#Hp!! J!3+-!!JK+!%!UKJ'0mcK$M!"3494qY[cq-HbMr)("9,`"3!)JDU4e!`J5&$K#fH B1R6!MK[)aZ%k(23,CVhYBdqFBLMdG(V$4%!)M#S%#62C`KKQ!j5P618SAcR,*4B #Pk%A2Elp!aUS#3!#I2!d#3c9&e3`6+`q&&mp"-!5jY9&2M5"K'1mi!!$eS8qb)$ G-EP"[@V*KarFbd%fF526EUMdJCZ,L1rq!ahM,DpfQfX(8iXh2j95GB2hB3S'EpH i$Q!`FidV!!BM@"rfB2"kpD%1"RpDdYjJ`"%%XL3FQ%%&`A8'Qk#K&Rb`3p5c4J+ $U5eT@26Z`F&&G)biM3pKB,Ziqr$!YUYVL0kP0dE@b,3!h"ZNIKJJZ&))-K%B('p *@i("aG@(%MDb4XK!!"$r3)EL2Y%m-iLi$8'3!--C001'0cF@Yh*q!iT9M$BFZ"M '-JC"'#4HKcD8`3edQ)-,4!!#BBhm$#8r14e@hR*KbD%-FDK$'QiqKjVAq-BjhV% "UDGR2J2!!F!p"JJ18)lAd3!"D#3!#aUpp+D$J!j34`[ES%J!A9#Gk8k(ZPS)3!' $)cbRRaK#522!d)LIJF3BRr-FkMcCF``!!dC(qRQqh[3A2"f0!`!'LVCh$a8mK1q !Z(V@4FP)!KLK5!5`aBmAm+Kpm)%&&P)kf2dZGPd-`"&&ZSI[$0!bB2`$(SVc"(A 'm!Bl`)3*Eh#Hfq'qCBfR''efjNDHpr`d[Bq&A*qcKbTD!!6%J3!)3S#!UI8"J`- 3S2K!+&e!Y2&m!"LLSB,i!K!DbSJTE$mJTUM#pS'`KHec)![I"`!U[)pppR1!r6K J2a&f!`"Cq+Fp!K"&+Ja!C#0r5!Vhjak#X(rp*`3I)J3"+!"F3)"&CS!#)3-*b!- -k(m#)3)*k!!6k)!")!%"'!$UN!#"(b)!(BJ-)"J3mY#"U&##!#!1(3J)+LJ0(BJ &+LJ-(@J#+LJ,Bf)"N9B2jP"TMJCTqD8@pX!+PDB(+qKTDP%2aS"Y#(B2i'"UU!C Vj-8QYhB2cZ"UUCCSq'!)paFPQ@B#EV%H'@KVDR%28U"VC@J%[PD'1L"XCHJ#aPD ')V!NMZ)qCDB,!C!!H$`N"'La)KKLKcT5B1VKAm9P$rM!-Zj`F2p!$BV6#8f@CN& 6"KmfBPKfFE@hFA-3!!43"@k`"Ql`"RIJ"L"`0@8!!M$a*)!"!#N!!"m3L5"!"Qp 3(8060+b(FQ(32#$!FpH4(5%3%"AJLLG("UES"UaA"bJ(%dh6L`$`LmT4LR!`FQ& JFR53!'1R+',+k!#Zq)P&%e)ReiX3i)ShC`B8"`*Li$@p+!'Z1!Gj-!I6f!DQ#', @#!!Ei)Tfm!CX%(1[')XpTifQL!GT`)lAk)T*m!6[''*bd)X8i)SCGR0HN`Ipq)m Tei[Bf)a3%SfP@)jNd)X2N!#04$1+eq%''4N3)[!&F3-+61!#J1!%FI!M#4!$`#! !)+!C'`%'pM#5F4-+Yi))6U!29Q+6A`!+FX16i1#6S*!!!M[j$pC!P#T`P-a3'[m !$+B'$'-f9a)!#K63!l8$!5*`(M)J&KCJ'5-j%8i3$8i*PH!PPDfK!#`@!qF"!"B !#K@!P8F(PPr!"Bm`PR33!&Ie!qU"!+fJ$R332cbjA9D!1*394!R8!NZ!1%U`!@E !$pE!$k"L!Gc`Q)D%1+UdA@pN#1`)("c'@ra`Q1q%!)U*1*4TQ52#$jQT1*aC0Q- !"hR33`me9#E!"&+`#%V!!CE*!*!!X!LNT4QY+3I,d4S"m3)`Z4i+p!BR)34RN!! +lN"HDJ%!1S!&6d!#FP-(42)ZCk!#abF#5!!"'A!'(L!"%5!"`!!"!@!'q$!*b!! ##H"p$!!)"2%2Ef!!)-!$mhP`f8N!QV'ICe")3#"9%!!'"!!"k#!38B!-$C*mqkN C!6%39+%3#8%3G`!!9d!%9$!"'N!3(!!!@Q!l90!%8-!%"+%"!J)&"!''4M!%6N! 3-R!J3m%!3J'M"E!8$S!0!$!"0IFd"%%!*pS!ZSJGBe#+$IF'#4!fBe-fC`-!!#! !-)9+N!!Pra,q#mJ`S)+!&X!&(0L`BX!!$T-aa!KJ`Df*"bb+E&JJ))54+!-+#!" Q`-U@,efb(0"YRTd,&DF!!"8JP3"3$38!%!!XTG'M5*-UAFUdUG1R8+0+R8UeD30 E!4Q3!!TJ4@M9Vf$$LKe,YLaC3!`T!N!%3-6DYQX4L4#"5#jG95*8)F+VLTQU'Ah rUR+RDYIJ`S0hlA,R6V'lIl[q2Bim@@(NIi!J#!!4!!%3!JT$rj0,QUk)##+))%+ YQKJJ"QL'#)"K)KD-!4Z`!@235"8!hm$ALUKLQMJLiP@1$lr6MERcEQJYUUSb[AU 9!B53!-"JX$+!)#)jL!J+3"i4"4&"%!8433%3S#!q%##J-%i%!8Cd4&c!"-%A)%3 )V)-!)S#8J)`-LC!!33)6NSM#54#qU*!!$!AV!!%8!!3m"!!J3)!`&!%$qBB@@fK KjYk*J#$!J3M"!"+!!+#Gq)pm#1#6ha'2A#"#(,m!m-X[X!3*bcprq0+&+%'JT8m p5i)#KC0Q45RPP&4@DH@9@'DTjCC80Y"##b"--BBFDF""4a&NT%'(+L"!)8FCCXb K3a0[Z"('''q`N!!$#c6F`))-0,"3!`b"fJ!$$#`JLZLJ$3"!"JKST%&''8E)m8B E6+6KaKS00&!R#'E8iFBBG+44ja*Pj!%#(@L8J@SH$D4KaUUY[JT#'R1!)%)--BK !DaPZ3#STTCCLULQR`$iDkULPRTUUPf#+5DDCD+V*TTY`bNQRRAMUbDHIJ!T++!Z ')KS$$6L`F'kkM(,TlV[`aLX[98)e%84"S88&48J!8$*4S")!P(`%`#bN"dB, 9[!`hl2$$%%FXF9+!-*&%35#*a*&D!'"%a&!!R$3!'"fAX*&&#Ic,dF4*$34&%%F 8%9$+&L&`J%3"f"'3!%GJM%#++i!i)BBK9!"#L4)'!%)#$"Y3J!8#N`"55`N')+) *)Q'J%!S-)&53!!NEV8K$J3(54*1*)3KN)J%bQH!4aK"Q$%-"(KbX)BN!j556M)F Xpqhhhi!(,[MJK"GZq1')*kliiS`hl[MMN!"(,[RNP&IZ,K"#,((%a`!S)$"5((Q HN9J$J$*%%&*`lP&80(HZN3%!m"Z!)b"hV!d!b(5-83!K!&"-!$F%N!!#)!08Y$) $$%&`4KPd5&('(&233DBEC`6dD4Y[e$&('9A!d3!FGG!"`[*dc#(pQh1J-)DbE$` UJKPTX&''%f'd8BB),+`2D[ZkSZqm'@9idkMZPi*EZB%1E`#"rXc!2a'`UJc4Qpi C40#!C)%!HpVMR[Hq&+BaPHP-D9T6Qpi8TcR9k8jjfP1IrK5S34AU8(U+33c&e5L i&%!!*EN#!'i!!'S%B"SG%dRa%X!3j$A%"3"`#3%!%)SG!S!@!F"&l5T52#1'c(p `#L#`aP#'LUJ!3c"bP"2[%)"A6,%K98`Hr14(2rYj%3!'#+-dGYLC!"cMM!a*SdN H'%&09BmKEMN!$L[LK!!Xa#Y8"!!4Xp+3!(rXibe'L&mC3'!Rqi%!"89SJjP8CBB hb!%%jJZ$'mJ3"MNS5j)Tk*3UR6H(l-Q"LlHDe!&PPBB!AK)1EjL$#bKCKcD))B! p5!)4@%$*-TaKPflSj5rPd!0063S2a(c$!q9`"ea0%RfZK'8Pbj!!5P95S98J3&m Gf%!((I`M(`&)!J#UX$d3X,*DiN-J#-S3`Pq&N`TCJ%)iRjI05AEbN`m%P56TN!! (1%cb$E-+k"SR+FmhK8&Ca3+"+"m98))D&!3)h@FVkr"+KLB`JbjS`$FRL38M$-% *qk3$4pf3!+Z!`L%-FaK$'0J!5ZRj8B&eSJ1`bSI4K))6Qab&TCTZP5YFDNUR&(e $5"Z!*cMNJ8aR3)2iBT!!Jac%!!4+J01XLJ##*Nbd$$4Y!K'k1J9L8Q'FSTaN&Gb 3!!Bl"(!1DP+9Q0$`KMI30+00S'FDaU#T-K"cTM5&UP4cKEi!ZT8-$@M$9pN!"$Z %!3mZ5+XZ9FU'Y,U!RR9S!!TF@-!Di!!(,DK"$Q!`JaSf*%a8%!)6XS+`P+aX*%! `3QTA#i#VL!54$"P#T'4kKMF%C!"(!&BC("Z3!!qFC#3H)X!c*%''0q59)5!`5"+ BN!![KMc!#A8!J5)q15RacB%0i8X'hmd!!!: