Wyciagnie Informacji z pliku

0

mam jakis plik ktory jest duzy. Ma naglowek mniej wiecej taki

%%Title: Cool Title 
%%Creator: My Personal PC Fasadin-PC-51
%%CreationDate: 04 10 2015 09:51:01 

Potrzebuje te dane miec w jakies klasie (ogolnie je wydobyc)
Na ta potrzebe stworzylem sobie juz klase pomocnicza

HeaderInfo{
  string title;
  string creator;
  DateTime creationDate

Pierwsza mysl

 var lines = File.ReadLines(psfileName);

i sprawdzac co linijke czy wystapil ktorys z tych znakow

string title = "%%Title: ";
            string creator = "%%Creator: ";
            string creationDate = "%%CreationDate: "; 

jezeli tak (wiec duzo ifow) to zrobic cos takiego (np)

int titleIndex = line.IndexOf(title) + title.Length; 

bedzie to dzialac... ale jakos tak brzydko jak na C#. Cos czuje ze robie to troche od d**y strony. Wersja .NET to 4.5 (chyba)

po przeczytaniu naglowka nie musze z nim wiecej pracowac, ale wole przeczytac caly bo jakby sie uklad zmienil czy cos...

3

Może coś takiego?

var lineWithTitle = lines.FirstOrDefault(line => line.Contains(title));
if (lineWithTitle == null)
   //handle error
var myTitle = lineWithTitle.Replace(title, string.Empty).Trim();

EDIT:
jak to opakujesz w funkcję

string FindValue(IEnumerable<string> lines, string key)
{
   var lineWithKey = lines.FirstOrDefault(line => line.Contains(key));
   if (lineWithKey == null)
      return null;
   return lineWithKey.Replace(key, string.Empty).Trim();
}

Wtedy powinno imo wyglądać ok:

var lines = File.ReadLines(psfileName);
var myTitle = FindValue(lines, title);
var myCreator = FindValue(lines, creator);

1 użytkowników online, w tym zalogowanych: 0, gości: 1