Help me, please!

кодеров на сайте не мало, и каждый в случае чего может найти ответ у великого гугла, но бывают вот такие моменты:
есть примерное условие, оптимизировал для проверки:
for n := 1 to nr do
      begin
        if (StrToDate(File.Line[n].Value) = dt1)
            or (StrToDate(File.Line[n].Value) > dt1) then
                begin
                edit1.text:= File.Line[n].Value;
                break;
                end;
      end;
dt1, берутся из DateTimePicker1
на выходе обрабатывает только условие "если больше",
если же у пикера указать дату на день раньше, то он коректно отобразит дату нужную
тоесть, к примеру в файле есть 3 строки с датами:
19.09.2010
24.09.2010
29.09.2010
при указании в datetimepicker'e дату 24.09.2010, выведится нашедшаяся дата "29.09.2010",
если же в пикере укажу 23.09.2010, то выведится "24.09.2010"
неврубаюсь в чем проблема %) вроде не первая процедура, да этого многократно использовалась проверка "если дата = дате то"
и коректно работало.
от того или я туплю потому что три часа ночи, или делфя гонит! ХЭЭЭЭЭЛЛПЪ!

Поделиться
+1
Алексей

A-lex29 сентября 2010 3:01

вот так всегда, стоит только задать вопрос как по ходу задачи находишь решение Confused
привел условие к такому виду
for n := 1 to nr do
      begin
        if (File.Line[n].Value = DateToStr(dt1))
            or (File.Line[n].Value > DateToStr(dt1) then
                begin
                edit1.text:= File.Line[n].Value;
                break;
                end;
      end;
заработало коректней, в чем прикол не врубаюсь, даже если он не мог найти соответсвие дат, то он же находил больше она или меньше %) парадокс

НЛО борт №

НЛО борт №29 сентября 2010 8:08

Мне вот интересно, разве

A=B or A>B  не то же? что и  A>=B

Svr

Sevarior29 сентября 2010 9:21

Dandelion

Мне вот интересно, разве

A=B or A>B  не то же? что и  A>=B

мне кажется, вот ответ на твой вопрос

 

A-lex
...туплю потому что три часа ночи...

Алексей

A-lex29 сентября 2010 11:02

там в оригинале немного другое выражение было, а не только A и B,
а вот почему StrToDate('29.09.2010') = Дата не работает, а '29.09.2010' = DateToStr(Дата) работает?
неужто формат хранения в переменной даты совсем какойто непонятный что он не может друг другу сответствовать? Но тогда почему работает обратная конвертация?

nola

nola29 сентября 2010 12:07

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

LordLeo

LordLeo29 сентября 2010 12:16

может есть нюансы с остальной частью даты часы:минуты:секунды. 

nola

nola29 сентября 2010 12:34

Тип дата-время определяется стандартным идентификатором TDateTime и предназначен для одновременного хранения и даты, и времени. Во внутреннем представлении он занимает 8 байт и подобно currency представляет собой вещественное число с фиксированной дробной частью: в целой части числа хранится дата, в дробной - время. Дата определяется как количество суток, прошедших с 30 декабря 1899 года, а время - как часть суток, прошедших с 0 часов, так что значение 36444,837 соответствует дате 11.10.1999 и времени 20:05. Количество суток может быть и отрицательным, однако значения меньшие -693594 (соответствует дате 00.00.0000 от Рождества Христова) игнорируются функциями преобразования даты к строковому типу.

Над данными типа TDateTime определены те же операции, что и над вещественными числами, а в выражениях этого типа могут участвовать константы и переменные целого и вещественного типов.

Алексей

A-lex29 сентября 2010 12:43

правильно же я понимаю
StrToDate('11.10.1999') = 36444 (берем целые части)
значит если в датетаймпикере выбрать эту дату, то переменная date = 36444
но почему при проверке он находит что дата '12.10.1999' (тоесть =36445) > чем date (= 36444) , а '11.10.1999' (то есть = 36444) для него не равно date (= 36444)
еще раз повторюсь, может я тупил в три ночи то,
сейчас еще раз на пустом проекте
может действительно дело в остатке тоесть чч.мм.сс и в дтпикере он отмечает на данный момент, тогда полюбому надо конвертить дату в стринг или форматить её без hh:mm:ss %)

Svr

Sevarior29 сентября 2010 12:45

