Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2007, 11:19   #1
lord
 
Регистрация: 12.02.2007
Сообщений: 6
По умолчанию разложить поле MEMО в БД по формату

Всем привет! Подскажите!!!
Есть поле MEMO в БД Paradox с таким содержимым:
$100000, 3-комнатная, 69,2(48,8)11, кирп., тел.сам., с/у разд., 2 балкона застекл., Улица1 - уг.Улицы 2, без ремонта, продаю. тел1, тел2

Мне нужно его перезаписать в другую таблицу разбив по отдельным полям:

цена - 100000$.
квартиря - 3х-комнатная
квадратура - ..... и т.д.

и самое страшное для меня это то, что эти записи в МЕМО не всегда одинаковые. Т.е. цена может находится не на первом месте.

заранее спасибо! Если не сможете помочь, то помогите убить моего начальника (шутка)
lord вне форума Ответить с цитированием
Старый 12.02.2007, 11:41   #2
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

кто так поизвращался ?

если бы сразу сделали по уму..
так теперь, скорее всего уйдет больше времени на парсер и сам процесс
перегонки.

к качестве разделителя нужно использовать сочетание ', '
[в диалоговом режиме]
разделять каждую строку на значения в 11 Edit-ах,
и спрашивать <OK>, <Cancel>
++ сделать переброску значений м/у Edit-ами ..
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 12.02.2007, 14:56   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ерунда, ничего тут сложного нет.
Каждую запись (строку), используя существующий разделитель (запятая плюс пробел), разбиваем на N-ное количество подстрок и (совершенно справедливо) разносим по эдитам, но...
Кто мешает при разноске применить чуть-чуть интеллектуальности в программе?
То есть:
- цена практически однозначно определяется по наличию в подстроке денежного символа;
- количество комнат - по вхождению подстроки "комнат";
- тип дома - по вхождению одной из подстрок "кирп", "панел", "блоч";
Ну, и так далее. Что тут сложного? В результате получим почти 100% правильное распределение данных по соответствующим эдитам.
Естественно, подтверждение желательно, и при большом объеме базы это займет некоторое время. Но иногда нужно и ручками поработать, не все ж компьютер за нас пахать будет...
mihali4 вне форума Ответить с цитированием
Старый 12.02.2007, 17:55   #4
lord
 
Регистрация: 12.02.2007
Сообщений: 6
По умолчанию

Цитата:
Сообщение от Virtson Посмотреть сообщение
кто так поизвращался ?
ни я уж точно...прога была написана на каком-то старом языке (почти на монускриптах) . Все данные она выдает только в ТХТ-ых файлах.
от меня требуют что бы эти данные работали в современных прогах.
теперь по существу вопроса:
спасибо за советы, НО...
потверждения Ок не пройдет там столько записей мне до пенсии хватит Ок нажимать.
второе ... разнос по едитам тоже как-то не то. Понимаете там характиристики квартир могут быть разными где-то есть квадратура, где-то нет. Гто-то добавляются еще что-нибудь.
Вот такие пироги.
Может кто-то сталкивался с такой проблемой...поделитесь очень надо.
lord вне форума Ответить с цитированием
Старый 12.02.2007, 19:57   #5
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

мда, т.е. в МЕМО почти не известно что, и это надо систематизировать? Это уже сложно...
zetrix вне форума Ответить с цитированием
Старый 12.02.2007, 21:51   #6
lord
 
Регистрация: 12.02.2007
Сообщений: 6
По умолчанию

да!
поэтому обратился!
lord вне форума Ответить с цитированием
Старый 13.02.2007, 01:03   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

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

Последний раз редактировалось mihali4; 13.02.2007 в 01:06.
mihali4 вне форума Ответить с цитированием
Старый 13.02.2007, 18:06   #8
lord
 
Регистрация: 12.02.2007
Сообщений: 6
По умолчанию

А если использовать SQL-запрос. Там есть функция которая ищет слова по совпадению последовательности букв и символов? Например: С/у_р - это санузел раздельный. Определили и записали в таблицу. Что скажете?
lord вне форума Ответить с цитированием
Старый 13.02.2007, 18:23   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Что скажете?
А вы не теоретизируйте, а попытайтесь написать такой запрос с учетом поставленной задачи - резко упростится понимание бредовости этого предложения...
mihali4 вне форума Ответить с цитированием
Старый 13.02.2007, 23:19   #10
Speeker
Форумчанин
 
Аватар для Speeker
 
Регистрация: 01.12.2006
Сообщений: 241
По умолчанию

Боюсь на написание проги уйдет больше времени чем на перенесение ручками.
Можно попробовать написать прогу, которая будет построчно считывать мемо и спрашивать пользователя в какую колонку его записать...
Програмисты - единственные люди, которым платят за исправления их же ошибок
Speeker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разложить на сумму наминалов Иллидан Паскаль, Turbo Pascal, PascalABC.NET 1 17.05.2008 15:37
Поле в таблице s.mag БД в Delphi 7 15.05.2008 18:23
Поле Luciferium БД в Delphi 3 26.07.2007 14:23
Добавить поле yulia БД в Delphi 2 12.05.2007 14:12