TXT/MySQL

0

Zna moze ktos jakis algorytm, albo jakis sposob na przeniesienie danyc z pliku tekstowego:

ID$Nazwa$Firma$Adres$
ID$Nazwa$Firma$Adres$
ID$Nazwa$Firma$Adres$
ID$Nazwa$Firma$Adres$
...

do bazy danych typu MySQL. Takich rekordow jest naprawde duzo i bezsensowne byloby wpisywanie tego recznie. Chodzi mi oczywiscie o wykonanie tego w Delphi.

Jesli ktos ma jakis pomysl to bardzo prosze o pomoc (moze sa jakies zapytania lub polecenia SQL). Kazda uwaga sie przyda. Zgory dziekuje.
Pozdrawiam.

0

Ja mam taki plan :

  1. Wczytujesz do jakiegoś stringa linię z pliku tekstowego;
  2. Ściągasz moją procedurę spod http://4programmers.net/Forum/viewtopic.html?id=41981 do rodzielania tektu na wyrazy, przerabiasz ją trochę, żeby rodzielała wyrazów po spacji tylko po "$" i wywołujesz, jako parametr podając linijkę z pliku, którą oczytałeś. Uzyskujesz w ten sposób tablicę wyrazy_po_rodzieleniu, w której interesują cię elementy [0], [1], [2], [3];
  3. Wykorzystujesz nieśmiertelne komponenty Zeos. Przykład jak użyć jest pod adresem http://4programmers.net/download.html?id=1108. Ciebie z tego przykładu zainteresuje procedurka
procedure TForm1.Button1Click(Sender: TObject);

.

Nie powiem ci dokładnie jak to zrobić, bo nie znam struktury tej tabeli, w którą chcesz to zapisać. Jak coś to ślij emaila.

0

sposob, ktory opisales chcialem juz dawno wykozystac, ale mysalalem ze znajdzie sie cos prostrzego i szybszego. jezeli chodzi zas o komponenty Zeos to sa one zbedne gdysz w pelni wystarcza mi standardowe komponenty D7. w kazdym razie dzieki za pomoc :)

0

A może np. tak:

var
 Plik, Linia: TStringList;
 Idx: Integer;

begin

 Plik  := TStringList.Create;
 Linia := TStringList.Create;

 try

  Plik.LoadFromFile('sciezka do pliku');

  for Idx := 0 to Plik.Count -1 do
     begin
       Linia.Clear;
       ExtractStrings(['$'], [], PChar(Plik.Strings[Idx]), Linia);
       { tutaj dodajesz do bazy po kolei kazda linijke z listy Linia
          odpowiednio masz:
          Linia.Strings[0] = ID
          Linia.Strings[1] = Nazwa
          Linia.Strings[2] = Firma
          Linia.Strings[3] = Adres
        }
     end;

 finally
  Plik.Free;
  Linia.Free;
 end;

end;

Pisałem na "sucho" więc mogą być błędy.

0

MatroX, zrozumiales mnie IDEALNIE! :)

Wielkie dzieki Ci za to :-)

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