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
textten okuyup db ye yazdırma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
textten okuyup db ye yazdırma
Allah Namına Al Allah Namına Ver Vesselam...
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..
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..
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;