Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.008 c
3-23523
Tutov Roman
2002-06-18 10:43
2002.07.08
как заменить строку в таблице.


14-23723
Sergo
2002-06-04 16:50
2002.07.08
NeuroSolution


6-23710
SB.John
2002-04-30 08:29
2002.07.08
Как узнать IP-адрес машины на которой работает программа?


7-23808
Torry
2002-04-12 14:30
2002.07.08
Помогите воруют мыши


14-23757
MJH
2002-06-02 13:26
2002.07.08
Кто здесь с Владивостока, кроме меня и SPeller а ??




   Наверх