|
Étude pratique : Présentation de l'information d'un fichier
|
|
- Commencez Microsoft Visual C# et créez une application de console
appelée WattsALoan1
- Tirer profit de la bibliothèque riche de visual basic, dans Explorateur de solution, sous WattsALoan1,
droit-cliquez Références
et cliquez Ajoutent Référence
- Dans la zone de dialogue Ajouter Référence, cliquez l'étiquette
.NET et cliquez Microsoft.VisualBasic
- Cliquez OK
- Changez le fichier Program.cs comme suit :
using System;
using System.IO;
namespace WattsALoan1
{
class Program
{
static int Main(string[] args)
{
string EmployerName, ApplicantName;
string HomePhone, WorkPhone;
double LoanAmount = 0.00D, InterestRate = 0.0D;
double MonthlyPayment = 0.00D, Periods = 0D;
Console.WriteLine(" -=- Car Loan Application -=-");
Console.WriteLine("Enter the following pieces " +
"of information\n");
Console.WriteLine("Applicant Information");
Console.Write("Full Name: ");
ApplicantName = Console.ReadLine();
Console.Write("Employer Name: ");
EmployerName = Console.ReadLine();
Console.Write("Home Phone: ");
HomePhone = Console.ReadLine();
Console.Write("Work Phone: ");
WorkPhone = Console.ReadLine();
Console.WriteLine("Loan Estimation");
try
{
Console.Write("Amount of Loan: ");
LoanAmount = double.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("Invalid Loan Amount");
}
try
{
Console.Write("Interest Rate(0 to 100): ");
InterestRate = double.Parse(Console.ReadLine()) / 100;
}
catch (FormatException)
{
Console.WriteLine("Invalid Interest Rate");
}
try
{
Console.Write("Number of Months: ");
Periods = double.Parse(Console.ReadLine());
}
catch (FormatException)
{
Console.WriteLine("Invalid Number of Months");
}
try
{
MonthlyPayment =
Microsoft.VisualBasic.Financial.Pmt(InterestRate / 12,
Periods, -LoanAmount,
0, Microsoft.VisualBasic.DueDate.BegOfPeriod);
}
catch (ArgumentException)
{
Console.WriteLine("Some invalid values were provided\n");
}
Console.WriteLine();
Console.WriteLine(" -=-=-=-=-=-=-=-=-=-=-=-=-=-=");
Console.WriteLine(" -=- Car Loan Application -=-");
Console.WriteLine(" -=-=-=-=-=-=-=-=-=-=-=-=-=-=");
Console.WriteLine("Applicant Information");
Console.WriteLine("Full Name: {0}", ApplicantName);
Console.WriteLine("Employer Name: {0}", EmployerName);
Console.WriteLine("Home Phone: {0}", HomePhone);
Console.WriteLine("Work Phone: {0}", WorkPhone);
Console.WriteLine("Loan Estimation");
Console.WriteLine("Loan Amount: {0:C}", LoanAmount);
Console.WriteLine("Interest Rate: {0:P}", InterestRate);
Console.WriteLine("Number of Months: {0:F}", Periods);
Console.WriteLine("Monthly Payment: {0:C}\n", MonthlyPayment);
return 0;
}
}
}
|
- Exécutez l'application et l'examiner. Voici un exemple :
-=- Car Loan Application -=-
Enter the following pieces of information
Applicant Information
Full Name: James Watts
Employer Name: Wattson Enterprises
Home Phone: (202) 374-4738
Work Phone: (301) 894-4789
Loan Estimation
Amount of Loan: 12500
Interest Rate(0 to 100): 10.25
Number of Months: 48
-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-=- Car Loan Application -=-
-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Applicant Information
Full Name: James Watts
Employer Name: Wattson Enterprises
Home Phone: (202) 374-4738
Work Phone: (301) 894-4789
Loan Estimation
Loan Amount: $12,500.00
Interest Rate: 10.25 %
Number of Months: 48.00
Monthly Payment: $315.84
Press any key to continue...
|
- Fermez la fenêtre DOS
|
Initialisation de fichier
|
|
La classe FileInfo est équipée d'un
constructeur dont la syntaxe est :
public FileInfo(string fileName);
Ce constructeur prend comme argument le nom d'un
fichier ou son chemin complet. Si vous fournissez seulement le nom du
fichier, le compilateur considérerait le même répertoire de son projet.
Voici un exemple :
FileInfo fleMembers = new FileInfo("First.txt");
Alternativement, si vous voulez, vous pouvez fournir
n'importe quel répertoire valide auquel vous avez accès. Dans ce cas-ci,
vous devriez fournir le chemin complet.
Le constructeur FileInfo est la plupart du
temps censé seulement indiquer que vous voulez utiliser un fichier, s'il existe déjà ou il serait créé. Basé sur ceci, si vous
exécutez une application qui a seulement un objet FileInfo créé
en utilisant le constructeur comme fait ci-dessus, rien ne se
produirait.
Pour créer un fichier, vous avez diverses
solutions de rechange. Si vous voulez créer un sans qu'on puisse écriture quelque
chose dedans, ce qui signifie créer un fichier vide, vous pouvez
appeler la méthode FileInfo.Create(). Sa syntaxe est :
public FileStream Create();
Cette méthode crée simplement un fichier vide.
Voici un exemple d'appel :
FileInfo fleMembers = new FileInfo("First.txt");
fleMembers.Create();
La méthode FileInfo.Create() renvoie un
objet FileStream. Vous pouvez utiliser cette valeur retournée
pour écrire n'importe quel type de valeur dans le fichier, y compris le
texte. Si vous voulez créer un fichier qui contient le texte, une
alternative est d'appeler la méthode FileInfo.CreateText().
Sa syntaxe est :
public StreamWriter CreateText();
Cette méthode renvoie directement un objet StreamWriter.
Vous pouvez utiliser cet objet retourné pour écrire le texte au
fichier.
Quand vous appelez FileInfo.Create () ou
la méthode FileInfo.CreateText(), si le fichier passé comme
argument, ou comme fichier dans le chemin de l'argument existe
déjà, il serait supprimé et un nouveau serait créé avec le même nom.
Ceci peut causer la suppression d'un bon fichier. Par conséquent,
avant de créer un fichier, vous pouvez devoir vérifier s'il existe déjà.
Pour ce faire, vous pouvez vérifier la valeur de la propriété booléenne
de FileInfo.Exists. Cette propriété contient une valeur vraie
si le fichier existe déjà et elle contient une valeur fausse si le
fichier n'existe pas ou n'existe pas dans le chemin.
Voici un exemple qui vérifie l'existence d'un
fichier:
FileInfo fleMembers = new FileInfo("First.txt");
fleMembers.Create();
if( fleMembers.Exists == true )
return;
Comme cité précédemment, la méthode FileInfo.Create
() renvoie un objet FileStream. Vous pouvez utiliser ceci
pour indiquer le type d'opération qui serait permis sur le fichier.
Pour écrire un texte normal dans un fichier, vous
pouvez d'abord appeler la méthode FileInfo.CreateText ().
Cette méthode renvoie un objet StreamWriter. La classe StreamWriter
est basée sur la classe TextWriter laquelle est équipé des méthodes
write () et WriteLine () utilisées pour écrire des valeurs
dans un fichier. La méthode write ()
écrit le texte sur une ligne et garde le point d'insersion sur la même
ligne. La méthode WriteLine () écrit une ligne de texte et déplace
le point d'insersion à la prochaine ligne.
Après inscription dans un fichier, vous devriez
fermer l'objet StreamWriter pour libérer les ressources qu'il
utilisaient pendant ses opérations.
|
Étude pratique : Ecrire dans un dossier
|
|
- Pour permettre à l'utilisateur de créer un nouvel employé,
changez le fichier comme suit :
using System;
using System.IO;
namespace WattsALoan2
{
class Program
{
private static void CreateNewEmployee()
{
string employeeNumber, employeeName;
FileInfo fleEmployees = new FileInfo("Employees.txt");
StreamWriter swrEmployees = fleEmployees.CreateText();
try
{
Console.WriteLine("Hiring New Employee");
Console.Write("Enter Employee Number as 00-000: ");
employeeNumber = Console.ReadLine();
Console.Write("Enter Employee Name: ");
employeeName = Console.ReadLine();
swrEmployees.WriteLine(employeeNumber);
swrEmployees.WriteLine(employeeName);
}
finally
{
swrEmployees.Flush();
swrEmployees.Close();
}
}
static int Main(string[] args)
{
try
{
Console.Write("Do you want to hire a new " +
"employee(0=No/1=Yes)? ");
int answer = int.Parse(Console.ReadLine());
if (answer == 1)
CreateNewEmployee();
}
catch (FormatException)
{
Console.WriteLine("That was an invalid answer!\n");
}
string EmployerName, ApplicantName;
string HomePhone, WorkPhone;
double LoanAmount = 0.00D, InterestRate = 0.0D;
double MonthlyPayment = 0.00D, Periods = 0D;
. . . No Change
return 0;
}
}
}
|
- Exécutez l'application. Voici un exemple :
Do you want to hire a new employee(0=No/1=Yes)? 1
Hiring New Employee
Enter Employee Number as 00-000: 44-228
Enter Employee Name: Johnny Olney
|
- Fermez la fenêtre DOS
|
Apposer (ou joindre ) un fichier
|
|
Vous avez pu déjà créé un fichier basé sur du
texte
et avoir écrit dedans. Si vous ouvrez un tel fichier et découvrez qu'une
information est absente, vous pouvez ajouter cette information à la fin
du fichier. Pour ce faire, vous pouvez appeler la méthode FileInfo.AppenText
(). Sa syntaxe est :
public StreamWriter AppendText();
En appelant cette méthode, vous pouvez rechercher
l'objet StreamWriter qu'elle renvoie, alors l'utilisation de cet
objet permet d'ajouter une nouvelle information au dossier.
|
Étude pratique : Apposer un fichier
|
|
- Pour permettre à l'utilisateur d'ajouter plus d'employés au
fichier qui contient leurs noms, changez le fichier comme suit :
using System;
using System.IO;
namespace WattsALoan2
{
class Program
{
private static void CreateNewEmployee()
{
string employeeNumber, employeeName;
FileInfo fleEmployees = new FileInfo("Employees.txt");
StreamWriter swrEmployees = null;
// If the file exists already, then add the new employee to it
if (fleEmployees.Exists == true)
swrEmployees = fleEmployees.AppendText();
else // Otherwise, create a new file
swrEmployees = fleEmployees.CreateText();
try
{
Console.WriteLine("Hiring New Employee");
Console.Write("Enter Employee Number as 00-000: ");
employeeNumber = Console.ReadLine();
Console.Write("Enter Employee Name: ");
employeeName = Console.ReadLine();
swrEmployees.WriteLine(employeeNumber);
swrEmployees.WriteLine(employeeName);
}
finally
{
swrEmployees.Flush();
swrEmployees.Close();
}
}
static int Main(string[] args)
{
. . . No Change
return 0;
}
}
}
|
- Exécutez l'application
- Dactylographiez pour créer un employé. Voici un exemple :
Do you want to hire a new employee(0=No/1=Yes)? 1
Hiring New Employee
Enter Employee Number as 00-000: 72-604
Enter Employee Name: Ernest Barzan
|
- Fermez la fenêtre DOS
|
|