Problem z DBGridem...

0

mam podobny problem do problemu Kornelii, tylko że z DBGridem. Mam sobie baze danych, do tej bazy chiałabym załadować slowa z pliku tekstowego. W sumie plik jest wczytywany,ale ostatatecznie efektem tego wczytywania jest ostatni wyraz z pliku tekstego, jak mam rozwiązać ten problem, czego mi brakuje??jak w DBGridzie dodać wiersze, zeby kazde nowe slowo odczytywane z pliku tekstowego,bylo zapisywane w nowym wierszu??

moj kod:

procedure TForm1.ZapiszPlikTXTClick(Sender: TObject);

var plik:textfile;
s:String;

begin

Assignfile(plik,'Slowa.txt');
Reset(plik);

 with DBGrid1 do

begin
while not EOF(plik) do

 begin

   Table1.First;
   Readln(plik,s);
   Table1.Edit;
   
   Table1SLOWO.Value:=s;
 
    Table1.Next;

 end;

end;
Closefile(plik);
end;

0

... ale ostatatecznie efektem tego wczytywania jest ostatni wyraz z pliku tekstego, jak mam rozwiązać ten problem, czego mi brakuje??

procedure TForm1.ZapiszPlikTXTClick(Sender: TObject);
var plik:textfile;
      s:String;
begin
    Assignfile(plik,'Slowa.txt');
    Reset(plik);

    Table1.First; // Ustawienie na pierwszy rekord w tabeli, nie może być w pętli

    with DBGrid1 do
    begin
    while not EOF(plik) do
    begin
       Readln(plik,s);
       Table1.Edit;
       Table1SLOWO.Value:=s;
       Table1.Next;
    end;
 end;
 Closefile(plik); 
end;
0

niestety i to nie pomaga, potrzebuje czegos, co by po wczytaniu jednego slowa moglo przejsc do nastepnego wiersza DBGrida....

0

Spróbuj wstawić :

  Table1SLOWO.Value:=s;
//
  Table1.Post;
//
  Table1.Next;

albo

Table1SLOWO.Value:=s;
Table1.Post;
Table1.Append;
0

juz doszalam do tego, juz wczoraj probowalam posta, niestety wyrzucalo blad, append okazal sie zbawienny :-* (jesli umieszczony jest we wlasciwym miejscu)

kodzik teraz wyglada tak:

procedure TBazaSlow.ZapiszPlikTXTClick(Sender: TObject);
var plik:textfile;
s:String;

begin

Assignfile(plik,'Slowa.txt');
Reset(plik);
  Table1.First;
  with DBGrid1 do
 begin
   while not EOF(plik) do

    begin
       Readln(plik,s);
       Table1.Edit;
       Table1.Append;
       Table1SLOWO.Value:=s;
       Table1.Next;

    end;
 end;

   Closefile(plik);

end;

<font color="blue">Ps. moj nowy problem polega na tym, zeby w bazie nie pojawialy sie te same slowa, jesli bedziemy robic kolejne wczytywanie pliku tekstowego, ustawienia na Unique w indexach nie pomagaja, :-(
gdybys mogl cosik skronbac na ten temat....</span>dzieki za dotychczasowa pomoc!!

0

upss. zapomialam sie zalogować ;-)
jeszcze jedna sprawa, jak wyczyścić zawartośc tabeli( cos EmptyTable mi nie dziala :-/

Pozdro

0

upss. zapomialam sie zalogować ;-)
jeszcze jedna sprawa, jak wyczyścić zawartośc tabeli( cos EmptyTable mi nie dziala :-/

Pozdro

Z tego co pamiętam :

Table1.Exclusive := True;
Table1.EmptyTable;
Table1.Exclusive := False;

mogę się mylić, a najlepiej looknij do Helpa :)

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