на форуме нашёл...мож помогёт тебе функция

 ....

edit1.text := formatdatetime('dd', (DTPicker1.Date));
edit2.text := formatdatetime('mm', (DTPicker1.Date));
edit3.text := formatdatetime('yyyy', (DTPicker1.Date));

копайся... делфей установленных нет! в хелпе стопудов всё про это расписано! Wink

скорее всего дело в значении, которая функция возвращает

ЗЫ... чёто нету злых дядек программистов, которые придут и скажут что задача гамно, афтор ацтой ))))))

Sevarior
2010-09-29 12:48:26
Алексей

A-lex29 сентября 2010 12:49

Sevarior

на форуме нашёл...мож помогёт тебе функция

 ....

edit1.text := formatdatetime('dd', (DTPicker1.Date));
edit2.text := formatdatetime('mm', (DTPicker1.Date));
edit3.text := formatdatetime('yyyy', (DTPicker1.Date));

копайся... делфей установленных нет! в хелпе стопудов всё про это расписано! Wink

скорее всего дело в значении, которая функция возвращает


да, повидимому функция возвращает число,000, а в ДТП формат даты на момент выбора, то есть число, 346 потому и не равно,
а formatdatetime все равно возвращает строковую переменную, потому смысла в ней нет, я просто пока вопрос задавал, подумал, попробовал, конвертирую дату в строку, она выдает ту же строку в формате "dd.mm.yyyy" и сравнил построково

Алексей

A-lex 4 декабря 2011 1:35

господа, бида! Kill me
суть, есть dll (две dll) в ней создается поток (пока не известно, зависит ли от того что поток обращается к интернету, или вообще от того что какой-то поток создается), после закрытия приложения вылетает ошибка:
Инструкция по адресу "0хблабла" обратилась по адресу "0х0000000". Память не может быть "read". (и еще подобные ошибки только по другим адресам). Приложение при этом зависает и при закрытии окна с ошибкой оно бесконечно повторяется, до тех пор, пока не убьешь программу через диспетчер задач. 
если эту dll-ку не запускать (поток создается на момент создания формы), то программа завершается корректно.
except ошибку не ловит,
а в win7 еще что-то говорит про ntdll.dll %)
суть, я так понимаю в том, что память обращается туда, где она уже пустая и нужно просто просмотреть память на такие пустые участки (которые программа думает что не пустые) и удалить на них ссылки.
Кто что сможет сказать как обойти сею проблему? Или еще подсказать куда рыть? Часов 6 лопатил инет на пустую память, на утечки и т.п., но нечего подобного как это обойти не нашел, а уж тем более завязка dll и потока = ошибка при закрытии приложения.

Алексей

A-lex 5 декабря 2011 0:14

добавление
решил проверить теорию с потоками, закоментил строчки создания - запуска. Ошибка осталась.
по совету Soldier'а просмотрел все объекты которые возможно создаются в приложении из dll и в ней же убивается, но приложение думает что оно еще есть.
и таки да, нашел что в своем парсере XML я создаю объект типа TXMLDocument
код:


type
  TXMLFileParser = class
    private
      XMLFile: TXMLDocument;
...

создаю:

constructor TXMLFileParser.Create;
begin
    inherited;
    XMLFile:= TXMLDocument.Create(Application);
end;

убиваю:

destructor TXMLFileParser.Destroy;
begin
  XMLFile.Active:= FALSE;
  XMLFile.Free;
  inherited;
end;

незнаю верно ли и от этого ли косяк, щас буду пытаться создавать пустой проект что бы проверить, ибо в готовом откоментить не выйдет LOL
если я мыслю в верном направлении, как правильно убить созданный класс? Или наоборот правильно создать, что бы он юзался внутри dll-ки? Чот походу туплю и ответ на видном месте. Ouch

Алексей

A-lex 5 декабря 2011 1:39

