Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.14;
Скачать: CL | DM;

Вниз

заполнение БД данными из текстового файла   Найти похожие ветки 

 
grab   (2001-12-11 14:13) [0]

Уважаемые мастера, не могли бы вы объяснить новичку порядок заполнения таблицы данными (цифры, даты и т.д.) из текстового файла в таблицу Делфи. Может, есть какой-то другой способ организации такой БД? Текстовые файлы сами по себе уникальны, и закачиваются в БД ежедневно. Заранее благодарен.


 
Val ©   (2001-12-11 14:22) [1]

Cчитываете данные из текстового файла, преобразовываете в нужный формат и записываете в таблицу Table1.FieldByName("fname").As..:=данные;
Вообще-то ваш вопрос задан очень пространно.


 
grab   (2001-12-11 14:27) [2]

а каким образом считывать данные? есть какая-то функция?


 
Val ©   (2001-12-11 14:35) [3]

хелп по AssignFile,Reset,Read,CloseFile и т.д.


 
Romul   (2001-12-11 15:09) [4]

Посмотри в хэлпе компонент TStringList. Очень удобно им пользоваться.


 
grab   (2001-12-11 17:56) [5]

а примера, хотя бы подобного, нет никакого? чтобы сразу считывать, преобразовывать в формат и заполнять таблицу?


 
Cossys ©   (2001-12-11 18:19) [6]

Проще иметь уже скелет таблицы (пустышку), которую и заполняеш. Пользоваться Readln не советую - команда чисто досовская, поэтому если в Вашем файлике встретится нечто вроде chr(255) - считка прекращается. Используйте TMemo или, как сказал Romul, компонент TStringList.
frmA.Memo1.Clear;
frmA.Memo1.Lines.LoadFromFile(frmA.opnDlg1.FileName);
Далее (если досовский файл структурирован) в теле цикла (for i:=0 to Memo1.Lines.Count-1) считываете...

Пример:
NAME TYPE
Коля Ламер
Вася Юзер
Петя Хакер

for i:=0 to Memo1.Lines.Count-1
begin
Table1.Insert;
Table1.Fields[0].Value:=Copy(Memo1.Lines[i], 3, 4);
Table1.Fields[1].Value:=Copy(Memo1.Lines[i], 9, 5);
Table1.Post;
end;

Удачи!


 
grab ©   (2001-12-11 18:33) [7]

Спасибо,Cossys ©! Структура файла типа такого:
08=01022001=01012001=31012001=05022001=2359=589642=21=000025087=#02МТН25.G21=
#1=1
1010012801=668803
1110012801=261900
5010012801=2148835
6010012801=1562509
5110012801=813000
6110012801=583000
5010022801=494842
6010022801=500013
5110022801=190000
6110022801=192000
5010072801=476576
6010072801=476576
5110072801=183000
6110072801=183000
5019112801=1307352
6019112801=1307352
5119112801=500000
6119112801=500000
2025282801=1629
2125282801=638
равно - разделитель, до равно - шифры счетов и их признаки, валюты и т.д., после равно - в копейках или в номиналах, это все должно быть разбросано по отдельным ячейкам, в первой строке - даты.
Цифру из первого столбца еще надо разбивать на составляющие, т.е. первые две цифры - признак счета, после них четыре цифры - счет, потом три цифры - валюта и т.д.


 
Cossys ©   (2001-12-11 19:07) [8]

Да Вы банкир, да еще и с Украины! Знакомые до боли цифры! Поосторожнее Вы были с такими табличками тут на форуме...




 
grab ©   (2001-12-11 19:21) [9]

пример нашел на одном из сайтов, тоже в форуме, цифры все левые


 
andey   (2001-12-11 20:09) [10]

Я тоже как-то думал но абстрактно.
текст разбивал на ячейки.
Вот Функция:
Function GetWord(var S: String): String;
const
Letters: set of Char = ["a".."z", "A".."z", "А".."я", "0".."9"];
begin
Result := "";
while (S<> "") and not (S[1] in Letters) do
Delete(S,1,1);
while (S<> "") and (S[1] in Letters) do
begin
Result:=Result+S[1];
Delete(s,1,1)
end;
end; //GetWord Выделение слова из строки

Загоняй текст в Мемо и читай по строчно
обрабатывай этой функцией и раскидывай по полям.
Скинул свою рогу попробуй.


 
grab ©   (2001-12-11 20:23) [11]

как все серьезно... в Экселе это просто цирк, работает, но весело
спасибо!



Страницы: 1 вся ветка

Текущий архив: 2002.01.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
4-42637
DDN
2001-11-09 23:52
2002.01.14
VirtualQuery


1-42499
tovSuhov
2001-12-24 08:37
2002.01.14
Выравнивание текста в ячейках StringGrid`a...


1-42483
катерина
2001-12-25 16:17
2002.01.14
ну,кто-нибудь!.... :-(


1-42518
Волокитин Николай
2001-12-26 15:55
2002.01.14
Загрузка электронных таблиц в компонент F1Book.


14-42551
Jey
2001-10-30 22:03
2002.01.14
ЗА СТЕКЛОМ