こんにちは私は、私の学校プロジェクトとして原子シミュレーションアプリケーションを作成しようとしています。私は、シンボル番号Hに格納される原子番号が格納される原子番号のように格納する各要素の配列を作成します。ストリームリーダを使用してファイルを読み込んだが、各要素を正しい配列に読み込むのが難しい。行の文字列を挿入して各要素を異なる配列に挿入する方法
txtファイルは、ここで
1,H,Hydrogen,1,1+
3,Li,Lithium,7,1+
11,Na,Sodium,23,1+
19,K,Potassium,39,1+
37,Rb,Rubidium,85,1+
55,Cs,Casesium,133,1+
87,Fr,Francium,223,1+
4,Be,Beryllium,9,2+
12,Mg,Magnesium,24,2+
20,Ca,Calcium,40,2+
38,Sr,Strontium,88,2+
56,Ba,Barium,137,2+
88,Ra,Radium,226,2+
5,B,Boron,10,3+
13,Al,Aluminium,27,3+
31,Ga,Gallium,70,3+
49,In,Indium,115,3+
81,Tl,Thallium,204,3+
6,C,Carbon,12,0
14,Si,Silicon,28,0
32,Ge,Germanium,73,0
50,Sn,Tin,119,0
82,Pb,Lead,207,0
7,N,Nitrogen,14,3-
15,P,Phosphorus,31,3-
33,As,Arsenic,75,3-
51,Sb,Antimony,122,3-
83,Bi,Bismuth,209,3-
8,O,Oxygen,16,2-
16,S,Sulfur,32,2-
34,Se,Selenium,79,2-
52,Te,Tellurium,128,2-
84,Po,Polonium,209,2-
9,F,Fluorine,19,1-
17,Cl,Chlorine,35,1-
35,Br,Bromine,80,1-
53,I,Iodine,127,1-
85,At,Astatine,210,1-
2,He,Helium,4,0
10,Ne,Neon,20,0
18,Ar,Argon,40,0
36,Kr,Kryoton,85,0
54,Xe,Xenon,131,0
86,Rn,Radon,222,0
です。
struct TAtom
{
public int atomicNumber;
public string symbol;
public string name;
public int mass;
public string charge;
}
class Atom
{
static void Main(string[] args)
{
{
TAtom[] Atom = new TAtom[44];
Atom[0].atomicNumber = 1;
TAtom[] Symbol = new TAtom[44];
Symbol[1].symbol = "";
TAtom[] Name = new TAtom[44];
Name[2].name = "";
TAtom[] Mass = new TAtom[44];
Mass[3].mass = '1';
TAtom[] Charge = new TAtom[44];
Charge[4].charge = "";
string[] words;
StreamReader File = new StreamReader(@"JUNK1.txt");
while (File.EndOfStream == false)
{
string line = File.ReadLine();
words = line.Split(',');
}
File.Close();
}
}
}
なぜ、すべての値を完全に別々の 'TAtom'オブジェクトの配列に格納していますか?それぞれの "記録"が単一のTAtomオブジェクトを表現するのではないでしょうか?尋ねられる質問については、何を試しましたか?あなたは 'words'変数で何もしていません。 – David
何をしようとしているのは、テキストファイルから値を取得し、それを探しているものに対応する別々の配列に格納することです。例えば、私はすべての私の原子番号を原子番号、シンボルへのシンボルなどに格納する必要があります。これらの配列は後で特定の値を検索するために使用できます。私のtecherは構造体を使用することをお勧めしました。私はそれを使用することを知らないので、私はこのコードで今何をしているのか分かりません。 –
そのアプローチは理にかなっていません。実際には、データの各行に対して1つの 'TAtom'インスタンスを構築する必要があります。車を駐車場に保管するというアナロジーを考えてみましょう。通常、個々のスペースには1台の完全な車があります。あなたがしていることは、すべてのステアリングホイール、すべてのタイヤのためのスペース、すべてのフロントガラスのためのスペースなどがあります。そして、あなたはガレージに入るごとに各車を分解し、スペースにコンポーネントを入れます。ガレージから出るごとに各車を再組み立てする計画です。それが「機能する」とはいえ、それはかなり非効率的でエラーを起こす傾向があります。 – David