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 );
Danmark vil mindske afhængigheden af globale techgiganter, men det kræver mere end politiske formuleringer og strategier, understreger PROSA’s formand Niels Bertelsen.
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.