Ik ben nu bezig een soort IndexServer in C# te schrijven en daarvoor wil ik dus alle woorden uit een file in een SQL-database zetten. Ik heb al getest met een aantal testfiles en het werkt op zich perfect (elk woord komt maar 1 keer in de DB en wordt gekoppeld aan verschillende bestanden).
Ook bij het aanmaken van nieuwe bestanden, wijzigen van bestanden, verwijderen werkt het allemaal goed.
Maar nu moet ik dus de files gaan parsen. De testfiles bestonden gewoon uit pure tekst.
Hoe kan ik nu het beste zo'n file (bijv. asp) gaan parsen ?
Voor de testfiles had ik gewoon iets als:
- file inlezen in een string
- alle punten in de string vervangen door een spatie
- alle komma's in de string vervangen door een spatie
- alle enters (\r\n) in de string vervangen door een spatie
- de string 'splitten' op elke spatie --> een string[] van alle woorden
Maar nu wil ik dus ook alle tekst tussen bijv. '<%' en '%>' eruit gaan filteren.
Misschien is het dan gewoon beter om de hele string te doorlopen en elke keer als ik een leesteken tegenkomen een nieuwe string toevoegen aan een array en die aanvullen totdat ik weer een leesteken tegenkomen.
Als ik dan '<%' tegenkom, kan ik gewoon doorgaan zonder het bij te houden (geen nieuwe string in de array dus) totdat ik de '%>' tegenkom.
Werkt dit sneller dan alles replacen of juist trager?
Of misschien een heel andere manier?
En wat is de makkelijkste manier om alle leestekens uit een string te halen? Mijn manier kan wat makkelijker door die replace-regel in een loop te zetten die door alle tekens <'a' en >'Z' (of juist <'A' en >'z') loopt. Maar kan dat nog makkelijker?
En hoe kan ik het zo makkelijk mogelijk maken om filetypes toe te voegen?
Ik zat zelf te denken aan een xml-file met daarin een aantal tags met de lettercombinaties waar op gelet moet worden.
Ook bij het aanmaken van nieuwe bestanden, wijzigen van bestanden, verwijderen werkt het allemaal goed.
Maar nu moet ik dus de files gaan parsen. De testfiles bestonden gewoon uit pure tekst.
Hoe kan ik nu het beste zo'n file (bijv. asp) gaan parsen ?
Voor de testfiles had ik gewoon iets als:
- file inlezen in een string
- alle punten in de string vervangen door een spatie
- alle komma's in de string vervangen door een spatie
- alle enters (\r\n) in de string vervangen door een spatie
- de string 'splitten' op elke spatie --> een string[] van alle woorden
Maar nu wil ik dus ook alle tekst tussen bijv. '<%' en '%>' eruit gaan filteren.
Misschien is het dan gewoon beter om de hele string te doorlopen en elke keer als ik een leesteken tegenkomen een nieuwe string toevoegen aan een array en die aanvullen totdat ik weer een leesteken tegenkomen.
Als ik dan '<%' tegenkom, kan ik gewoon doorgaan zonder het bij te houden (geen nieuwe string in de array dus) totdat ik de '%>' tegenkom.
Werkt dit sneller dan alles replacen of juist trager?
Of misschien een heel andere manier?
En wat is de makkelijkste manier om alle leestekens uit een string te halen? Mijn manier kan wat makkelijker door die replace-regel in een loop te zetten die door alle tekens <'a' en >'Z' (of juist <'A' en >'z') loopt. Maar kan dat nog makkelijker?
En hoe kan ik het zo makkelijk mogelijk maken om filetypes toe te voegen?
Ik zat zelf te denken aan een xml-file met daarin een aantal tags met de lettercombinaties waar op gelet moet worden.
