struct StringsBase *StringsBase=0L; /*#define RUN*/ #ifdef RUN char *GetStringsCpy(p,s,as,bs) char *p;char *s;char *as;char *bs; { /* */ char *sp=s,*ap,*bp; long fl=0; if(s) { do { if(!(*as)) fl=1; if(as) ap=(char *)StrStr(sp,as); /* Exists as ? */ if(ap) { bp=as; do ap++; while(*bp++); ap--; } if(!ap) { fl=1; ap=sp; bp=sp; } /* as not exists -> Break fl=1 */ if(!bs) { bp=sp; do ; while(*bp++); } if(!(*bs)){ fl=1; do *p++=*ap++; while(*ap); } /* bs not exists -> Break fl=1 */ if(!fl) { if(bs) bp=(char *)StrStr(ap,bs); /* Exists bs ? */ if(!bp) { bp=ap; fl=1; StrCpy(p,ap); } /* bs not exists -> Break fl=1 */ } if(!*as){ ap=s; bp=(char *)StrStr(s,bs);} if(bp>ap) { do *p++=*ap++; while(ap ",as); if(bs) printf("bs <%5s> ",bs); if(as) if(!strlen(as)) puts("as = leerstring bis bs lesen"); if(bs) if(!strlen(bs)) puts("bs = leerstring von as bis EOS lesen"); GetStringsCpy(os,s,as,bs); printf("OUT <%s> len = %x\n",os,strlen(os)); return el; /* */ } int main() { /* MAIN */ long el=0; char s[1024],as[1024]; el--; StringsBase=(struct StringsBase *)OpenLibrary("Strings.library",0); StrCpy(as,"eins34zwei567334344drei56vier567end34fuenf"); printf("IN = <%s>\n",as); StrCpy(s,as); el=test(s,"34","567"); StrCpy(s,as); el=test(s,"34",""); StrCpy(s,as); el=test(s,"","34"); StrCpy(s,as); el=test(s,"34","56"); strcpy(s,as); el=test(s,"34","end"); StrCpy(s,as); el=test(s,"e","nf"); StrCpy(as,"34a56"); printf("IN = <%s>\n",as); strcpy(s,as); el=test(s,"34","56"); StrCpy(as,"3456"); printf("IN = <%s>\n",as); strcpy(s,as); el=test(s,"34","56"); StrCpy(as,"138,350,00
"); printf("IN = <%s>\n",as); strcpy(s,as); el=test(s,"<",">"); StrCpy(as,"138,350,00
"); printf("IN = <%s>\n",as); strcpy(s,as); el=test(s,">","<"); if(StringsBase) CloseLibrary(StringsBase); return el; } /* END */ /* IN = as < 34> bs < 567> OUT len = 11 as < 34> bs < > bs = leerstring von as bis EOS lesen OUT len = 24 as < > bs < 34> as = leerstring bis bs lesen OUT len = 4 as < 34> bs < 56> OUT len = B as < 34> bs < end> OUT len = 1A as < e> bs < nf> OUT len = 27 IN = <34a56> as < 34> bs < 56> OUT len = 1 IN = <3456> as < 34> bs < 56> OUT <> len = 0 IN = <138,350,00
> as < <> bs < >> OUT len = 18 IN = <138,350,00
> as < >> bs < <> OUT <138,350,00> len = A */