Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Import .txt mnogo redova

[es] :: Access :: Import .txt mnogo redova

[ Pregleda: 1891 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

stefann127
Stefanovic Nebojsa
ITS
Beograd

Član broj: 55741
Poruke: 91
*.yubc.net.



Profil

icon Import .txt mnogo redova21.04.2007. u 11:14 - pre 207 meseci
Ljudi,

pregledao sam malo teme sa importom .txt fajlova, video i "Rad sa datotekama-Podela datoteke na segmente?", ali bih molio da mi pomognete, jer misli da je problem specofican.

Imam .txt fajl sa 270.000 redova koji bih zeleo da uvezem u bazu, ali je taj .txt podeljen ovako.
napr. prvi red je Pera Peric , Adresa, Grad,
zatim su redovi 2-50 neki brojevi, po kontima koliko je Pera peric dobio od nekoga, brojevi odvojeni separatorom ,
zatim red 51 je Jova Jovic, Adresa, Grad,
zatim 52-99 su opet brojevi koliko je Jova Jovic dobio od nekoga, odvojeni separatorom,

Dakle treba 48 podataka za svakog primaoca (ima ih mnogo, sta da se radi, ima se moze se

i tako do 270000 reda.

U ovoj proceduri sam naveo kod za podelom datoteke .txt na segmente.

Code:
:

procedure TForm1.Button1Click(Sender: TObject);
var Lista:TStringList;
    i,j:integer;
begin
  Lista:=TStringList.Create;
  Lista.LoadFromFile('c:\podaci.txt');
  j:=1;
  Memo1.Lines.Clear;
  Memo2.Lines.Clear;
  Memo3.Lines.Clear;
  for i:=0 to Lista.Count-1 do
  begin
    if Lista[i]='Pera Peric' then
      j:=2;
    if Lista[i]='Jova Jovic' then
      j:=3;
    if (Lista[i]<>'Pera Peric' ) and (Lista[i]<>'Jova Jovic' ) and (Lista[i]<>.......) then
      TMemo(FindComponent('Memo'+IntToStr(j))).Lines.Append(Lista[i]);
  end;
  Lista.Free
end;



Meni bi trebala dopuna koda koji ce importovati za Peru Perica, Jovu Jovica i sve ostale u access tabelu - bazu poimenice i po svotama.Mogu da budu i dve tabele, prva sa podacima o primaocu, a druga sa "lovom" po kontima.

Ako neko moze neka pomogne. Mnogo ih je.


Unapred tnx



 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Import .txt mnogo redova23.04.2007. u 14:56 - pre 207 meseci
Trebaju ti dve tabele, Radnic i primanjaRadnika. Za svakog radnika ce biti u jedan red u tabeli Radnici i mnogo redova u tabeli PrimanjaRadnika.

Da bi prebacio podatke iz tvog fajla, moras da napises kod koji ce da:
1. otvori dateoteku za citanje
2. procita sledeci red (pera peric...) i upise ga u tabelu Radnici
3. cita sledeci red (koji je sav od numerickih podataka) i upise ga u tabelu PrimanjaRadnika, za radinka koji je tekuci
4. cita sledeci red, ako je numericki red, idi na korak 3. Ako je red tipa 'Radnik', idi na korak 2.
i tako snastavis ve dok ne udaris u EOF (End of File) marker

Ocigledno je da moras da znas kako da prepoznas redove, koji ti je zaglavlje (podaci o radniku) a koji je red sa primanjima.

Nisi naveo da li se isti radnici ponavljaju vise puta u tvojoj velikoj datoteci. Zbog toga, za poetak treba samo kreirati tabele, bez indksa ili PK. Prebaci sve sto mozes iz tekst fajla i onda analiziraj tabele - ima li duplikata i slicno, i onda pokusaj da postavis PK, FK i ostalo sta ide u pravilan dizajn baze.
 
Odgovor na temu

stefann127
Stefanovic Nebojsa
ITS
Beograd

Član broj: 55741
Poruke: 91
212.200.146.*



Profil

icon Re: Import .txt mnogo redova24.04.2007. u 11:03 - pre 206 meseci
Zidar,


nema duplikata u podacima o radnicima.

Kreiracu tabele i relacije.

Ako mozes uputi me na neku od diskusija, obzirom da je za prvu tabelu potrebno uvek ucitati samo jedan red, dok je za drugu tabelu potrebno ucitati 48 redova.

Hvala unapred.


pozdrav
 
Odgovor na temu

Zidar
Canada

Moderator
Član broj: 15387
Poruke: 3085
*.100.46-69.q9.net.



+79 Profil

icon Re: Import .txt mnogo redova24.04.2007. u 14:21 - pre 206 meseci
Na zalost ne mogu da te uputim na neku diskusiju jer se ne secam da smo imali slican problem na forumu. To se ja ne secam, ne znaci da nije bilo. nazalost, nemam nikakav drugi nacin klasifikovanja i pretrazivanja tema osim onoga koji imas i ti - pretraga na forumu.

Ako ima stacno 48 redova posle svakog reda sa imenom i prezimenom radnika, onda postavi brojac koji ce se povecavati od 1 pa navise kad ides kroz tekst fajl i kad vrednost brojaca bude deljiva sa 50 bez ostatka - upravo si nagazio na red sa novim radnikom. Moze i drugacije, otvori red sa radnikom, onda 48 puta ucitaj brojeve, pa opet novi radnik, pa opet 48 puta brojevi i tako do kraja.

Da lakse uocis pravilnost, uzmi deo text fajla, recimo prvih 20 radnika (20*49 redova < 1000 redova) i stavi to u Excel. Onda s leve strane dodaj kolonu i postavi rucno brojac redova. Posmatraj brojac i rekord iz fajla istovremeno i pokusaj da uocis pravilnost.

A mozda ti se prvi karakter u radnik- redu i primanja redu razlikuju ne neki nacin. Pogledaj scvoj fajl i vidi po cemu se razlikuju redovi i to iskoristi.

Kako bi izgledao konkretan kod, to morassam da se snadjes, ili ako neko ima vremena na forumu da ti pomogne. Taj neko bi morao da vidi svojim ocima konkretne podatke pre nego sto pokusa da pomogne konkretno.
 
Odgovor na temu

[es] :: Access :: Import .txt mnogo redova

[ Pregleda: 1891 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.