textten okuyup db ye yazdırma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kubra_21
Üye
Mesajlar: 57
Kayıt: 30 Kas 2005 01:49
Konum: erzincan

textten okuyup db ye yazdırma

Mesaj gönderen kubra_21 »

s.a arkadaşlar. yaptığım öğrenci işleri programında şöyle bir işlem gerçekleştirmem lazım. txt uzantılı metin belgesinde olan bir bilgiyi kayit.db adındaki dosyama yazdıracağım.(metin belgesinde bulunan her bilgi için bir alanım olacak tabi.) bu işlemi nasıl yapabilirim bir fikri olan varmı..

metin belgesi içeriği
43 2005/2006 BAHAR 17.02.2006 44358003 9958102 Devaml

43 2005/2006 BAHAR 17.02.2006 44358003 9958104
Devaml
........
böle devam ediyo
Allah Namına Al Allah Namına Ver Vesselam...
serkan
Üye
Mesajlar: 666
Kayıt: 10 Tem 2003 12:08
Konum: bursa

Mesaj gönderen serkan »

selam
txt dosyasında 43 2005/2006 BAHAR 17.02.2006 ... gibi bir satır var.
bunlardan 43 bir sütun(Field) , 2005/2006 başka bir sütun(field),BAHAR başka bir Field v.s şeklinde olacak galiba eğer öyle ise bu txt dosyasını excelde aç sabit uzunluklu olarak seçip her farklı sütunun arasına bir çizgi koy.daha sonra xls olarak kaydet.Excelden veritabanına alma işlemini daha kolay yaparsın böylece..
kubra_21
Üye
Mesajlar: 57
Kayıt: 30 Kas 2005 01:49
Konum: erzincan

Mesaj gönderen kubra_21 »

teşekkürler arkadaşım ama bu benim sorunu çözmüyo ödevim bunu üzerine.evet doğru bu bilgiler arasında sabit bir aralık var mutlaka bunuda hesaba katmam lazım. teşekkürler.
Allah Namına Al Allah Namına Ver Vesselam...
Kullanıcı avatarı
kelaynak2
Üye
Mesajlar: 135
Kayıt: 30 Haz 2003 02:18

Mesaj gönderen kelaynak2 »

Kodu denemedim ama aşağıdakine benzer bir kodla aktarabilirsin.

Kod: Tümünü seç


function TForm1.ExtractWord(Item: Integer;S, WordDelim: string): string;
var
 First,
 Second:Integer;
begin
 First:=WordPosition(Item - 1,S,WordDelim);
 Second:=WordPosition(Item,S,WordDelim);
 if Second = 0 then
  Second:=Length(S) + Length(WordDelim);
 if First = 1 then
  First:=-Length(WordDelim);
 Result:=Copy(S,First + Length(WordDelim),Second - (First + Length(WordDelim)));
 if Item = 1 then
  Delete(Result,Length(Result),1);
end;

function Tform1.WordPosition(Item: Integer; const S, SubStr: string): Integer;
var
 i,
 Count : Integer;
begin
 Count:=0;
 Result:=0;
 for i:=1 to Length(S) do
  begin
   if Copy(S,i,Length(SubStr)) = SubStr then
    Inc(Count);
   if Count = Item then
    begin
     Result:=i;
     Break;
    end;
  end;
end;


procedure Tform1.aktar
var
liste:Tstringlist;
str,str1,str2,str3:string;

Begin

liste:=Tstringlist.Create;
try
liste.loadfromfile('c:\kayit.txt');
for i:=0 to liste.count-1 do
begin
str:=liste.Strings[i];//bir satır oku.
str1:=extractword(1,str,' ');//alanları al.
str2:=extractword(2,str,' ');
str3:=extractword(3,str,' ');
adoquery1.insert;
adoquery1.fields[1].asstring:=str1;
adoquery1.fields[2].asstring:=str2;
adoquery1.fields[3].asstring:=str3;
adoquery1.post;

end;

finally
liste.free;
end;

end;

Cevapla