Главная страница
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.017 c
1-23581
Quad
2002-06-17 20:05
2002.07.08
Замучался я с QReport ом... ПОМОГИТЕ!!!


1-23659
Tutov Roman
2002-06-26 10:42
2002.07.08
Разыскивается URL


6-23718
tovSuhov
2002-04-27 09:01
2002.07.08
OCX и иже с ним...


1-23590
Dmk
2002-06-24 02:28
2002.07.08
Создание MDIChild


1-23553
Navigor
2002-06-26 19:02
2002.07.08
Про буфер обмена WIN 98