struct StringsBase *StringsBase=0L; /*#define RUN*/ #ifdef RUN char *GetStrings(s,as,bs) char *s; char *as; char *bs; { /* */ char *p=s,*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; } if(!bs) { bp=sp; do ; while(*bp++); } if(!fl) { if(bs) bp=(char *)strstr(ap,bs); /* Exists bs ? */ if(!bp) { bp=ap; fl=1; } } if(bp>ap) { do *p++=*ap++; while(ap ",as); if(bs) printf(" bs <%7s> ",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"); GetStrings(s,as,bs); printf("OUT <%s> len = %x\n",s,strlen(s)); strcpy(s,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(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 = IN as < 34> bs < 567> OUT len = 11 IN as < 34> bs < > bs = leerstring von as bis EOS lesen OUT len = 24 IN as < > bs < 34> as = leerstring bis bs lesen OUT <> len = 0 IN as < 34> bs < 56> OUT len = B IN as < 34> bs < end> OUT len = 1A IN = <34a56> IN as < 34> bs < 56> OUT len = 1 IN = <3456> IN as < 34> bs < 56> OUT <> len = 0 IN = <138,350,00
> IN as < <> bs < >> OUT len = 18 IN = <138,350,00
> IN as < >> bs < <> OUT <138,350,00> len = A */