Så lige denne her tråd, og kom til at tænke på den gang jeg ledte efter regular expressions fandt jeg ikke noget i hjælp filerne. Men fandt i stedet en alm side på nettet som om handlede det. Er der nogen der kender et link til microsoft som beskriver hvad alle de forskellige regular expression gør man kan bruge....
\ bruges i syntaksen for regulære udtryk. Derfor skal \ escapes hvis man ønsker at matche dette tegn dvs. "\\". Hvis jeg havde undlandt @ så skulle der "\\\\" til at opnå det samme (først escapes i strengen, derefter i det regulære udtryk).
Det regulære udtryk: [a-z]:\\[a-z\- ]+\.csv$
Matcher: [a-z] efterfulgt af : efterfulgt af \ efterfulgt af [a-z\- ]+ (som er mængden {a-z,-, }, med 1 eller flere repetitioner) efterfulgt af .cvs (som defineres til at være det sidste der må være i strengen fordi der bruges "$")
Men hvis du vil verificere om der faktisk findes en fil på det sted kunne du jo bare bruge noget ala: if (!File.Exists(@"c:\tra\ la-la.csv")) { Console.WriteLine("Filen eksisterer ikke !"); } else { Console.WriteLine("Filen eksiserer!!"); }
Det er et felt hvor brugeren indtaster: Hvor vil du gemme data? Så den skal blot verificere at brugeren har skrevet en "korrekt" sti og ikke bare "sdkfjhsdk"
Det regulære udtryk vil også sige "Ja" til: c:\aa\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\b.csv
Så det er vel ikke præcist nok.
Der er også mange andre tegn som et filnavn kan bestå af. F.eks. er det noget med at det i nyere Windows faktisk kan være unicode. Så begynder det er være besværligt med regulære udtryk. Og hvad nu hvis man ønsker at gemme på en server som tilgås \\server\dir...
Var det ikke bedre at lave en fileselektor GUI der så kun tillader at man vælger lovlige filer. Med andre ord, hvorfor skal man skrive stien manuelt ?
Det er mit første program i C# og skal kun anvendes af en person, han er ikke helt "dum", men jeg vil blot sikre mig at han ikke skriver f.eks "data" som fil, og ikke mere... Jeg har skrevet c:\data.csv i tekstboxen som default, men hvis nu han vil have det i f.eks C:\minedata\18.03.2005.csv er det jo ok. Men det skal være den rigtige fil-syntax, om man vil :)
RightToLeft har ikke betydning i netop det regulære udtryk.
Hvorfor det skal gøres har noget at gøre med endelige automater, som er den operationelle del af regulære sprog (regulære udtryk er den deklarative del). Men, det er noget omfattende at gå i detaljer med.
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.