кажется и не в этом причина,
скопировал проект, переименовал, закоментил все подключаемые модули,
оставил только главную форму, которая вызывается. Внутри формы вычистил все функции и процедуры. Но история та же :((( как отловить баг, если он возникает после закрытия приложения?
остальные то dll-ки работают, так же открывают формы, работают. закрываются, но ошибок не выдают %) глюк только у двоих, общего специфического что они делают, это создают поток в котором выполняется загрузка файлов из инета, и работают с XML-ками. Остальное всё как и в других библиотеках. А самый прикол, как я и писал выше, даже после комментирования всего кода, ошибка остается: загружаешь приложение, открываешь форму из dll, закрываешь форму. закрываешь приложение = ошибка...
в вин ХР пишет что память по такому-то адресу пуста, а в семерке вот такой отчетик:


Сигнатура проблемы:
  Имя события проблемы:    APPCRASH
  Имя приложения:    Project1.exe
  Версия приложения:    2.0.0.0
  Отметка времени приложения:    4edb3afa
  Имя модуля с ошибкой:    dllerror.dll
  Версия модуля с ошибкой:    0.0.0.0
  Отметка времени модуля с ошибкой:    4edbc953
  Код исключения:    c0000005
  Смещение исключения:    000059ce
  Версия ОС:    6.1.7600.2.0.0.256.1
  Код языка:    1049
  Дополнительные сведения 1:    4769
  Дополнительные сведения 2:    476944e53fbe4294025adbb9f1e8ca79
  Дополнительные сведения 3:    6816
  Дополнительные сведения 4:    681615d70995702c519200a827bc4ab0

пы.сы. раньше матюкалось на ntdll.dll, а после добавления ShareMem, стало показывать именно мою dll-ку в ошибке
бьюсь в припадке SOS

Алексей

A-lex 6 декабря 2011 14:06

апдейт:
на закрытие формы в dll ручками очистил:

код

Form.free;
Form:= nil;

в семерке ошибка исчезла. программа закрывается корректно после вызова и закрытия dll, а вот в сраной XP всё так же улетает в никуда Жалко, очень жалко...

Алексей

A-lex14 декабря 2011 21:57

если кто столкнется,
порывшись по коду, было решено на закрытие формы ручками вызвать деструктор собсвенноручно написанного xml-парсера, который очищал все используемые переменные типа XMLDocument, и который вроде как должен был вызываться на закрытие программы автоматически,
вот тут два варианта, или он не уничтожался автоматически,
или наоборот чудесным образом вызывался два раза %)
но суть в том, что очистив этот класс на закрытие окна dll-ки программа перестала матюкаться и закрывается без ошибок. А вот почему в семерке она перестала матюкатся на уничтожение формы, а в XP нет и пришлось еще класс чистить, для меня большая загадка :)))

Ренегат

o.k.23 января 2012 20:24

Не буду создавать новую тему для одного пустячка, который меня заботит. Название этой темы весьма мне подходит.
Вопрос. Есть ли тут хакеры или типа того... Нужно открыть страницу в Одноклассниках. Страница моя, но уже давно не могу на неё зайти. Не с моего ящика она создана, поэтому через него не могу восстановить пароль. Проблема в том, что я уверена, что помню его, а страница не воспринимает. И вообще, блин! Болтается бесхозная страница с фотками, детским в том числе. Как то не по себе. Если есть умельцы - помогите. Просто удалить её.

Алексей

A-lex24 января 2012 23:55

только администрации писать

Ренегат

o.k.25 января 2012 3:54

Бесполезняк. Уже год пишу. Один раз ответили что то типа автоответчика с рекомендациями, которые итак на сайте есть. (((

НЛО борт №

НЛО борт №25 января 2012 4:20

o.k., да забей просто) Моя тож так температурила

Ренегат

o.k.25 января 2012 4:22

уговорили Smile

Atermitter

Amter25 января 2012 5:34

стандартная мзда гдето 6к, вам на хакзон

Ренегат

o.k.25 января 2012 8:25

Поздно! Я уже забила!!! Big smile

Алексей

A-lex19 марта 2012 10:43

Подскажите по ПХП, отчего может начаться дублирование данных в БД?
раньше работало как часы,
программа отправляет запрос, скрипт на хостинге читает полученные данные и на основе их либо обновляет запись, если такой клиент существует (ищет по столбцу с данными varchar), то обновляет ему данные, либо добавляет его.
Так вот в последние пару месяцев добавляется по 5-10 одинаковых записей подряд при новое регистрации.
в какую сторону копать?

#kid

#kid19 марта 2012 10:46

уникальный индекс добавь по полю.

Алексей

A-lex25 марта 2012 23:58

добрался
почистил бд от дубликатов (ручками)
поставил уникальный индекс
посмотрим как это скажется на регистрации))))))))))

Алексей

A-lex11 апреля 2012 0:23

Можно ли имея только домен, сделать переадресецию на другой домен+хостинг?
вобщем суть на конкретном примере, есть домен tech-con.ru (не привязан к хостингу)  надо что бы по переходе на этот адрес, пользователя автоматически перекидывало на tech-con.kz
я так понимаю, если я сейчас просто привяжу первый домен к хостингу, то адреса у страниц будут разные. Потому и надо, что бы переадресовывало.
Возникла идея, выделить место под домен на хостиге, привязать первый домен к выделенному месту и положить туда скрипт переадресации.
Может есть более элегантный способ?
забыл сказать, домен .ru пришлось регать у хостер.кз
а второй домен + хостинг на днр
так вот у хостера даже не могу найти настройки что бы айпишники хостинга прописать %)
по хуис .ру домена меня не показывает, это потому что они должны ручками завтра теперь его на меня оформить или что-то не то с хостер.кз?

A-lex
2012-04-11 00:28:36
Atermitter

Amter11 апреля 2012 0:27

Привяжи его на основном хосте, делов то.
В Си-панель делается за пару минут. Ждать обновления правда иногда приходится. А иногда и нет. Если нет сипанели, проси саппорт. Без базару сделают.

Алексей

A-lex11 апреля 2012 0:31

у днр где хостинг как раз Cpanel
куда копать, в Дополнительные домены (добавить) или в перенаправления?

Atermitter

Amter11 апреля 2012 0:52

Да напиши ты этому сраному александру, пусть добавит.

Алексей

A-lex11 апреля 2012 0:55

я в настройках домена днр вижу, что там можно даже просто переадресацию для домена включить. У хостера такого нет :( и еще нет настроек управления ДНС зоной, только смена днс серверов %)
так и должно быть, у пользователя нет никаких прав? и надо напрямую хостеру.кз писать?

Алексей

A-lex13 апреля 2012 11:08

может есть желающие помочь? проблема та же, прошло два дня, результата нет. Сам бы допер, если бы не суточное обновление ДНС, а так путем тыка я буду несколько месяцев пробовать %)
я сделал так, у домена tech-con.ru выставил ДНС ns7.skilltex.kz и ns8.skilltex.kz (до этого ставил первый и второй, как на основном домене tech-con.kz, но потом навсякий случай отписался в тех поддержку, сказали поставить седьмой и восьмой)
Потом сделал парковку домена tech-con.ru к хостингу куда привязан tech-con.kz и там же, в СиПанели поставил переадресацию (301-ю) с домена tech-con.ru на tech-con.kz
В теории, я так понимаю, у них должна будет появится запись и домен должен будет заработать, но уже двое суток опять стоит и тупит, или я туплю %)

#kid

#kid13 апреля 2012 11:27

[code]
root@userver:~# tracepath tech-con.kz
1: 10.180.1.100 (10.180.1.100)                            1.048ms pmtu 1500
1: 10.180.1.1 (10.180.1.1)                                3.701ms
1: 10.180.1.1 (10.180.1.1)                                4.820ms
2: 10.180.1.1 (10.180.1.1)                                1.870ms pmtu 1492
2: 95.58.144.8 (95.58.144.8)                             99.668ms asymm 3
3: 88.204.202.83 (88.204.202.83)                         37.010ms
4: 88.204.202.85 (88.204.202.85)                         62.882ms asymm 5
5: pavl-core-l2-1-2.online.kz (95.59.170.78)            162.100ms asymm 12
6: pavl-bbr-1.online.kz (92.47.150.230)                 253.215ms asymm 11
7: kara-core-l2-1-2.online.kz (92.47.145.217)           148.294ms asymm 9
8: kara-mx-1.online.kz (95.59.170.93)                    56.911ms asymm 9
9: 89.218.116.174 (89.218.116.174)                      98.090ms
10: 92.47.163.164.static.telecom.kz (92.47.163.164)      106.323ms
11: cp07.skilltex.kz (92.47.163.165)                     138.403ms reached
     Resume: pmtu 1492 hops 11 back 55
root@userver:~# tracepath tech-con.ru
gethostbyname2: Host name lookup failure
[/code]

а .ru ты из днс выкинул, что ли?

Кстати, по слухам у КТ есть некоторые проблемы с маршрутизацией между городами сейчас. It may matter.

