Dodawanie imion z txt do bazy danych

0

Witam,
jestem w trakcje robienia bazy danych w delphi. Mam problem jeśli chce generować automatyczne wpisywanie rekordów do bazy. Chciałem, żeby procedura Generuj sprawdzała mi ilość imion w pliku txt oraz logowała jedno imię do tabeli. Nie wiem dlaczego poniższy kod nie działa. Sprawdzałem go w osobnym projekcie to normalnie mi wypisywało randomowe imiona.

procedure TForm3.btn3Click(Sender: TObject);
var
//ilosc - ilosc wierszy w pliku txt
//j - wylosowany wiersz do wpisania
i, j, x, ilosc : integer;
s : string;
plik : TextFile;
begin
  for i := 1 to StrToInt(edtGeneruj.Text) do
  begin
    Randomize;
    tbl1.Open;
    tbl1.Append;
    //
    AssignFile(plik,'imiona.txt');
    try
      Reset(plik);
      while not Eof(plik) do
      begin
        readln(plik);
        Inc(ilosc);
      end;
    finally
      CloseFile(plik);
    end;
    j := 1 + Random(ilosc);
    AssignFile(plik,'imiona.txt');
    try
      Reset(plik);
      while not Eof(plik) do
      begin
        Readln(plik);
        Inc(x);
        if (j = x) then Readln(plik, s);
      end;
    finally
      CloseFile(plik);
    end;
    //
    edtImie.Text := s;
    tbl1.FieldByName('Imie').AsString := s;
    tbl1.FieldByName('Model').AsString := IntToStr(100+random(900)) +
                                          chr(ord('A')+random(26));
    tbl1.Post;
  end;
end; 
0

Randomize w pętli? RLY?

0

W pętli czy nie to raczej i tak działa tak samo czy się mylę ?

0

Randomize (drugi raz podaję link do poczytania) wywołuje się jedynie raz, najlepiej w głównym module projektu, na samym jego początku; Jak będziesz wiele razy wywoływał tę procedurę (tym bardziej w pętli) to Random będzie bardzo słabo losować, albo wręcz w kółko będziesz dostawał takie same wartości; Więc sprawdź, nie pytaj;

Poza tym to podwójne otwieranie pliku w każdej iteracji pętli wygląda tragicznie.

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