|
|
|
|
Bonjour,
je dois realiser un programme en C#. Mon probleme majeure est que je n'en ai absolument jamais fait.
L'objectif de mon programme est de recuperer certaines donnees presentes dans un fichier text, et ensuite de tracer une representation graphique de ces donnees.
Je travaille avec Microsoft Visual Studio 2008.
Mon fichier text est de cette forme
Data file. 1:11 AM Tuesday, Jully 22, 2008
Filename: C:\\Data\Projects\blabla.txt
Format: All
Cols: orientation x y z hb hc hd 12 13 14 oto form bf1 bf2 bf3 sum source mSec
Medium: Conductivity: 0.12 Density: 1000 Permittivity: 1 MediumCalFactor: 1
-------------------------------------------------------------------------------------------------
orient x y z hb hc hd 12 13 14 oto form sum source mSec
1 60 90 -100 316 321 130 768 36 32 30 767 0.57 aff 0
2 61 90 -105 313 320 143 776 33 32 43 776 0.57 aff 13
3 62 90 -110 318 323 142 784 38 32 42 783 0.58 aff 72
4 63 90 -115 315 327 141 783 35 32 41 783 0.58 aff 39
5 64 90 -120 325 330 149 804 35 33 49 804 0.59 aff 66
1 65 90 -125 320 331 152 802 30 33 52 803 0.59 aff 659
2 66 90 -130 328 331 156 815 38 31 56 815 0.6 aff 22
3 67 90 -135 337 333 182 852 37 33 82 852 0.63 aff 92
4 68 90 -140 350 344 197 891 30 34 97 891 0.66 aff 688
5 69 90 -145 349 346 185 880 39 36 85 880 0.65 aff 1209
1 70 90 -150 367 349 231 947 37 39 31 947 0.7 aff 422
2 71 90 -155 382 351 245 978 32 31 45 978 0.72 aff 147
...
j'arrive a lire le fichier (Ne rigolez pas, c'est un debut pour moi).
Maintenant je souhaiterai avoir acces aux 2ieme, 3ieme, 4ieme collones et rentrer les donnees de ces colonnes dans un tableau pour ensuite effectuer un trace en 3 dimensions.
Voila ce que j'ai ecrit pour lire les donnees:
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
String line;
try
{
StreamReader sr = new StreamReader("C:\\Experimentlambda.txt");
//Read the first line of text
line = sr.ReadLine();
//Console.WriteLine("The size of short is {0}.", sizeof(ConsoleApplication1));
//Continue to read until you reach end of file
while (line != null)
{
//write the lie to console window
Console.WriteLine(line);
//Read the next line
line = sr.ReadLine();
}
//close the file
sr.Close();
Console.ReadLine();
}
finally
{
Console.WriteLine("Ouf sa marche");
}
}
}
}
Merci de me mettre sur la voix.
A bientot j'espere!!!
PS: Desole pour les accents, clavier QWERTY oblige...
Configuration: Windows XP Firefox 2.0.0.16
Salut,
|
Salut Cynthia,
//se placer au début
int nbreligne=-1;
int nbrecol;
do
{ //boucle pour regarder combien de ligne
string temp = fluxLecture.ReadLine(); //lecture d'une ligne
nbreligne++;
} while (temp != null);
string[] nomdutableau1=new string[nbreligne];
//se replacer au début des données
for(int i=0;i<nbreligne;i++)
nomdutableau1[i]=fluxLecture.ReadLine();
//regarder le nombre de colonnes **
nbrecol=(nomdutableau1.split(" ")).lenght();
do{
string[][] donnée=new string[nbreligne][nbredecol];
for( i=0;i<nbreligne;i++){
string[] temp=nomdutableau1.split(" "); //découpe le tableau contenant les lignes pour délimiter les colonnes
for(int j=0;j<nbrecol;j++){
donnée[i][j]=temp[j]; //remplit les colonnes du tableau final a la ligne découper
}
}
**Attention cela marche que si les lignes ont autant de colonnes sinon il faut les faire une par une et prendre le nombre le plus grand. Ce code n'est ni optimisé ni expliqué ni testé mais je n'ai pas trop le temps en début de journée. je suis désolé, je te recontacterai quand je serai revenu pour savoir si cela marche ou si tu a besoin d'explication. Mich PS: T'es vraiment en Australie? "Lu et à prouver" Mich |
Salut,
|
Merci pour les conseils, cela m'a bien fait avancer.
|
A première vue je peux te dire qu'il faut mettre -1 au début du calcul de sommet car si il est vide tu parcoures quand me^me une fois la boucle donc: -1+1=0 //vide
|
Re,
for (int h = 0; h < nbline - header; h++)
{
string[] MyStringArray = nomdutableau1[h].Split(' ');
//Console.WriteLine(MyStringArray[12]);
nbraw=MyStringArray.lenght();
for (int l = 0; l < nbraw; l++)
{
data[h, l] = MyStringArray[l]; //fill the raws
}
2/Pour ce qui est de la conversion string==>float il y a une fonction: float a =Float.Parse(nomdetastring); Mais cela peut poser problème selon ton OS surtout que tu n 'es pas en France à cause des points et virgule. Enfin bref je pense que tu comprendras ce que tu dois faire en regardant ceci. Bonne chance et demande si tu as besoin, ça fait plaisir et j'apprends des trucs en même temps. Mich "Lu et à prouver" Mich |