tjena! Nej, regular expressions känns helt fel. Det enda du kan ha det till är att dela upp strängen i två delar. hej!regex på revisionsnumrering
Jag har en liten kluring som säkert inte alls är svår men jag vet inte riktigt hur jag ska börja!
Jag håller på med ett system där revisioner räknas upp enligt:
a.00
a.01
a.02
a
b.00
b.01
b.02
b.05
b
c.00
osv...
När en ny fil skapas sätts revisionen till a.00, vid ändring till a.01 osv upp till a.99 som max. Vid frisläppning blir revisionen a. Om det nu blir tal om ändringar kommer den nya filen få revision b.00 osv enl. ovan och när denna frisläpps sätts revisionen till b. Osv osv osv...
Jag vill kunna jämföra två revisioner och se vilken som är den nyaste. T.ex. a.01 med a.02 där då a.02 är den nyaste. Ett annat exempel kan vara att jämför a med b.03 där b.03 är den senaste.
Kan man göra detta med regular expressions eller hur gör man i dessa tider??!
Mvh
/stefanSv: regex på revisionsnumrering
Nu är jag inte med på frisläppandet, vad gäller där? Är a nyare än a.01?
Om det verkligen bara är ett "a" du ska ha (och inget namn eller så), och om vi antar att det bara är ett enda tecken, så att vi bara får a-z, så borde du lösa det typ via
bool isLaterThan(string a, string b)
{
if(a.first()>b.first())
return true;
else if(a.first()<b.first())
return false;
else
return a.substring(2).toInteger < b.substring(2).toInteger;
}
förmodligen späckat med buggar, men du fattar nog hur jag menar.
Sv:regex på revisionsnumrering
japp. i mitt fall är a nyare än a.01, och b.01 är nyare än a.
vid frisläppning godkänns en fil kan man säga.
ett scenario är att man i produktion använder sig av en monteringsanvisning med revision b. en montör upptäcker ett smartare sätt att montera en viss del och kontaktar då produktionstekniker som utreder detta. under denna tid skapas en ny fil som får revision c.01 och som stegas upp (c.02, c.03, c.04) för varje ny förändring tills dess att en ansvarig godkänner den nya instruktionen som då frisläpps och får revisionen c. när den nya instruktionen nu blivit frisläpps byter man från b till c.
jag löste det på ditt sätt genom att dela upp strängen i två delar. därefter körde jag en tolower() och jämförde sedan ascii kod för att jämföra a, b, c, d osv... om den första delen är samma konverterade jag sista delen till tal som sedan jämförs...
/stefan