29. december 2003 - 15:27Der er
16 kommentarer og 1 løsning
filtrering af tekst
Jeg er ved at lave en function der skal filtrere strenge. Der kan indgå to filtrerings tegn, ? og * ?: ét ukendt tegn *: flere ukendte tegn eks: ”jul”, ”gul”, ”sul” opfylder alle ?ul, og ”god jul” opfylder g*l
Men min funktion filtrerer ikke rigtigt hvis jeg har mere end én * involveret? … short left = 1, leftFilter = 1, len = 0; //left holder pos hvor langt filtreringen er nået i s, mens leftFilter holder samme for filtret //len er længden af den del af filtret der ligger mellem de to tegn der nu undersøges String s = V; filter.Delete(1,1); s = s.LowerCase(); filter = filter.LowerCase();
do { short nextTegn = FindNextPos( filter.SubString(leftFilter+1, filter.Length() ) ); // FindNextPos returnerer position på først fundne * ell. ? i den parameter overførte streng len = nextTegn; //længden på filterstrengen indtil næste tegn if (nextTegn == 0){ nextTegn = s.Length()+1; len = nextTegn; } else nextTegn += leftFilter;
if ( filter[leftFilter] == '*') { if ( leftFilter == filter.Length() ) //* er sidste tegn i filtret { res = true; leftFilter += 1; } else { short temp = (s.SubString(left, s.Length())).Pos(filter.SubString(leftFilter+1, len-1));//nextTegn-1 )); res = ( temp > 0 ); left += (temp-1) + len-1; //left += position +længde leftFilter += (temp-1); } } else if ( filter[leftFilter] == '?') { res = ( s.SubString(left+1, len-1) == filter.SubString(leftFilter+1, len-1)); left += len; leftFilter += len; } else if ( filter[leftFilter] != NULL) { res = ( s.SubString(left, len) == filter.SubString(leftFilter, len ) ); left += len; leftFilter += len; } }while( leftFilter < filter.Length() && res );
Ja, det er super Arne, jeg er bare træt af at jeg ikke kan finde klassen i hjælpen. Hvis du fandt noget online, vil jeg meget gerne have et link. Og vil du have point, må du give et svar.
tak for links, jeg har set i regexp.h og ja det er ligetil, hvis altså man kender til at bruge [a-z] og det gjorde jeg ikke. Iøvrigt er det ikke a-z æøå er også med.
ja tak, nu har jeg fundet oversigt over syntaksen dertil
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.