Алексей

A-lex13 апреля 2012 12:45

всмысле .ру выкинул?
если я правильно понимаю, после парковки домена на хостинге, днс меняется и вносятся изменение привязка к хостингу, после того как ДНС обновятся, то по входу по ссылке tech-con.ru откроется мой сайт, с адресом tech-con.ru
соответсвенно я еще поставил в настройках СиПанели переадресацию 301 на домен.кз
но пока .ру вообще молчит

Алексей

A-lex13 апреля 2012 12:51

95d874a210d1c7cd0edd73ca94344522.jpg

Atermitter

Amter13 апреля 2012 13:16

паркуй же

Алексей

A-lex13 апреля 2012 13:27

ну, это и есть окно настройки парковки
только пока я перенаправление не ставил, было только домен и корневой каталог заполнены поля.
Или перенаправленние нафиг вообще убрать?

Алексей

A-lex19 апреля 2012 11:27

кто нибудь может подсказать про синтаксис .htaccess на переадресацию?
домен заработал, на хостинг я его припарковал
в .htaccess прописал

RewriteCond %{HTTP_HOST} ^tech\-con\.ru$ [OR]
RewriteCond %{HTTP_HOST} ^www\.tech\-con\.ru$
RewriteRule ^/?$ "http\:\/\/www\.tech\-con\.kz\/" [R=301,L]

далее надо разобраться какие параметры указать выше было бы корректнее, ибо с tech-con.ru или www.tech-con.ru на www.tech-con.kz переадресовывает всегда, а вот линк вида tech-con.ru/uvedomleniya/raschet-nalogov-ip-za-2012.html остаеться в домене .ru

A-lex
2012-04-19 11:29:04
#kid

#kid19 апреля 2012 11:43

A-lex

кто нибудь может подсказать про синтаксис .htaccess на переадресацию?домен заработал, на хостинг я его припарковалв .htaccess прописал
RewriteCond %{HTTP_HOST} ^tech\-con\.ru$ [OR]RewriteCond %{HTTP_HOST} ^www\.tech\-con\.ru$RewriteRule ^/?$ "http\:\/\/www\.tech\-con\.kz\/" [R=301,L]
далее надо разобраться какие параметры указать выше было бы корректнее, ибо с tech-con.ru или www.tech-con.ru на www.tech-con.kz переадресовывает всегда, а вот линк вида tech-con.ru/uvedomleniya/raschet-nalogov-ip-za-2012.html остаеться в домене .ru



Во второй строчке $ в конце убери.

Алексей

A-lex19 апреля 2012 11:48

нипомогло
нашел! Smile


RewriteCond %{HTTP_HOST} ^tech\-con\.ru$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.tech\-con\.ru$ [NC]
RewriteRule ^(.*)$ http\:\/\/www\.tech\-con\.kz\/$1 [R=301,L]

A-lex
2012-04-19 11:58:52
Алексей

A-lex20 апреля 2012 22:19

пока писал вопрос, думал нашел решение, ан нет :) Думал дело в гриде, оказывается дело в DataSet'е
кто нибудь работал  с FibPlus или IBX?
проблема в следующем, поставил на созранение изменений в DataSet такой код:


with dm.fibDataSet_sdelki do
    begin
      if State in [dsEdit,dsInsert] then
        begin
          ApplyUpdates;
          UpdateTransaction.Commit;
          Refresh;
          ShowMessage('Изминения сохранены!');
        end else
          ShowMessage('Нет активных изменений');
    end;

для того, что бы потом немного модифицировать код, и спрашивать действительно ли пользователь хочет сохранить изменения, а то вдруг он случайно понажимал что небудь не то.
В данном DataSet, я использую  FibPlus есть параметр типа integer, котоый он воспринимает как булеву переменную, 0 - False, 1 - True. Воспринимает коректно, и сохраняет корректно, но, не выставляет DataSet'у параметр dsEdit
что соответсвено не дает сохранить данные, говорит что они не изменялись.
Сначала думал у меня Grid тупит, где в одном из полей чекбокс, но даже после того как я в коде меняю переменную (пробовал и asInteger скармливать и asBoolean, все равно, говорит что изменений небыло) Cry
еще деврейсу написал, ибо чухаю проблема в dataset, но вдруг это я опять туплю?