Demande d'un code en c#

Signaler
Messages postés
14
Date d'inscription
vendredi 25 février 2005
Statut
Membre
Dernière intervention
26 mai 2005
-
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
-
Salut a tous , mon problème est que je n'arrive pas à lire des valeurs de type
double ,etc.(les valeurs sont 5 par ligne) a partir d'un fichier (valeurs par valeur)
est les charger dans un tableau (d'objet de ces 5 variables) ou une liste chainée.
merçi !!!!

5 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
87
Salut,

Copie nous au moins une ligne qu'on voit à quoi elle ressemble.

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
J'imagine que c'est un fichier text qui contient 5 doubles par lignes.
Du genre :

25.23 45.25 45.36 47.58 85.12
785.21 2.3 6.5 12.36 58.3

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Une solution :

1) Construire un StreamReader.
2) Utiliser ReadLine() qui retourne un string (pour parcourir le fichier)
3) Faire un split(' ') sur ce string (chaque valeur sera un string)

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Messages postés
303
Date d'inscription
mardi 11 février 2003
Statut
Membre
Dernière intervention
24 avril 2009
5
4) double[] nums = new double[5];5) for( int i 0; i < 5; nums[i++] double.Parse( Tontableaudechaine[i] ) );

Eric
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Je poste le code que tu m'as demandé par un message privé, pour que tout le monde en profite :


class Test
{



public
static
void Main()
{

string path = "test.txt";

string line;

string[] str =
new
string[5];

double[] nums =
new
double[5];



try
{

using(StreamReader sr =
new StreamReader(path))
{

while((line = sr.ReadLine()) !=
null)
{

string[] split = line.Split(
new
char[] {' '});

for(
int i=0; i<split.Length; i++)
{
split[i] = split[i].Trim();
nums[i] = Convert.ToDouble(split[i]);
}



foreach(
double d
in nums) Console.Write(d + " ");
Console.WriteLine("");
}
}
}



catch (Exception e)
{
Console.WriteLine("The process failed: {0}", e.ToString());
}
Console.ReadLine();
}
}

Je viens de faire ce code à la va vite, il faudrait gérer mieux les erreurs et y'a surement deux-trois optimisations à faire. Je te laisse ce soin...

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever