Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];

Вниз

как загрузить из .txt с разделителями "^" в .db?   Найти похожие ветки 

 
Daria   (2005-12-05 13:19) [0]

Подскажите, пожалуйста, как загрузить из .txt с разделителями "^" в .db в Delphi???


 
Плохиш ©   (2005-12-05 13:24) [1]

Программу писать надо. Делфи такого не делает.


 
alex_*** ©   (2005-12-05 13:27) [2]

конкретнее вопрос, если хочешь получить внятный ответ


 
Daria   (2005-12-05 13:35) [3]

ой, спасибо!!! А то на работе уже убивать собираются....
Короче, есть файл test.txt. Разделители в нем галочки (^). (например, ^E^092^text^naim_mid^pole). Дальше надо будет с ним работать. Для этого хочу загрузить в базу данных с соответствующими полями. В Fox это делается одной командой, а вот тут столкнулась с проблемами....


 
Плохиш ©   (2005-12-05 13:38) [4]


> Daria   (05.12.05 13:35) [3]

В делфи нет для этого одной команды.


 
Daria   (2005-12-05 13:42) [5]

что нет одной команды, я уже поняла. но если знаете как это сделать, подскажите, пожалуйста, а то мне конец....


 
alex_*** ©   (2005-12-05 13:48) [6]

а что ты умеешь делать в Дельфи?


 
Sergey13 ©   (2005-12-05 13:49) [7]

2 [5] Daria   (05.12.05 13:42)
Так а что непонятно то? "Галочки" конкретно смущают или что?
Открой Екселем и сохрани как dbf.


 
Daria   (2005-12-05 13:50) [8]

работать с БД. как только каким-то образом загружу в базу, то все будет нормально :). Просто с этим я не сталкивалась и, честно говоря, не знаю с какой стороны даже подходить.... Поможете???


 
alex_*** ©   (2005-12-05 13:54) [9]

запиши в dbf см. [7] и из него в Дельфи закинь в db


 
Daria   (2005-12-05 13:55) [10]

Sergey, проблема в том, что это будет программа общего пользованя. на входе текстовые файлы. и никто не будет сначала открывать их в екселе, сохранять как dbf, а потом уже работать с моей прогой....


 
alex_*** ©   (2005-12-05 13:59) [11]

Проблема в разборе файла или в записи в .db?


 
Daria   (2005-12-05 14:02) [12]

проблема в том, что, по ходу дела, я совсем не знаю Дельфи..... каюсь, но помогите!!!! я не знаю как все данные из файла закачать в .db


 
alex_*** ©   (2005-12-05 14:04) [13]

если ты дельфи не знаешь, то программу не напишешь. Проси кого-ть чтоб тебе написали


 
Daria   (2005-12-05 14:08) [14]

я же сказала, что со всем остальным справлюсь. мы в институте писали всякие программы, только работали уже с таблицами paradox, делали их в database desktop. так что с того момента, как загружусь, я справлюсь.... главное - загрузить


 
ANB ©   (2005-12-05 14:14) [15]


> Daria   (05.12.05 14:08) [14]

А это не развод часом ?

Если нет, тогда выполняй так :

Если файл не очень большой и каждая строка заканчивается возвратом каретки:
0. Почистить целевую таблицу или создать ее
1. Загрузить содержимое файла в TStringList
2. Пройти по строкам списка циклом
3. Разобрать строку на отдельные поля с помощью функции Pos, ища разделители
4. Каждую строку проинсертить в таблицу

Если что то еще непонятно - пости вопросы.


 
alex_*** ©   (2005-12-05 14:18) [16]

а можно Replace по каждой строке пустить и заменить "^" на "," И загрузить в другой StringList и из него таскать записи по Strings[i]


 
alex_*** ©   (2005-12-05 14:20) [17]

[16] - хотя можем данные исказить, это я прогнал :)


 
ANB ©   (2005-12-05 14:23) [18]


> alex_*** ©   (05.12.05 14:18) [16]

TStringList умеет делить по запятым ? А как это сделать ? Я всегда руками разбирал.


 
alex_*** ©   (2005-12-05 14:28) [19]

Дельфей щас нет, но как помню в text присваиваешь строку, разд., запятыми и вперед. DelimitedText еще можно присваивать


 
alex_*** ©   (2005-12-05 14:31) [20]

точно не скажу, дельфей нет опять же.


 
ANB ©   (2005-12-05 14:33) [21]


> alex_*** ©   (05.12.05 14:28) [19]

Точно. Есть такая фича. Ни разу не пробовал, но в моем проекте все равно не поможет - мне нужно было разбирать по запятым, учитывая скобки и комментарии. Так что пришлось все равно руками писать.


 
КиТаЯц ©   (2005-12-05 14:39) [22]

А можно поинтересоваться откуда взялся "txt с разделителями "^"" ???
Понимаю, что сие не суть важно, но любопытно все же... Спасибо.


 
Daria   (2005-12-05 14:55) [23]

файл присылают филиалы и почему-то обязательно с такими разделителями....

Граждане, я, конечно, понимаю, что вы специалисты и маяться со мной не особо интересно..... Но умоляю, напишите примерчик в кодах.... а то все эти пункты 1,2,3 и т.п. понятны только одаренным....


 
ANB ©   (2005-12-05 15:23) [24]


> Daria   (05.12.05 14:55) [23]

Тут быстрее программу целиком написать и не парится с примерами.
А где проживаем ?


 
alex_*** ©   (2005-12-05 15:25) [25]

[24] - Хочешь домой занести? ;)


 
Daria   (2005-12-05 15:25) [26]

на каховке проживаем.....

не хотите писать...  ладно. все равно спасибо :((


 
ANB ©   (2005-12-05 15:28) [27]


> Daria   (05.12.05 15:25) [26]

Почему не хотим ???? Это за расчетом чтобы прийти.

Значится надо :
1. Образец файла для отладки
2. Тип БД
3. Скрипт создания таблицы (если какой - нибудь сервер) или имя и перечень полей и типов таблицы, если она локальная.


 
Daria   (2005-12-05 15:30) [28]

за каким еще расчетом???

я просто задала вопрос. все остальное сама напишу


 
alex_*** ©   (2005-12-05 15:35) [29]

[28] - не грузись ;) это была шутка


 
Daria   (2005-12-05 16:03) [30]

да как же тут не грузиться-то??? начальник волком смотрит...


 
ANB ©   (2005-12-05 16:05) [31]


> Daria   (05.12.05 15:30) [28]

Ну вот. Опять облом. Ну никак заказ на халтуру не получить.

Теперь задавай вопросы по пунктам : какой пункт не понятен, как реализовать.


 
Daria   (2005-12-05 16:16) [32]

ой, какой хороший!!!! :)

2. Пройти по строкам списка циклом
3. Разобрать строку на отдельные поля с помощью функции Pos, ища разделители
4. Каждую строку проинсертить в таблицу //особенно это не ясно


 
alex_*** ©   (2005-12-05 16:30) [33]

девушка, вышли человеку тестовый файл и описание таблицы куда вставлять. Он же хочет тебе помочь, но не может :)


 
ANB ©   (2005-12-05 16:31) [34]


> 2. Пройти по строкам списка циклом

SL : TStringList;

n := SL.Count - 1;
for i := 0 to n do begin
S := SL[i];
// Теперь в S i-я строка
end;


> 3. Разобрать строку на отдельные поля с помощью функции
> Pos, ища разделители

Тут писали пример про TStringList, но, поскольку я это не проверял - то тупорылый способ :
p := Pos("^", S); - теперь в p - номер позиции, в которой лежит ближайший разделитель. Если p = 0, значит разделители кончились.
Теперь можно отрезать в поле начало :
F := Copy(S, 1, p - 1);
и отрезать строку, чтобы можно было искать снова :
S := Copy(S, p + 1, Length(S));
Все это нужно повторять либо пока разделители не кончаться, либо циклом по счетчику, если число разделителей строго определено.


> 4. Каждую строку проинсертить в таблицу //особенно это не
> ясно

21 год ? Недавно ВУЗ закончила и базы совсем не учила ? Тяжелый случай.
Надо учится, а то все заветы Ильича то позабыли.
ЗЫ. На знакомство не претендую - у меня жена моложе.


 
Daria   (2005-12-05 16:33) [35]

ну файла пока нету..... но будет типа следующего:
^E^022^inv^877^naim^pole

таблица, соответственно, со столбцами: ошибка, номер, имя файла, поле, наименование ошибки....


 
ANB ©   (2005-12-05 16:42) [36]


> Daria   (05.12.05 16:33) [35]

БД то какая ?


 
Daria   (2005-12-05 16:54) [37]

в смысле какая?


 
ANB ©   (2005-12-05 16:58) [38]


> Daria   (05.12.05 16:54) [37]

Тип базы данных, в которой будет лежать таблица. С какими БД работать умеешь ?


 
Daria   (2005-12-05 17:00) [39]

если я правильно поняла вопрос, то до этого делала все в paradox. а так вообще с Fox работала я раньше, и что тут в дельфях творится, понимаю с трудом....


 
ANB ©   (2005-12-05 17:04) [40]


> Daria   (05.12.05 17:00) [39]

Дамс. Тут 2 варианта :
1. Заказать готовую программу. Только грамотно выбрать БД. Я бы оракл посоветовал. [:)]
2. Купить книжку и сначала почитать, как в делфи с БД работать. Сложного ничего нет, но тут все не запостишь. Пока читаешь - реализуй первые 3 пункта.


 
Daria   (2005-12-05 17:13) [41]

да й меня лежит здоровый толмуд Архангельского......


 
ANB ©   (2005-12-05 17:26) [42]


> Daria   (05.12.05 17:13) [41]
> да й меня лежит здоровый толмуд Архангельского......

Архангельский, конечно, не фонтан, но общее предстваление поимеешь.
Завтречка в аську мою заходи - помогу, чем с могу. Моя аська :
2-8 - тире - 534 - (02) - 44


 
Плохиш ©   (2005-12-05 17:27) [43]


> да й меня лежит здоровый толмуд Архангельского

Попрошу гусаров в эту ветку не заходить!


 
Daria   (2005-12-05 17:28) [44]

чего???? что за номер???


 
Плохиш ©   (2005-12-05 17:31) [45]


> Daria   (05.12.05 17:28) [44]

Девушка, Вас ANB в аське ждёт.
А Архангельский здесь самый почитаемый автор ;-)


 
Daria   (2005-12-05 17:36) [46]

молодые люди, ну не всем же быть такими профи в дельфи как вы. поэтому чем издеваться, лучше научите....


 
Плохиш ©   (2005-12-05 17:41) [47]


> Daria   (05.12.05 17:36) [46]

Девушка над Вами никто пока не издевается. А ANB хочет помочь и проиглашает пообщаться с помощью программы ICQ.


 
ANB ©   (2005-12-05 17:49) [48]


> Daria   (05.12.05 17:36) [46]

Из номера нужно убрать все не цифры. Это меня уже роботы задолбали.


 
Daria   (2005-12-05 18:02) [49]

ясно. вот только аська пишет, что такой номер не зарегистрирован


 
Daria   (2005-12-05 18:03) [50]

Плохиш, я безмерно благодарна ANB. :) правда!


 
аматор ©   (2005-12-05 22:07) [51]

Привет...
Это, кажись, csv файлик. Ну и в чем проблема, ищем компоненты, компилим, и работаем. Такие компоненты есть в проэкте джедаев (http://delphi-jedi.org/) и на www.torry.net


 
sniknik ©   (2005-12-05 23:14) [52]

делается просто
подключаемся через ADO - jet к исаму Text

строка подключения
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties=Text;Persist Security Info=False

выполняем запрос
SELECT * INTO Table1#db IN "D:\" "Paradox 4.x;" FROM Table1#Txt

все. получаем желаемый ".db" файл.

в каталоге с текстовым файлом должен лежать файл описатель cvs
имя
schema.ini
содержание по формату, пример для разделителя ^
[Table1.Txt]
ColNameHeader=True
CharacterSet=866
Format=Delimited(^)
Col1=ID Integer
Col2=Bol Bit
Col3=Name Char Width 30

подробный разбор формата в хелпе JETSQL40.CHM, хелп у тебя же на компе, если пользуешся продуктами мелкософта.

p.s. в качестве совета. после того как получили свой любымый парадокс... стираем его нафик, и начинаем пользоваться(учится) нормальными базами данных.


 
Daria   (2005-12-06 09:46) [53]

sniknik, огромное спасибо!!!!

вот только опять есть вопрос. он с меня для подключения требует какой-то пароль....


 
ANB ©   (2005-12-06 10:18) [54]


> Daria   (06.12.05 09:46) [53]

Запости свою аську. Только попорти номер, а то спамеры замучают.


 
alex_*** ©   (2005-12-06 10:19) [55]

ADOConnection1.LoginPromt := false;


 
Daria   (2005-12-06 10:19) [56]

ANB, пусть хоть кто-то помучает кроме начальника :)

258922802


 
alex_*** ©   (2005-12-06 10:30) [57]

кстати строки удобно парсить через ExtractStrings


 
msguns ©   (2005-12-06 11:04) [58]

Читал и рыдал ;((
Лавстори, блин !!!

ЗЫ.И грызут меня черви зависти

ЗЗЫ. Вот так всю жизнь: стОит симпатичной девушке зарулить с вопросом, как все всё кидают и давай вьюнами виться вокруг юбчонки.


 
msguns ©   (2005-12-06 11:06) [59]

Кстати, Дарьюшка, учти: тут в основном все женатые. Причем, как правило: чем грамотнее, тем женатистее.
Смотри !,- поматросят и бросят


 
Sergey13 ©   (2005-12-06 11:10) [60]

2 [59] msguns ©   (06.12.05 11:06)
Да ладно тебе брюзжать то, завистник. Женатость в этом деле не помеха (это я о помощи в программировании, если кто чего не того подумал). 8-)


 
Daria   (2005-12-06 11:22) [61]

msguns, я учту по поводу женатости :)


 
alex_*** ©   (2005-12-06 12:06) [62]

с программой-то разобрались?


 
Daria   (2005-12-06 12:14) [63]

пока нет


 
WondeRu ©   (2005-12-06 12:26) [64]

Оффтоп, но "в тему" ;)
Анечка, 05.12.2005 11:43 :
Игорь... мне нужна БД в Делфи...
WondeRu, 05.12.2005 11:43 :
Ща глянем, что в инете можно накопать
WondeRu, 05.12.2005 11:43 :
в принципе дома у меня книга есть
WondeRu, 05.12.2005 11:44 :
у тебя как с аглицким?
Анечка, 05.12.2005 11:45 :
не очень...
WondeRu, 05.12.2005 11:46 :
получила письмо?
Анечка, 05.12.2005 11:47 :
нет... какое?
WondeRu, 05.12.2005 11:47 :
еще раз отправил...
WondeRu, 05.12.2005 11:47 :
там книжка на русском....
WondeRu, 05.12.2005 11:48 :
пароль к архиву "1"
Анечка, 05.12.2005 11:48 :
там есть объяснения - как построить примитивную БД?
WondeRu, 05.12.2005 11:48 :
фиг знает...)))
WondeRu, 05.12.2005 11:48 :
вроде бы
Анечка, 05.12.2005 11:50 :
получила...
WondeRu, 05.12.2005 11:56 :
ну как?
WondeRu, 05.12.2005 11:57 :
понятно хоть что-нить?
Анечка, 05.12.2005 11:57 :
я не открывала...
Анечка, 05.12.2005 11:58 :
я в выходные пыталась вспомнить, как Делфи работает... прикольно...
WondeRu, 05.12.2005 11:59 :
прикольно вспоминалось? ;)
Анечка, 05.12.2005 12:05 :
дааа... с трудом....
……/.тут разговор про то чья бабушка лучше готовит пироги./
WondeRu, 05.12.2005 15:28 :
может поможет http://www.sql.ru
Анечка, 05.12.2005 15:56 :
Можешь дать практические советы? ;-)
WondeRu, 05.12.2005 15:57 :
по массажу?
Анечка, 05.12.2005 15:57 :
ха-ха! ))
Анечка, 05.12.2005 16:22 :
ты мне поможешь? плиизз...
WondeRu, 05.12.2005 16:23 :
как?
Анечка, 05.12.2005 16:23 :
подскажи... как создать БД...
WondeRu, 05.12.2005 16:25 :
где создать?
Анечка, 05.12.2005 16:26 :
смотри... мне нужна простейшая БД...
Анечка, 05.12.2005 16:26 :
сещ БД со студентами... + оценки по предметам
Анечка, 05.12.2005 16:26 :
необходимо отобрать тех, кто учится на пятерки... четверки и т.д.
WondeRu, 05.12.2005 16:26 :
в аксцессе можно создать и подрубить к делфи
Анечка, 05.12.2005 16:27 :
надо чтоб сразу в Делфи...
Анечка, 05.12.2005 16:27 :
это что-то типа курсовой...
WondeRu, 05.12.2005 16:27 :
ты издеваешься?
WondeRu, 05.12.2005 16:28 :
нельзя!
Анечка, 05.12.2005 16:28 :
неее...
Анечка, 05.12.2005 16:28 :
можно!
Анечка, 05.12.2005 16:28 :
почему нельзя-то?
WondeRu, 05.12.2005 16:28 :
тогда это не ко мне
Анечка, 05.12.2005 16:29 :
почему?... я чего-то не понимаю? )
Анечка, 05.12.2005 16:29 :
ты же программист!
WondeRu, 05.12.2005 16:30 :
>> 05.12.2005 16:26:58 WondeRu wrote:
>> в аксцессе можно создать и подрубить к делфи
Анечка, 05.12.2005 16:39 :
Ладно... хорошо... я спрошу у кого-нибудь еще...


 
Плохиш ©   (2005-12-06 12:31) [65]


> WondeRu ©   (06.12.05 12:26) [64]

Ты - не хороший человек, взял и рассказал всё продолжение серии.


 
Daria   (2005-12-06 12:32) [66]

как примитивную БД сделать это я знаю..... вот только всего остального не знаю...


 
msguns ©   (2005-12-06 12:44) [67]

>Daria  

Самое простое и быстрое решение подсказал sniknik ©   (05.12.05 23:14) [52]

Для реализации надо из палитры компонент (закладка ADO) "бросить" на форму TADOConnection, TADOQuery.
В первом, сделав на нем даблклик, настроить провайдера так, как указано в [52],
во втором в св-ве SQL набрать текст запроса оттуда же, в св-ве Connection указать ADOConnection1

Затем подготовить ini-файл по образцу там же.

По кнопке на форме :
а) открыть соединение (TADOConnection), чтобы не клянчило юзернэйм и пасворд в св-ве TADOConnection.Loginprompt указать false
б) дать Open TADOQuery
c) дать Close TADOQuery

Десктопом (DataBase DeskTop - входит в поставку делфей) просмотреть результат. Если что-то не так, подшаманить ini-файл, убить таблицу (типа отправить в корзину), запустить приложение и нажать кнопку еще раз.


 
Daria   (2005-12-06 13:09) [68]

msguns, спасибо! все ясно. вот только куда он мою таблицу записывает? где в десктопе искать?


 
Daria   (2005-12-06 13:15) [69]

и еще где
б) дать Open TADOQuery
c) дать Close TADOQuery


 
msguns ©   (2005-12-06 13:35) [70]

Если не указан путь (а он в запросе Sniknik не указан), то таблица создасться в текущем каталоге (откуда запущена программа, если не указан рабочий).

procedure TForm1.Button1Click(Sender: TObject);
begin
 ADOConnection1.Open;
 ADOQuery1.Open;
 ADOQuery1.Close;
 ADOConnection1.Close;
 ShowMessage("Таблица создана. Посмотри ее DBD в "+GetCurrentDir);
end;


 
alex_*** ©   (2005-12-06 13:35) [71]

в тексте программы. Open - перед началом работы, Close  - в конце


 
Daria   (2005-12-06 13:43) [72]

а обязательно должно бытьтак:

строка подключения
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\;Extended Properties=Text;Persist Security Info=False
просто у меня нет диска D. что должно быть в Data source?

выполняем запрос
SELECT * INTO Table1#db IN "D:\" "Paradox 4.x;" FROM Table1#Txt

и что это такое: Table1#db IN "D:\" "Paradox 4.x;" FROM Table1#Txt??


 
WondeRu ©   (2005-12-06 13:53) [73]

Daria   (06.12.05 13:43) [72]
просто у меня нет диска D.

купи ;)


 
Плохиш ©   (2005-12-06 13:54) [74]

Вся ветка развод :-(


 
msguns ©   (2005-12-06 13:58) [75]

>Daria   (06.12.05 13:43) [72]

Даааа,... Дашуня...  Все гораздо запущеннее... ;(
Ты "кинула" на форму TADOConnection ?
Если нет, то кинь.
Дважды щелкни на "квадратике" с нарисованным ПК и плакатиком "ADO" над ним. Появится формочка Source of Connection с двумя радиобатонами.
Кликни по нижнему и нажми кнопку "Build". В появившемся окне увидишь пэджконтрол с 4-мя закладками.
На первой (Provider) выбери Microsoft.Jet.OLEDB.4.0 Provider
На второй (Connection) нажми кнопку выбора файла (п.1) и выбери свой текстовик в открывшемся окне диалога (для чего убери фильтр типа файлов)


 
msguns ©   (2005-12-06 14:00) [76]

>Плохиш ©   (06.12.05 13:54) [74]
>Вся ветка развод :-(

Вот блин, об этом я не подумал..
Вот что могут сделать симпатишные деучёнки - савсэм голову патэрял ;(


 
WondeRu ©   (2005-12-06 14:08) [77]

msguns ©   (06.12.05 14:00) [76]
симпатишные деучёнки

точно симпатичные?

ЗЫ. Пора по потрепацца перетаскивать


 
alex_*** ©   (2005-12-06 14:20) [78]

ANB, судя по всему, не помог по аське. c:\Program Files\Borland\Delphi7\Demos\Db\ - примеры по работе с БД


 
Daria   (2005-12-06 14:41) [79]

ой, блин, он мне пишет, "нераспознаваемый формат базы данных" когда я в connection свой текстовый файл указываю....


 
Daria   (2005-12-06 14:47) [80]

а что писать вместо SELECT * INTO Table1#db IN "D:\" "Paradox 4.x;" FROM Table1#Txt ????


 
alex_*** ©   (2005-12-07 10:32) [81]

напиши "Hello world"


 
ANB ©   (2005-12-07 12:40) [82]


> alex_*** ©   (06.12.05 14:20) [78]
> ANB, судя по всему, не помог по аське. c:\Program Files\Borland\Delphi7\Demos\Db\
> - примеры по работе с БД

Ей и БД то не нужно. Нужно файл распилить на несколько, в зависимости от содержимого полей строк.


 
Engel   (2005-12-07 19:19) [83]

unit t;

interface

uses Classes, SysUtils;

type
T0Rec=packed record
 LineCode      : char;
 ENRD        : array [0..15] of char;
 DocName       : array [0..29] of char;
 PlDocNum      : array [0..2] of char;
 LineTerminator   : array [0..1] of byte;
end;

 T0Imp=Class
 private
 F0Recs: TList;
   FKBKList: TStringList;
   FKBKCount: Integer;

   function Get(Index: Integer): T0Rec;
   procedure put(Index: Integer; const Value: T0Rec);
   function GetCount: Integer;
   function IsKBKPresent (KBK: String): Boolean;
   function GetKBKList: Integer;
 public
  constructor Create;
  destructor Free;
  procedure Add (Value: T0Rec);
  function LoadData (FileName: String): Integer;
   function FindENRD (ENRD: String): Integer;
  property Items[Index: Integer]: T0Rec read Get write put; default;
  property Count: Integer read GetCount;
   property KBKList: TStringList read FKBKList;
   property KBKCount: Integer read FKBKCount;
 end;

implementation

uses
 Dialogs;

{ T0Imp }

procedure T0Imp.Add(Value: T0Rec);
var
Tmp: ^T0Rec;
begin
New (Tmp);
Tmp^:=Value;
F0Recs.Add(Tmp);
end;

constructor T0Imp.Create;
begin
inherited Create;
F0Recs:=TList.Create;
FKBKList:=TStringList.Create;
FKBKCount:=0;
end;

destructor T0Imp.Free;
begin
F0Recs.Clear;
F0Recs.Free;
FKBKList.Clear;
FKBKList.Free;
inherited Destroy;
end;

function T0Imp.Get(Index: Integer): T0Rec;
begin
Result:=T0Rec(F0Recs[Index]^);
end;

function T0Imp.LoadData(FileName: String): Integer;
var
F: TFileStream;
Buff: T0Rec;
begin
Try
Try
 F:=TFileStream.Create(FileName, fmOpenRead);
except
  MessageDlg("Ошибка открытия файла "+FileName, mtError, [mbOK], 0);
   Result:=-1;
 Exit;
end;
While (F.Read(Buff, SizeOf(Buff))=SizeOf(Buff)) do
 Begin
  If (Buff.LineCode="1") or (Buff.LineCode="2") or (Buff.LineCode="3") Then
    Add(Buff);
  end;
Try
 FKBKCount:=GetKBKList;
except
  MessageDlg("Ошибка извлечения списка КБК из "+FileName, mtError, [mbOK], 0);
 Exit;
end;
Finally
F.Free;
Result:=F0Recs.Count;
end;
end;

procedure T0Imp.put(Index: Integer; const Value: T0Rec);
var
Tmp: ^T0Rec;
begin
New (Tmp);
Tmp^:=Value;
F0Recs[Index]:=Tmp;
end;

примерно так...разбираем построчно, а потом в базу.


 
alex_*** ©   (2005-12-07 19:35) [84]

жесть. кондово. и это предназначено для бедной Даши?
а из каких соображений выбрал такие размеры массивов? а если получим DocName.Length() > 29? Без Pchar и операций с указателями нельзя было? и комменты можно было б проставить.


 
alex_*** ©   (2005-12-07 19:37) [85]

и что-то я ни одного Dispose не вижу.


 
аматор ©   (2005-12-07 22:18) [86]

С диском проблема!!!
Проще будет в лине. Там дисков нет.
А текстовой файлик и бде открывает. И вообще обязательно текстовой файлик, может краше дбф иль подобное...(тем более: "ну файла пока нету..... но будет типа следующего:" зачем мучить тхт)...


 
ANB ©   (2005-12-08 09:16) [87]


> Engel   (07.12.05 19:19) [83]

У нее формат CSV(плавающие размеры полей с разделителями), а ты дал пример для фиксированного размера записи. Впрочем, я не поленился, убил вчера 15 минут и выслал ей работающий код.

ЗЫ. А девчонка ничего, прикольная, только феминистка.


 
msguns ©   (2005-12-08 09:23) [88]

>Engel   (07.12.05 19:19) [83]

Спрячь и никому не показывай.

>ANB ©   (08.12.05 09:16) [87]
>А девчонка ничего, прикольная, только феминистка.

Я вот кое-кому-то расскажу-то


 
sniknik ©   (2005-12-08 11:05) [89]

> ЗЫ. А девчонка ничего, прикольная, только феминистка.
бороду сбрить, наколки свести, и ничего будет .... сипатишная. (и вовсе не феминистка, а нормальный)


 
Daria   (2005-12-08 11:23) [90]

приветы всем!
а у меня опять проблем.
я тут все-таки поняла, что и базами ничего не помню....
поэтому, хелп!!!
как найти в .db строку, в первом поле которой например "ппп"????


 
Плохиш ©   (2005-12-08 11:39) [91]


> Daria   (08.12.05 11:23) [90]

Может ты всё-таки сходишь в магазин и купишь поллитра? ... ой блин, об чём это я? книжку каку-нибуть?


 
ANB ©   (2005-12-09 10:38) [92]


> sniknik ©   (08.12.05 11:05) [89]

Ошень даже может быть.


 
Sergey13 ©   (2005-12-09 10:54) [93]

2[92] ANB ©   (09.12.05 10:38)
> Ошень даже может быть.
А чего шепелявить то начал. Уже повстречался? 8-)


 
ANB ©   (2005-12-09 11:32) [94]


> Sergey13 ©   (09.12.05 10:54) [93]

Не, еще нет. Да и не стремлюсь - вдруг правда девченкой окажется. А у меня жена ревнивая.


 
Daria   (2005-12-09 11:57) [95]

сейчас вас всех прямо-таки удивлю....
я действительно девушка


 
Sergey13 ©   (2005-12-09 12:02) [96]

2[95] Daria   (09.12.05 11:57)
>я действительно девушка
Это твои трудности. 8-)


 
Плохиш ©   (2005-12-09 12:22) [97]


> Daria   (09.12.05 11:57) [95]
> я действительно девушка

"У каждого свои недостатки" (c) "В джазе только девушки" :-)


 
Daria   (2005-12-09 12:31) [98]

:) ну спасибо на добром слове, блин!



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

Форум: "Базы";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.7 MB
Время: 0.013 c
4-1132740004
ПЛОВ
2005-11-23 13:00
2006.02.05
Неработает AdjustWindowRect


1-1136042260
deamon_t
2005-12-31 18:17
2006.02.05
где TBitmap хранит массив с картинкой


3-1134117590
Behemoth
2005-12-09 11:39
2006.02.05
Не могу определиться с RAID...


15-1137094072
Gero
2006-01-12 22:27
2006.02.05
Рисование фигур с антиалиасингом


1-1136332293
JazY
2006-01-04 02:51
2006.02.05
Как отобразить Excel файл в своей программе?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский