Como faço para gerar arquivos .blt para as eleições OpenSTV usando C #?
Pergunta
Eu apenas o download OpenSTV depois de ver o recente post mais SO blog, sobre os resultados da eleição moderador. Jeff escreveu que ele usou OpenSTV para conduzir a eleição, e forneceu um arquivo de votação (.blt) junto com ele que contém os dados de votação.
A minha pergunta é: como é que se crie um arquivo .blt em C #
Aqui estão duas maneiras que eu posso pensar que a página de votação fez isso:
- A página de votação adicionado cada voto em um banco de dados SQL, e em seguida, de alguma forma, estes votos foram exportados para um arquivo .blt após votação tinha terminado. Como embora? Como posso fazer isso?
- Ou, a página de votação criou o arquivo e, em seguida, adicionado a ele cada vez que alguém votou. Tenho certeza de que isto não é como a página de votação funcionou, porque é completamente unscalable, mas como eu poderia fazer isso em C #?
Estou interessado em descobrir como as duas possibilidades de trabalho e como eu posso fazer isso em C #. Desde já, obrigado. Oh, e eu espero Jeff vê esta questão, porque ele provavelmente teria uma grande resposta ...
Solução
A melhor explicação do formato de arquivo BLT é aqui:
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
Tudo o que fiz foi
- Realizar uma consulta ad-hoc no SQL Management Studio para obter os resultados da votação resultados em um arquivo de texto (saída por padrão delimitado por tabulações é)
- Copiar-colar
- escreveu um pequeno 50 linha C # aplicativo para converter a consulta para o formato BLT
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow