Ukratko!
imam jedan blanko .txt fajl
pri prvom citanju podataka vrsim select upit od datuma koji sam ja postavio tj od 01.01.2013
pri drugom citanju (nakon nekog vremena) posto sada .txt fajl ima podatke treba da prvo procitam datum iz poslednjeg upisa (poslednje linije .txt fajla) i da se onda vrsi select upit ali gde su datumi veci od malopre pomenutog. Nakon citanja ovih podataka moram da proverim da sve br_racuna iz .txt fajla i prethodno izvrsenog upita, pa ukoliko se pojavi duplikat tom duplikatu moram da promenim datum, tj da datum iz upita pregazi datum u .txt fajlu
E sada se vracam na prvo pitanje: koji mi je najbolji nacin da ovo uradim?!
evo sta sam uradio i stao!
private void otpremnice()
{
string databaseConnectionString = ConfigurationSettings.AppSettings["orgFileName"];
string datum = "2013-01-01 00:00:00";
string filePath = @"C:\mobile\temp\otpremnice.txt";
try
{
using (StreamReader sr = new StreamReader(filePath))
{
string linija = sr.ReadLine();
if (linija == null)
{
using (IfxConnection connection = new IfxConnection(databaseConnectionString))
{
string upit = "select ozn_otp, datum_promene from otprem where datum_promene > '" + datum + "' order by datum_promene ASC";
IfxCommand sqlCmd = new IfxCommand(upit, connection);
connection.Open();
IfxDataReader reader = sqlCmd.ExecuteReader();
while (reader.Read())
{
string oznaka_otpremnice = ((string)reader["ozn_otp"]).Trim();
DateTime datum_promene = (DateTime)reader["datum_promene"];
string line = "";
line += "br_otp=" + oznaka_otpremnice + ";";
line += "datum=" + datum_promene + "\n";
FileStream fs = new FileStream(filePath, FileMode.Append);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(line);
sw.Close();
fs.Close();
}
}
}
else
{
//postoje zapisi treba proveriti poslednji datum
while (!sr.EndOfStream)
{
linija = sr.ReadLine();
if (sr.Peek() == -1)
{
//procitao je poslednju liniju
//kako izvuci datum?
//kako uporediti oznake otpremnice?
}
}
}
}
}
catch (Exception xcp)
{
UtilLog.LogMessage(xcp.Message);
}
}
|