Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.024 c
2-1212709477
Soon
2008-06-06 03:44
2008.07.06
Задержка


2-1212846624
WebSQLNeederrr
2008-06-07 17:50
2008.07.06
Как узнать следующее вхождение pos-a


2-1212825750
TUserClass
2008-06-07 12:02
2008.07.06
OnMouseEnter и OnMouseLeave для всего ...


2-1213005331
Zabludshiy
2008-06-09 13:55
2008.07.06
Проблема с выполнением запроса в ADOquery


15-1211296805
buzb
2008-05-20 19:20
2008.07.06
А есть ли возможность в Делфи 7 сворачивать функции как в 2007