Главная страница
    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 пункта.



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

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

Наверх





Память: 0.54 MB
Время: 0.011 c
15-1137081876
Piter
2006-01-12 19:04
2006.02.05
Анекдоты как средство массовой информации


2-1136901585
M@X_1
2006-01-10 16:59
2006.02.05
Циклический опрос COM порта


2-1137650850
Nan
2006-01-19 09:07
2006.02.05
Авто инициализация переменной целого типа


2-1137754516
Asker
2006-01-20 13:55
2006.02.05
Запаковать файлы RARом


2-1137704746
STK
2006-01-20 00:05
2006.02.05
Работа с расшаренной папкой в сети, поиск





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский