Текущий архив: 2008.07.06;
Скачать: CL | DM;
Вниз
Загрузка данных в DBF из текстового файла Найти похожие ветки
← →
n_sch (2008-06-09 13:37) [0]Добрый день, подскажите пожалуйста есть текстовый файл примерно такого вида:
2577|42307810440374706074|6500.00|аааааааа|ббббббббббб|сссссссс
2577|42307810040374816021|10000.00|аааааа|ллллллл|ххххххххххх
2577|42307810540376200850|6960.00|ппппппппп|ффффффффф|ввввввв
и табличка DBF c 6-ю символьными полями, как загрузить в таблицу весь текстовый файл , разделители между полями в DBF естественно "|".
Спасибо.
← →
clickmaker © (2008-06-09 13:45) [1]> как загрузить в таблицу весь текстовый файл
программно?
загрузи как stringlist, потом в цикле разбивая на поля, Table.Append
Table предварительно настрой на нужный *.dbf
← →
palva © (2008-06-09 14:33) [2]Текстовый файл можно прочитать в рекодсет как 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(|)
← →
версия для печати (2008-06-09 14:41) [3]если на один раз, то открой в екселе как cvs и сохрани как dbf
← →
версия для печати (2008-06-09 14:42) [4]cvs = csv, конечно
← →
n_sch (2008-06-09 15:32) [5]Извените за идиотский вопрос но,
> Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.;Extended
> Properties="Text;FMT=Delimited;HDR=No;"
это относиться к чему или к какому компоненту, TTable, DataSource или DataSetProvider ????
← →
clickmaker © (2008-06-09 16:04) [6]к тому, у которого есть ConnectionString
← →
palva © (2008-06-09 18:53) [7]
> 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;
← →
palva © (2008-06-09 20:01) [8]
> В этом файле можно также задать имена и форматы колонок
Наверно, вам все-таки придется указать форматы полей, поскольку вторая колонка интерпретируется как double, и самые правые цифры строки отсекаются округлением.
Ну это конечно, если вы решили читать файл именно этим способом.
Страницы: 1 вся ветка
Текущий архив: 2008.07.06;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.042 c