Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.08;
Скачать: CL | DM;

Вниз

dbf to txt   Найти похожие ветки 

 
VictorT ©   (2002-06-14 12:50) [0]

В СУБД Informix есть команда unload, которая позволяет сохранить содержимое таблицы в текстовый файл с разделителями полей. Как сделать то же самое с dbf-файлом в Делфи? Можно конечно перемещаться курсором по таблице и писать в текстовый файл. Но может есть способ, такой же простой как в Informix?


 
K_dim   (2002-06-14 13:41) [1]

Тут правда обратное преобразование, но исправлять лень.
А так вроде бы всё понятно.
tbltxt - TTable with TableType=ttASCII

Function Txt2Dbf(tbltxt, tbldbf: ttable) : longint;
var i, dl : integer;
st, stfld : string;
begin
// Ф-ция копирует TXT файл в DBF согласно структуры DBF-файла
result := 0; // результат - кол-во обработанных записей
try
tblTXT.First;
while not(tblTXT.EOF) do begin
st := tblTxt.Fields[0].asstring;
dl := 1;
tblDbf.Append;
for i:= 0 to tbldbf.FieldCount-1 do begin
stfld := OemToAnsiStr( copy(st,dl, tbldbf.Fields[i].displayWidth) );
// tbldbf.Fields[i].asString := OemToAnsiStr( copy(st,dl, tbldbf.Fields[i].displayWidth) );
dl := dl+length(stfld);
case tbldbf.Fields[i].datatype of
ftString : tbldbf.Fields[i].asString := stfld;
ftInteger, ftSmallint, ftWord: tbldbf.Fields[i].value := StrToInt(stfld);
ftFloat: tbldbf.Fields[i].value := StrToFloat(stfld);
ftDateTime: tbldbf.Fields[i].value := StrToDateTime(stfld);
ftDate: tbldbf.Fields[i].value := StrToDate(stfld);
ftTime: tbldbf.Fields[i].value := StrToTime(stfld);
ftCurrency: tbldbf.Fields[i].value := StrToCurr(stfld);
else tbldbf.Fields[i].asString := stfld;
end; // case
end; // for curfld:= 0 to tbldbf.FieldCount-1
result := result+1;
tblTXT.Next;
end; // while not(tblDbf.EOF)
except
on E : Exception do begin
MessageDlg("Ошибка: "+#13+#10+E.message, mtError, [mbOk], 0);
result := -1;
end;
end; // try
end;


 
VictorT ©   (2002-06-14 15:27) [2]

Спасибочки. Я правда предпологал, что есть более простой способ. Сам собирался делать почти также, только напрямую писать в текстовый файл.



Страницы: 1 вся ветка

Текущий архив: 2002.07.08;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
7-23805
JohnKorsh
2002-04-10 08:10
2002.07.08
Работа с последовательными портами.


14-23777
Bor
2002-06-08 13:38
2002.07.08
ПОМОГИТЕ!!!!!!


14-23786
lipskiy
2002-06-08 03:30
2002.07.08
UBPFD - Бесплатная база готовых решений для Delphi


1-23581
Quad
2002-06-17 20:05
2002.07.08
Замучался я с QReport ом... ПОМОГИТЕ!!!


3-23504
MVVD
2002-06-13 16:57
2002.07.08
Back up