[Delphi] Jak wykonać odczyt ostatniego wiersza z pliku te

0

Założenie:
Mam plik tekstowy (do którego są dopisywane co jakiś czas dane, coś jak plik log). Struktura kolejnych wierszy jest np. taka:
1,35,32,Adam,22-3343DFS
7,34,33,Marek,33-3DE3
3,34,22,Edyta,33-WERD3
czyli kolejne wiersze posiadają ta samą strukturę, a kolejne wartości oddzielone są przecinkami.

Problem:

  1. Jak wczytać tylko ostatni wiersz i tak przypisać kolejne wartości (oddzielone przecinkami) do określonych zmiennych, żeby np. A:=3, B:=34, C:=22, D:='Edyta', E:='33-WERD3'?

<font color="red">Z góry dzięki!</span>

0

Wczytaj sobie np. do TStringList (LoadFromFile). A ostatnią linią będzie StringList.Strings[StringList.Count-1].

Potem możesz na innym TStringList'cie zrobić coś takiego:
StringList2.CommaText:=StringList.Strings[StringList.Count-1];
I potem:
A:=StringList2.Strings[0];
B:=StringList2.Strings[1];
C:=StringList2.Strings[2];
D:=StringList2.Strings[3];
E:=StringList2.Strings[4];

0

Wielkie dzięki za odpowiedź. Dziś rano doszedłem w programie do momentu, kiedy potrzebowałem wykorzystać tą wskazówkę i mam kolejny problem. W helpie znalazłem jak używać "loadfromfile" z komponentem "memo" i działa. Nigdzie jednak nie mogę wyszukać komponentu związanego z "TStringList". Próbowałem "wymusić" wstawienie pól typu "StringList1: TStringList" (analogicznie jak memo) ale nie udało się i w momencie załadowania danych program się zatrzymuje. Być może problem jest banalny, ale odpowiedni do mojej ograniczonej wiedy i doświadczenia ;)

Z góry dzięki za pomoc.

0

No i poradziłem sobie. Po przejrzeniu stosu kodów i informacji z tej strony udało mi się doprowadzić do tego, żeby mój "StringList" wymieniony w odpowiedzi Szymka w końcu zadziałał. Dla zainteresowanych początkujących ;) zrobiłem to tak:

procedure TForm1.SprawdzZmiany;
var
StringList1 : TStringList;
StringList2 : TStringList;
begin
StringList1 := TStringList.Create;
StringList2 := TStringList.Create;
with Stringlist1 do LoadFromFile 'C:\Login\MSL_OCD.log');
StringList2.CommaText := StringList1.Strings[StringList1.Count-1];
Form1.Label15.Caption := StringList2.Strings[2];
Form1.Label16.Caption := StringList2.Strings[3];
(...)
na razie tyle... działam dalej...

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