Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Bug in ALINES()
Message
General information
Forum:
Visual FoxPro
Category:
Coding, syntax & commands
Title:
Miscellaneous
Thread ID:
00824830
Message ID:
00961625
Views:
24
Hi Ben,

Using MLINE() and _MLINE is very slow on long string (MaxCov plugin by Markus Egger)
*********************************************************************
** MLineEx() equal to MLINE() but faster
*********************************************************************
PROCEDURE MLineEx(lcSource,liLine)
* @lcSource - Source string
* liLine    - Number Row
LOCAL liEndCRLF,liStartCRLF
IF m.liLine#0 && 
   liEndCRLF=AT(CHR(13),m.lcSource,m.liLine) && 
   IF liEndCRLF=0 && Pokud konec nena¹el (i to se mù¾e stát)
      liStartCRLF=IIF(m.liLine=1,1,AT(CHR(13),m.lcSource,m.liLine-1)) &&
      RETURN IIF(m.liLine=1,m.lcSource,;
             IIF(SUBS(m.lcSource,m.liStartCRLF+1,1)=CHR(10),;
                   SUBST(m.lcSource,m.liStartCRLF+2),;
                   SUBST(m.lcSource,m.liStartCRLF+1))) && 
   ELSE
      IF m.liLine=1 && 
         RETURN LEFT(m.lcSource,m.liEndCRLF-1) && 
      ELSE
         liStartCRLF=AT(CHR(13),m.lcSource,m.liLine-1) && 
         liStartCRLF=m.liStartCRLF+;
                     IIF(SUBS(m.lcSource,m.liStartCRLF+1,1)=CHR(10),2,1)
         RETURN SUBST(m.lcSource,m.liStartCRLF,m.liEndCRLF-m.liStartCRLF)
      ENDIF
   ENDIF
ENDIF
RETURN ""
ENDPROC
MartinJ

>I confirm this bug. My VFP8 SP1 application (running 24x7) using Aline() crashed in C5 error about once or twice a day. Finally I replaced Aline() with a Mline() and _Mline routine.
"Navision is evil that needs to be erazed... to the ground"

Jabber: gorila@dione.zcu.cz
Jabber? Jabbim
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform