[C#] Help Gestione File

venerdì 11 febbraio 2011 - 18.12
Tag Elenco Tags  C#  |  .NET 4.0  |  Windows 7  |  Visual Studio 2010

mazza94 Profilo | Newbie

ho un piccolo problema:

ho la necessità di creare un algoritmo che prende una parola a caso da un file.

io pensavo di attribuire ad ogni parola un valore numerico (es: 1 = ciao, 2 = arrivederci ecc.)
poi con un numero generato con random, voglio che il programma legga la parola attribuita a quel valore e lo inserisca in una string

esempio:

numero generato = 2
stringa = arrivederci


la domanda è questa: come devo gestire il file contenente le parole(nel senso, tipo di file, come scrivere il file, ecc.)?

grazie in anticipo x l'aiuto :)

ps: volendo, posso risolvere il problema creando una classe dedicata al suddetto scopo, solo che voglio rendere personalizzabile l'applicazione, fornendo all'utente un programma ad hoc per modificare il file inserendo le sue parole.

alx_81 Profilo | Guru

ciao

>la domanda è questa: come devo gestire il file contenente le
>parole(nel senso, tipo di file, come scrivere il file, ecc.)?
allora, se il file non è esageratamente grande, potresti pensare di fare una classe per leggerlo con una ReadToEnd: http://msdn.microsoft.com/en-us/library/system.io.textreader.readtoend.aspx. Una volta letta la stringa, potresti creare l'array delle parole, splittando per carattere spazio.
Il risultato della split è già un arrai, in cui ogni parola possiede una posizione nell'array stesso, il che può essere considerato come il numero su cui ricercare random.
Infatti è sufficiente poi creare un numero intero random tra 0 e la capacità dell'array ed infine usare quel numero per pescare la parola casualmente.

>grazie in anticipo x l'aiuto :)
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

mazza94 Profilo | Newbie

ok grazie, un po' ci sono...
purtroppo è una qualche giorno che studio la parte sui file e non ci sto capendo granchè...
comunque, questo è il mio codice:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
ok, il problema è questo: non riesco a capire quale parametro passare a GetLength
questo metodo l'ho costruito con sprazzi di codice raccolto qua e là...

qualche idea/consiglio?

grazie ancora (:

mazza94 Profilo | Newbie

chiedoscusa, ma era un problema legato all'evento del bottone, che non funzionava... ho risolto, grazie dell'aiuto :)

posto il codice corretto:
private void _loadDict() { int numParole, d = 0; Random rand = new Random((int)DateTime.Now.Millisecond); StreamReader sr = new StreamReader(path); dict = File.ReadAllLines(path); numParole = Length; nRand = rand.Next(0, numParole - 1); wordBack = dict[nRand].ToUpper(); _setWord(); } private void loadDictBut_Click(object sender, EventArgs e) { FormDict fd = new FormDict(); DialogResult result = fd.ShowDialog(); if (result == DialogResult.OK) path = fd.path; } private void randomWordBut_Click_1(object sender, EventArgs e) { _loadDict(); }
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5