Come faccio a generare i file .blt per le elezioni OpenSTV utilizzando C #?
Domanda
Ho appena scaricato OpenSTV dopo aver visto il più recente post SO blog, per quanto riguarda i risultati delle elezioni moderatore. Jeff ha scritto che ha usato OpenSTV per condurre le elezioni, e ha fornito un file di scheda elettorale (.blt) con esso che contiene i dati di voto.
La mia domanda è: come si fa a creare un file .blt in C #
?Qui ci sono due modi in cui posso pensare che la pagina di voto lo ha fatto:
- La pagina di votazione aggiunti ogni voto in un database SQL, e quindi in qualche modo, questi voti sono stati esportati in un file .blt dopo la votazione era finita. Come però? Come posso fare questo?
- In alternativa, la pagina di voto ha creato il file e quindi aggiunto ad esso ogni volta che qualcuno ha votato. Sono sicuro che questo non è come la pagina di voto ha funzionato, perché è completamente unscalable, ma come potrei fare questo in C #?
Sono interessato a scoprire come funzionano entrambe le possibilità e come posso farlo in C #. Grazie in anticipo. Oh, e spero che Jeff vede questa domanda, perché non aveva probabilmente hanno una grande risposta ...
Soluzione
La migliore spiegazione del formato di file BLT è qui:
4 2 # four candidates are competing for two seats -2 # Bob has withdrawn (optional) 1 4 1 3 2 0 # first ballot 1 2 4 1 3 0 1 1 4 2 3 0 # The first number is the ballot weight (>= 1). 1 1 2 4 3 0 # The last 0 is an end of ballot marker. 1 1 4 3 0 # Numbers in between correspond to the candidates 1 3 2 4 1 0 # on the ballot. 1 3 4 1 2 0 1 3 4 1 2 0 # Chuck, Diane, Amy, Bob 1 4 3 2 0 1 2 3 4 1 0 # last ballot 0 # end of ballots marker "Amy" # candidate 1 "Bob" # candidate 2 "Chuck" # candidate 3 "Diane" # candidate 4 "Gardening Club Election" # title
Tutto quello che ho fatto è stato
- Eseguire una query ad-hoc in SQL Management Studio per ottenere i risultati di voto
- Risultati di copia-incollato in un file di testo (uscita è delimitato da tabulazioni di default)
- ha scritto un piccolo 50 linea C # app convertire da query in formato BLT