![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Загрузка данных в DBF из текстового файла [D6, 2000]
n_sch © (2008-06-09 13:37:00)Добрый день, подскажите пожалуйста есть текстовый файл примерно такого вида:
2577|42307810440374706074|6500.00|аааааааа|ббббббббббб|сссссссс
2577|42307810040374816021|10000.00|аааааа|ллллллл|ххххххххххх
2577|42307810540376200850|6960.00|ппппппппп|ффффффффф|ввввввв
и табличка DBF c 6-ю символьными полями, как загрузить в таблицу весь текстовый файл , разделители между полями в DBF естественно '|'.
Спасибо.
palva (2008-06-09 20:01:00) [1]
> В этом файле можно также задать имена и форматы колонок
Наверно, вам все-таки придется указать форматы полей, поскольку вторая колонка интерпретируется как double, и самые правые цифры строки отсекаются округлением.
Ну это конечно, если вы решили читать файл именно этим способом.
palva (2008-06-09 18:53:00) [2]
> n_sch (09.06.08 15:32) [5]
Я попробовал, но первая строка файла упорно интерпретировалась как имена колонок. У меня заработало, когда я сделал так:
Файл schema.ini такой:
[prb.txt]
Format=Delimited(|)
ColNameHeader=False
В этом файле можно также задать имена и форматы колонок, кодировку и др. например так:
Col1=FieldName1 Integer Width 15
Col2=FieldName2 Date Width 15
Col3=FieldName3 Char Width 40
Col4=FieldName4 Float Width 20
CharacterSet=ANSI
Но это я не пробовал. Информацию взял отсюда: http://connectionstrings.com/?carrier=textfile)
prb.txt и schema.ini положил в директорию d:/c
Положил на пустую форму
ADOTable1: TADOTable;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Button1: TButton;
Код на кнопке следующий:
procedure TForm1.Button1Click(Sender: TObject);
begin
DataSource1.DataSet := AdoTable1;
dbGrid1.DataSource := DataSource1;
ADOTable1.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\c;' +
'Extended Properties="Text;FMT=Delimited;"';
ADOTable1.TableName := 'prb#txt';
AdoTable1.Active := true;
end;
clickmaker (2008-06-09 16:04:00) [3]к тому, у которого есть ConnectionString
n_sch (2008-06-09 15:32:00) [4]Извените за идиотский вопрос но,
> Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.;Extended
> Properties="Text;FMT=Delimited;HDR=No;"
это относиться к чему или к какому компоненту, TTable, DataSource или DataSetProvider ????
версия для печати (2008-06-09 14:42:00) [5]cvs = csv, конечно
версия для печати (2008-06-09 14:41:00) [6]если на один раз, то открой в екселе как cvs и сохрани как dbf
palva (2008-06-09 14:33:00) [7]Текстовый файл можно прочитать в рекодсет как CVS при помощи Jet. Например, если файл называется prb.txt, то строка соединения такая:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.;Extended Properties="Text;FMT=Delimited;HDR=No;"Запрос:
SELECT * FROM prb.txt
Если читаются все поля, то пройдет, наверно и такой запрос:
prb.txt
Рядом с файлом надо положить файл с именем schema.ini следующего содержания:
[prb.txt]
Format=Delimited(|)
clickmaker (2008-06-09 13:45:00) [8]> как загрузить в таблицу весь текстовый файл
программно?
загрузи как stringlist, потом в цикле разбивая на поля, Table.Append
Table предварительно настрой на нужный *.dbf