Проверка на пустое значение поля DBF #526010


#0 by admin1s
Подскажите, не получается проверить на пустое значение поле DBF файла, и при нахождении пустого значения-удалить строку. Проверялись разные поля на равенство = ''. Поле имеет тип ДАТА. первый код не работает, если стоит равенство (= ''), когда ставишь неравенство (<> ''), работает. Что не так? Спасибо заранее Код 1: (не работает как надо) Код 2. При не равенстве пустому значению, выдает данные
#1 by fly7
Строка(ДБФ.Date_pricr) = "" или возможно Строка(ДБФ.Date_pricr) = "  .  .    " не помню точно
#2 by Злобный Йожег
#3 by VasilyKushnir
А если поля Поле1 нет? (смайлик подмигивания )
#4 by Злобный Йожег
тады пусть переводит мне бабки за то, чтобы появилось...
#5 by VasilyKushnir
+100 :-)))))
#6 by sidalexsandr
1) Может в поле есть пробелы. Попробуй: Если ПустоеЗначение(СокрЛП(ДБФ.Date_pricr)) = 1 Тогда 2)А ты не думаеш о том что удаляя строку ты можеш нарушить процесс выборки строк. Помойму нашел первую строку с пустым полем удалил и потом заново сначала стал читать файл.
#7 by admin1s
В строку и в число форматировал! не помогло! 1 Пробелы убирал - тоже не работает! 2 этот код вообще не сообщает о пустых значениях ((
#8 by andrewks
Если ДБФ.Date_pricr = ПолучитьПустоеЗначение("Дата") Тогда
#9 by Denizzz
посмотри что там в пустом значении Сообщить("/" + ДБФ.Date_pricr + "/");
#10 by admin1s
странно, но код ничего не выдал в сообщить!
#11 by andrewks
не верю! (c)
#12 by Denizzz
ничего не выдал или выдал "//" ?
#13 by Ork
Если поле "Date_pricr" имеет тип Дата - не нужно ничего никуда переводить. Достаточно такой проверки: ПустоеЗначение(ДБФ.Date_pricr)
#14 by admin1s
вообще пусто, то и странно!
#15 by KRV
а само поле какой тип?
#16 by andrewks
+1
#17 by Ork
+100500. Вот вот. И я о том же.
#18 by andrewks
развоТ
#19 by KRV
+ количество знаков в году? может ищешь не то? :))
#20 by KRV
неа.. Новый год был.. :))
#21 by 1Сергей
сейчас окажется что ДБФ-ка ваще не открыта
#22 by admin1s
Снова код привожу на суд форумчан, может чего пропустил, глаз типа замылился:
#23 by 1Сергей
дык... условие-то убери, если оно не срабатывает
#24 by andrewks
а так? как выглядят пустые значения?
#25 by KRV
семдесятьчетырнацатьиещедвараза: поле как записато?
#26 by Denizzz
Вынеси Сообщить из условия
#27 by Denizzz
если тип Int то проверять на 0 вроде... хотя хз)
#28 by admin1s
тип дата: ДД.ММ.ГГГГ
#29 by Ork
Дата в ДБФ вот так "ДД.ММ.ГГГГ" не выглядит.
#30 by andrewks
хде ответ на ?
#31 by admin1s
жду... идет обработка, там 183000 записей
#32 by Denizzz
и ни разу сообщение не выдало?!
#33 by admin1s
выдает даты списком: /01.01.72/  и пустые значения в конце: /  .  .  /
#34 by 1Сергей
скорее всего строчный тип
#35 by admin1s
Отойти надо на часок...
#36 by Denizzz
Если Строка(ДБФ.Date_pricr) = "  .  .  " Тогда
#37 by andrewks
#38 by admin1s
открывал FieldWin выдвал именно так. ДД.ММ.ГГГГ почему показывает как ДД.ММ.ГГ надо проверить на Тип, может правда строка...
#39 by 1Сергей
+
#40 by Denizzz
ога, так наверняка)
#41 by andrewks
#42 by Ork
Пилят. Неужели так тяжело посмотреть тип поля?
#43 by andrewks
ога. лучче мистян напрячь :-)
#44 by KRV
(задумавшись).. не поможет..
#45 by admin1s
не работает
#46 by Denizzz
видимо таким образом автор и пытается вычислить тип поля)
#47 by admin1s
тип дата, как я и писал
#48 by KRV
количество знаков в годе?! у тебя вылетает за возможный период!
#49 by smaharbA
а чо там про 1899 год, к дбф это не относится ?
#50 by Ork
Тогда проверка на пустое значение - наше фсе.
#51 by smaharbA
в полях дбф всегда 8 знаков (типа дата)
#52 by KRV
ога. а потом налетаем на дату, которая за началом рабочего столетия :))
#53 by KRV
не спорю. в текст приходилось писать взрослых :))
#54 by orefkov
Непосредственно в файле лежат 8 символов: YYYYMMDD, без всяких точек. А уж как 1С преобразует поле даты, в котором 8 пробелов - хз. Можно попробовать так:
#55 by Denizzz
Или уж условие если меньше какой-нибудь определенной старой даты
#56 by admin1s
Используя функцию ТипЗначения Возвращает - 3, т.е. ДАТА, как и писалось впрочем.
#57 by admin1s
DBF смотрелся двумя способами FieldWin - ДД.ММ.ГГГГ, FoxPro используя Data Session Windows показывает в DBF дату как ДД.ММ.ГГГГ. Файл вообще создан в FoxPro 8 или 9 версии...
#58 by viktor_vv
Так ты посмотри не как показывает, а в свойствах какой тип пишет.
#59 by medved_kot
#60 by Песец
Если ПустоеЗначение(Дата(ДБФ.Date_pricr)) = 1 тогда //пустая дата
#61 by NS
Если Дата(ДБФ.Date_pricr)<'01.01.1900' Тогда
#62 by admin1s
не то!
#63 by admin1s
что это даст, если дата в поле будет меньше указаной даты? ничего! тк формат у вашей даты ГГГГ а у меня ГГ, то выдает просто все даты. Не работает!
#64 by Cthulhu
#65 by admin1s
не сработало!
#66 by admin1s
не сработало!
#67 by NS
Ты издеваешься? Или на полном серьезе? Уже миллион раз мог сделать сообщить(строка(ДБФ.Date_pricr)), и проверять на полученную строку.
#68 by NS
А вообще, если (лев(сокрлп(ДБФ.Date_pricr))>="0")и(лев(сокрлп(ДБФ.Date_pricr))<="9") тогда не пустая дата.
#69 by Torquader
Пустая дата может быть в виде пробелов, а может быть датой вида 00.00.0000 (то есть все нули). Как записала программа, которая создаёт DBF-файл, знает только она сама. Если открыть DBF-файл в Far-е по F3 и посмотреть, что там, то можно быстро понять, как обозначается пустая дата.
#70 by NS
Простой сообщить в 1С покажет в каком виде записана дата. И это в этой ветке есть.
#71 by Torquader
Не факт, так как драйвер DBF будет транслировать дату во что-то более похожее на дату (он определяет тип по заголовку DBF-файла). Если то, что найдено в поле, в дату преобразовать нельзя, то 1С предполагает пустую дату.
#72 by NS
Не понял о чем вы говорите. Строка(ДБФ.Date) дает то что ему нужно проверять.
#73 by admin1s
ни в коем разе, а то что выдает функция собщить я уже описывал в а именно: ДД.ММ.ГГ или - 12.08.48
#74 by admin1s
При проверке в таком формате: '  .  .  ' и в таком '..' и в таком '' - ничего не дает, конвертация в Дата, Число, Строка тоже. Формат даты: ДД.ММ.ГГ привожу код которы использовал при проверке поля Date_pricr (ДАТА):
#75 by NS
Круто, тратить три дня на такую фигню. Точно рабочий варинат в Еще варианты - И один вопрос - какого ... вы все проверки делаете в одинарных ковычках? Вам миллион раз написали - привести к строке, и соотвественно сравнивать с строкой! Строка заключается в двойные кавычки!!!
#76 by NS
имелось в виду.
#77 by Cthulhu
: ну, у меня работает причем не в одном месте. дай тогда ДБФ то посмотреть.
#78 by Torquader
Вообще, проще всего тогда дату преобразовать в строку, проверить, чтобы строка была не пустой и преобразовать строку обратно в дату.
#79 by G-Re
Удивительно, сколько потрачено усилий на решение этого достаточно простого вопроса. Предложение Автору: Вырежь из ДБФ десяток записей, среди которых есть "пустая дата" и отдай сообществу для рассмотрения, и не надо будет гадать что, где, когда. Ответы  и решения получишь через 5 минут. (Они уже, правда,  и так есть, но получишь оптимальное в твоем случае).
#80 by NS
Да он уже миллион раз её в сообщить вывел.
#81 by Cthulhu
: да говорили уже - ему похрен.
#82 by andrewks
вы всё еще кипятите? тогда мы идём к вам! (с)
#83 by medved_kot
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С