プログラムで配列要素の値を認識するのに問題があります。私はそれが次の要素を '、'の後に読む必要があり、すべての本(それはライブラリプログラム)のためにループする必要があります。私のforループで "10"(ランダムに数字を入れてエラーを表示しないようにする)を変更する方法を理解していないので、.txtからすべての情報を読み込んだ後にプログラムが停止します。コード: EDIT:。それは、それ以上のエラーが表示されない、それはちょうど今クラッシュ:(C#のいくつかの問題:プログラムは私の配列からファイルを読み取っていないので、line.splitに問題がある
using System;
using System.IO;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
foreach (string line in File.ReadAllLines(@"Duomenys.txt"))
{
string[] a = line.Split(',');
int ISBN = int.Parse(a[0]);
string BookName = a[1];
string Author = a[2];
string Genre = a[3];
string Publisher = a[4];
int PublishYear = int.Parse(a[5]);
int PageNumber = int.Parse(a[6]);
Console.WriteLine(PublishYear);
Console.WriteLine();
Console.ReadKey();
}
}
public void BookWithTheMostPages(int[] a)
{
int maxPages = 0;
string[] lines = File.ReadAllText(@"Duomenys.txt").Split('\n');
foreach (string line in lines)
{
{
Console.ReadLine();
if (a[6] > maxPages)
{
maxPages = a[6];
Console.WriteLine("Storiausios knygos pavadinimas: {0} , jos autorius(-ė): {1}", a[1], a[2]);
}
}
}
}
public void Publish(string[] a)
{
if (!File.Exists(@"Technologija.csv"))
File.Create(@"Technologija.csv").Dispose();
using (StreamWriter streamwrite = new StreamWriter(File.OpenWrite(@"Technologija.csv")))
{
if (a[2] == "Technologija")
{
streamwrite.WriteLine("\n ISBN : {0}, Pavadinimas: {1}, Autorius: {2}, Tipas: {3}, Leidykla: {4}, Išleidimo Metai: {5}, Puslapių skaičius: {6}", a[0], a[1], a[2], a[3], a[4], a[5], a[6]);
}
}
}
public void Output(string[] a)
{
if (!File.Exists(@"Autoriai.csv"))
File.Create(@"Autoriai.csv").Dispose();
using (StreamWriter streamWriter = new StreamWriter(File.OpenWrite(@"Autoriai.csv")))
{
streamWriter.WriteLine("\n{0}", a[2]);
}
}
public void Publishyear(string[] a)
{
if (a[5] == "2014")
{
for (int j = 1; j <= 5; j++)
Console.WriteLine("\nKnygos ISBN: {0}, Pavadinimas {1}, Autorius {2}", a[0], a[1], a[2]);
}
}
}
}
はここです.TXT例:
9781408855669、ハリー・ポッターと秘密の部屋、ジョアン・K・ローリング、Apysaka、ブルームズベリー出版PLC、1998、270(それは1行です)
ブレークポイントを設定し、デバッグして、エラーの発生場所を確認します。 –
そのコードには多くの間違いがあります。私はそれがコンパイルされるとは思わない... – Pikoh
'using'行の目的は何ですか?ファイルを開いて、それを閉じて処分するだけです。あなたの 'foreach'ステートメントも最後にセミコロンがあるため何もしません。 –