Dodawanie imion z txt do bazy danych

Dodawanie imion z txt do bazy danych
MO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 74
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.

Kopiuj
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; 
flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
0

Randomize w pętli? RLY?

MO
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 74
0

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

flowCRANE
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Tuchów
  • Postów: 12270
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.