Archief - [C#] Wegschrijven van woordenlijsten, resultaten...

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Devastate

Legacy Member
Hey,

In de vakantie wil ik mij eens gaan bezig houden met een aantal zaken, oa ook een programma wat jongeren moet helpen beter te studeren. Dit programma zal ervoor zorgen dat ze hun te kennen woordenlijsten samen met vertaling kunnen invullen en laten opvragen. Daarna kan men resultaten bekijken en deze worden ook opgeslagen.

Mijn vraag; wat zou het beste zijn om deze woordenlijsten, resultaten,.. op te slaan? XML, geserialiseerde objecten? ... Ik denk er namelijk aan om toe te laten dat studenten woordenlijsten met elkaar kunnen uitwisselen.

Ideeën zijn welkom.

Thx !

Cycloon

Legacy Member
Gewoon een simpel txt bestandje en woord;vertaling? Lees gewoon lijn per lijn in en splits op ';'. Moet allemaal niet zo moeilijk zijn natuurlijk.

Btw, er bestaan al massa's programma's die hetzelfde doen, als je denkt dat je dus iets nieuws gaat maken is het verloren moeite.

Devastate

Legacy Member
Cycloon zei:
Gewoon een simpel txt bestandje en woord;vertaling? Lees gewoon lijn per lijn in en splits op ';'. Moet allemaal niet zo moeilijk zijn natuurlijk.

Btw, er bestaan al massa's programma's die hetzelfde doen, als je denkt dat je dus iets nieuws gaat maken is het verloren moeite.

Weet ik; maar ik weet niet wat'k anders zou kunnen maken :)

breez

Legacy Member
mja, simpel txt bestandje...
als je daar veel data gaat in steken gaat da op den duur ook niemeer performant zijn

kzou het zelf ook nie weten eerlijk gezegd, ben eens benieuwd naar andere mensen hun ervaring hiermee

Messias.

Legacy Member
Embedded databases zijn volgens mij de ideale manier. Denk aan SQLite, Berkeley DB, of die speciale versie van MS SQL Server.

Cycloon

Legacy Member
BrEeZiE zei:
mja, simpel txt bestandje...
als je daar veel data gaat in steken gaat da op den duur ook niemeer performant zijn

Alleszins performanter dan zijn voorstel om XML te gebruiken of objecten met woorden te gaan serializeren.

Het voorstel om met embedded databases te werken is niet zo'n slecht idee qua performantie, maar het lijkt me wel redelijk zware overkill. De kans dat er ooit > 1000 woordjes in zo'n programma moeten komen als zijnde 1 reeks lijkt me klein (en zelf dan nog, 1000 woordjes inlezen duurt mss 2 seconden). Het verdelen van woordenlijst onder mekaar lijkt me dan ook wel moeilijker.

Curahee Q

Legacy Member
Gewoon een flat text file zoals eerder vermeld. Lijkt me dat hij in het middelbaar zit, tegen de examens zullen daar toch niet meer als 200-300 woorden instaan per vak (Engels, Frans, Duits eventueel).

Je moet kijken naar performantie, maar ook naar wat je wilt. Voor zoiets is een db echt wel overkill.

Daedie

Legacy Member
Cycloon zei:
Alleszins performanter dan zijn voorstel om XML te gebruiken of objecten met woorden te gaan serializeren.

Het voorstel om met embedded databases te werken is niet zo'n slecht idee qua performantie, maar het lijkt me wel redelijk zware overkill. De kans dat er ooit > 1000 woordjes in zo'n programma moeten komen als zijnde 1 reeks lijkt me klein (en zelf dan nog, 1000 woordjes inlezen duurt mss 2 seconden). Het verdelen van woordenlijst onder mekaar lijkt me dan ook wel moeilijker.

2 seconden is toch wel een hele zware overschatting ze.

Kheb ooit es een programma geschreven dat een volledig nederlands woordenboek (230.000 woorden) inleest uit een txt file en voor ieder woord checkt als bepaalde, door de gebruiker opgegeven, letters in dat woord voorkomen en ook de lengte heeft die de gebruiker opgeeft (voor mensen die blokken kijken, dat was om het antwoord op die kijkersvraag te brute forcen).

en dat programma leverde alle mogelijke resultaten in een 100-tal microseconden (de printf operatie was de grootste bottleneck).

Ik betwijfel dat de OP zen programma ooit meer dan 1% hiervan moet aankunnen.

Curahee Q

Legacy Member
@Daedalus: En hoeveel woorden kreeg je dan ongeveer terug? Werkte dat tegoei om die kijkersvraag te bruteforcen? Vind ik wel lache :d

Daedie

Legacy Member
Curahee Q zei:
@Daedalus: En hoeveel woorden kreeg je dan ongeveer terug? Werkte dat tegoei om die kijkersvraag te bruteforcen? Vind ik wel lache :d

awel, mijn ma vroeg mij als ik zoiets kon maken en heb ik dat dus geprobeerd. En heb dat dan op 1 geval getest en dat gaf mij exact 2 mogelijke matches. en 1 daarvan was echt een compleet onwaarschijnlijk woord (zo'n vaag woord waarvan ge nog nooit in uw leven gehoord hebt) en 1 heel normaal woord. dus dat werkte best goed :). Ze heeft jammer genoeg geen prijs gewonnen tho :p.

stelly

Legacy Member
Ik zou een db nemen maar wel met optie voor gebruiker om de lijst uit te voeren naar een bestand en om af te drukken.

Devastate

Legacy Member
Precies toch wel redelijk wat verschillende meningen. Zijn er geen conventies voor zoiets? :p

Cycloon

Legacy Member
Er zijn zelden conventies in de informatica wereld, veel hangt af van persoonlijke smaak enzo.

Anyway, sowieso gaan daar nooit duizenden woorden inkomen. Als je dus niet teveel programmeerwerk wil hebben ga je voor een simpel txt bestandje. Als je mss iets wil bijleren dan kan je voor de database gaan.

Devastate

Legacy Member
heb al een hele berg database-applicaties gemaakt voor school, dus zal voor een txt gaan en meer tijd steken in usability en GUI.

passero

Legacy Member
Ma in princiepe is da een beetje gelijk het princiepe van een Resource file. Die worden gebruikt in java om u programma meertalig te maken. Die files zijn ook gewoon flat files met value pairs per lijn.
De java api biedt daar al een heel aantal handige dingen voor maar ik zie da ge in c# wil werken ma das toch maar berust op een design pattern dus gewoon de manier van werken eventueel overnemen.

Wat je natuurlijk ook kan doen... Is een central mysql DB nemen. Als iemand dan een woord toevoegd wordt die aan de centrale DB toegevoegd waardoor iedereen toegang krijgt tot dat woord. Je zal dan wel iets meer metadata nodig hebben om een handige lijst terug te krijgen maar is zeker doenbaar en lijkt me een leuke uitbreiding. Zo hoeven leerlingen niet uit te wisselen want alles staat toch centraal.
Het nadeel is wel dat een inet verbinding verplicht is (tenzij je flat file ook implementeerd voor offline gebruik :P)

Devastate

Legacy Member
passero zei:
Ma in princiepe is da een beetje gelijk het princiepe van een Resource file. Die worden gebruikt in java om u programma meertalig te maken. Die files zijn ook gewoon flat files met value pairs per lijn.
De java api biedt daar al een heel aantal handige dingen voor maar ik zie da ge in c# wil werken ma das toch maar berust op een design pattern dus gewoon de manier van werken eventueel overnemen.

Wat je natuurlijk ook kan doen... Is een central mysql DB nemen. Als iemand dan een woord toevoegd wordt die aan de centrale DB toegevoegd waardoor iedereen toegang krijgt tot dat woord. Je zal dan wel iets meer metadata nodig hebben om een handige lijst terug te krijgen maar is zeker doenbaar en lijkt me een leuke uitbreiding. Zo hoeven leerlingen niet uit te wisselen want alles staat toch centraal.
Het nadeel is wel dat een inet verbinding verplicht is (tenzij je flat file ook implementeerd voor offline gebruik :P)

In java kan ik ook wel werken, maar daar heb'k ff m'n buik van vol :crazy:

passero

Legacy Member
maja tis het princiepe. Ge kunt diezelfde dingen in C# implementeren he.

stelly

Legacy Member
Mja ge zei duidelijk in uw post "In de vakantie". Eerste wat bij mij dan opkomt is "playtime!" en dus tijd om met van alles te gaan knoeien :)

Moto

Legacy Member
Eerste wat bij mij opkomt bij het horen van vakantie en playtime is alleszins niet een DB maken :p

Houd gewoon uw data-ophaal toestand deftig gescheiden en probeer het simpelste nl file, als het te traag is db, niet te veel moeite doen heh ;)

killgore

Legacy Member
Waarom maak je geen gebruik van bestaande i18n of dictionary libraries? Daar zijn er wrsch wel enkele 1000en van.

Verder ziet het er mij zo extreem simpel uit: gebruik Dictionary<>, serializeer dat met BinaryFormatter en schrijf dat weg naar een willekeurig bestand. Analoog om het weer in te lezen :p.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan