Форум: "Базы";
Текущий архив: 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 пункта.
Страницы: 1 2 3 вся ветка
Форум: "Базы";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.013 c