現在、ユーザーの連絡先の詳細をファイルに保存するアプリケーションをテストしています。この情報は、主要な方法として、ローカルのコンパクト データベースにも保存されます。このファイルに詳細を保存することで、詳細が失われた場合のバックアップになります。
テストに使用しているファイルには個人データが含まれているため、行をプレースホルダーに置き換えていることを理解していただければ幸いです。このファイルの構造は次のとおりです (最初の行を除く)。
File:
Business Name
Mr.
Joe
Bloggs
user@email.com
Address Line 1
Address Line 2
City
Postcode
Country
07777123456
以下に、このファイルを読み取り、各行を変数として格納するコードをいくつか示します。ファイルの構造は変更されないため、コードは非常に単純です。
public static bool RestoreBusinessTable(out string title, out string busName, out string mobileNumber, out string firstName, out string lastName)
{
string email = "", referral = "", contactNo, addressLine1 = "", addressLine2 = "", city = "", postcode = "", country = "", district = "";
busName = null;
mobileNumber = null;
firstName = null;
lastName = null;
title = null;
try
{
if (!File.Exists(fileName))
return false;
StreamReader sr = new StreamReader(fileName);
string work;
work = sr.ReadLine(); // Empty line
work = sr.ReadLine(); // Empty line
busName = sr.ReadLine();
title = sr.ReadLine();
firstName = sr.ReadLine();
lastName = sr.ReadLine();
email = sr.ReadLine();
referral = sr.ReadLine();
addressLine1 = sr.ReadLine();
addressLine2 = sr.ReadLine();
city = sr.ReadLine();
postcode = sr.ReadLine();
country = sr.ReadLine();
work = sr.ReadLine(); // Empty line
work = sr.ReadLine(); // Empty line
contactNo = sr.ReadLine();
district = sr.ReadLine();
mobileNumber = sr.ReadLine();
sr.Close();
// Add to database here
return true;
}
catch
{
return false;
}
}
このコードを実行すると、 、 、 、および all の値が であることbusName
にtitle
気付きfirstName
ましlastName
た07777123456
。データは次のようになりました。
07777123456
07777123456
07777123456
07777123456
user@email.com
Address Line 1
Address Line 2
City
Postcode
Country
07777123456
同時にファイルに書き込みを行っている非同期プロセスまたはスレッドはありません。ここで何が起こっているのか、なぜ最初の 4 行が携帯電話の番号として表示されるのか、誰かに光を当てることはできますか?