Witam,
na początku przedstawię cel aplikacji: po wciśnięciu przycisku, dane z pliku tekstowego (które są w słupku) mają zostać wklejone w poszczególne komórki wyłącznie pierwszej kolumny tabeli (po za pierwszą komórką, gdyż tam znajduje się tytuł kolumny).
Ilość danych (linijek) w pliku .txt nie jest znana, zatem liczba wierszy tabeli na pewno będzie musiała być zmodyfikowana. Na formie umieściłam jeden Button oraz tabelę TStringGrid (5 kolumn, 5 wierszy):
procedure TForm1.Button1Click(Sender: TObject);
var plik : textfile;
i : integer;
j : integer;
s : string;
k : string;
liczba : integer;
begin
assignfile(plik, 'C:\Users\Magda\Desktop\megi.txt');
reset(plik);
liczba:=1;
repeat
begin
Readln(plik, k);
liczba:=liczba+1;
end;
until eof(plik);
Form1.StringGrid1.RowCount := liczba;
Form1.StringGrid1.Cells[0,0]:= 'Area';
Form1.StringGrid1.Cells[1,0]:= 'Place';
Form1.StringGrid1.Cells[2,0]:= 'District';
Form1.StringGrid1.Cells[3,0]:= 'Street';
Form1.StringGrid1.Cells[4,0]:= 'Price';
repeat
begin
for j:=1 to liczba-1 do
begin
Readln(plik, s);
Form1.StringGrid1.Cells[0,j]:= s;
end;
end;
until eof(plik);
closefile(plik);
end;
end.
Program kompiluje się, a po wciśnięciu przycisku, tabela się powiększa o ilość wierszy odpowiadającej ilościowi linijek z pliku tekstowego, ale niestety dane nie wczytują się do komórek. Jak wyrzucam pierwszą pętlę repeat, a wdrugiej modyfikuję linijkę
for j:=1 to liczba-1 do
na for j:=1 to Form1.StringGrid1.RowCount-1 do
to dane się wczytują, ale wtedy musiałabym znać ilość wierszy, aby ich ilość nie była mniejsza niż liczba danych do wklejenia.
Czy jest jakaś metoda w stylu AddRow czy InsertRow aby można było jakoś to rozwiązać? Co w kodzie jest nie tak, że dane się nie wczytują?
Pozdrawiam i dziękuję z góry za pomoc:)
M.