Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.02;
Скачать: CL | DM;

Вниз

В чем ошибка?   Найти похожие ветки 

 
Andrewtitoff ©   (2008-01-29 09:45) [0]

Здравствуйте, у меня в ниже приведенной процедуре, вызываемой по таймеру раз в сутки, возникает ошибка I/O Error 32, при чем возникает не сразу а со временем.., и как только один раз возникнет - то при каждом вызове возникает... =(((

procedure AssignNewSk;
var
fN1 : file of myString;
fN2 : file of myString;
fN3 : file of myString;
s : myString;
sd : string;
ns : string;
 c : integer;
begin
If FileExists(MD+"\z.lft") then
begin
AssignFile(fN1,MD+"\z.lft");
reset(fN1);
read(fN1,s);
closeFile(fN1);
sd:=s.STREET;
if FileExists(MD+"\Z\"+copy(s.STREET,1,10)+".lft") then DeleteFile(MD+"\Z\"+copy(s.STREET,1,10)+".lft");
Rename(fN1,MD+"\Z\"+copy(s.STREET,1,10)+".lft");
AssignFile(fN3,MD+"\Z\"+copy(s.STREET,1,10)+".lft");
reset(fN3);
AssignFile(fN2,MD+"\z.lft");
rewrite(fN2);
read(fN3,s);
s.Prichina:=copy(DateTimeToStr(time),1,8);
s.STREET:=copy(DateTimeToStr(date),1,10);
write(fN2,s);
c:=1;
while not eof(fN1) do
 begin
 read(fN3,s);
 if (s.VPuska="")and(s.Remont<>"Простой") then
  begin
  str(c,ns);
  s.Npp:=ns;
  if c<10 then s.Npp:="00"+ns;
  if (c>9)and(c<100) then s.Npp:="0"+ns;
  c:=c+1;
  s.Remont:=sd;
  write(fN2,s);
  end;
 end;
closeFile(fN2);
closeFile(fN3);
if formShow_.Visible then
 begin
 FormShow_.Hide;
 FormShow_.Show;
 end;
Application.MessageBox("Начата новая суточная карта","Новые сутки",MB_OK + MB_ICONEXCLAMATION);
end else Application.MessageBox("Cуточная карта не начата т.к. еще не заведено ни одной карты...","Новые сутки",MB_OK + MB_ICONEXCLAMATION);
end;


 
Игорь Шевченко ©   (2008-01-29 09:55) [1]

Больно слышать


 
Andrewtitoff ©   (2008-01-29 10:02) [2]

2 Игорь Шевченко
Ты не глумись - а лучше подскажи как лучше сделать, очень надо, а то создается впечатление что ты и сам неуверен как это правильно сделать и хочешь показаться умным оскорбляя других....


 
korstin ©   (2008-01-29 10:09) [3]

значит надо понять что значит I/O Error 32 и почему она может появиться )


 
Virgo_Style ©   (2008-01-29 10:10) [4]

Andrewtitoff ©   (29.01.08 10:02) [2]
как лучше сделать


Например, проверять результат выполнения, вести лог, погуглить "I/O Error 32"...

Надеюсь, подсказывая элементарные вещи, я не очень тебя оскорбил?


 
Andrewtitoff ©   (2008-01-29 10:24) [5]

2 korstin & Virgo_Style
Да погуглил еще вчера, я так понял что 32  ошибка - это значит закрыт доступ к файлу, но я немогу понять в чем дело, эта процедура вызывается по теймеру 1 раз в сутки с ним работает и другая процедура но в другое время(я уже 10 раз проверил, файл везде закрываю...), так что конфликтовать недолжны, единственное мое предноложение что проблема в таймере и он может иногда срабатывать дважды, но почему?, интервал стоит 1000 т.е. 1 секунда... и в таймере стоит if time = 00:01:00 then это процедура...
P.S.
1)Посоветуйте чего нить дельное желательно с примером
2) Я с дельфями знаком недавно, раньшен когда то писал на паскале, по этому плохо знаком с новыми функциями работы с файлами может это можно как нибудь по другому реализовать?...
3)Моя задача:
Моя программ создает файл(моего типа тип состоит из нескольких string[x] разного размера), так вот, эта сама прцедура раз в сутки должна копировать его в папку Z с переименованием(имя - дата создания файла, она записывается и в сам файл при создании), посли чего она его обрабатывает выкидывая некоторые записи, присваивает оставшимся порядковые номера и возвращает на место уже с вписаной новой датой создания....


 
korstin ©   (2008-01-29 10:31) [6]

TStringList.LoadToFile()
TStringList.SaveToFile()


 
korstin ©   (2008-01-29 10:31) [7]

+ конечно же лог


 
KilkennyCat ©   (2008-01-29 10:32) [8]

fN1 - cмотрим внимательней.


 
Virgo_Style ©   (2008-01-29 10:33) [9]

Если файлы небольшие, можно воспользоваться StringList"ами... Для начала можно вообще бросить три TMemo на форму. Загружать-сохранять с помощью .Lines.LoadFromFile/SaveToFile... Как отладишься - можно будет их заменить на StringList"ы.

А если не секрет, вот это

>if formShow_.Visible then
> begin
> FormShow_.Hide;
> FormShow_.Show;
>  end;

что такое? %-)


 
Andrewtitoff ©   (2008-01-29 10:37) [10]

2 korstin
А при чем тут TStringList?, я его не использую, мне это неподходит,
Тип у меня описан как:
 type
    myString = record
         Npp : string[3];
   Zayavitel : string[12];
    Prichina : string[44];
       VPost : string[8];
     VViezda : string[8];
      VPuska : string[8];
     Prostoy : string[5];
      Remont : string[65];
REGNUM : string[50];
STREET : string[50];
 HOUSE : string[50];
  CORP : string[50];
PARNUM : string[50];
REGION : string[50];
 PLACE : string[50];
BRIGADE : string[50];
HOLDER : string[50];
BELONG : string[50];
          end;
и поменять я это уже немогу, т.к. файлы моего типа используют и другие программы...
Вводимые пользователем данные отображаются в таблице.., так что я непонимаю как тут применить StringList
...  =(((


 
korstin ©   (2008-01-29 10:37) [11]


> KilkennyCat ©   (29.01.08 10:32) [8]
> fN1 - cмотрим внимательней.


Похвально


 
Andrewtitoff ©   (2008-01-29 10:40) [12]

2 Virgo_Style
Это я так обновляю форму на которой находится таблица а данными, которые меняет процедура, там в ONShow прописано обновление таблицы... =)))


 
Andrewtitoff ©   (2008-01-29 10:44) [13]

2 KilkennyCat
Тут что ли?
Rename(fN1,MD+"\Z\"+copy(s.STREET,1,10)+".lft");
если я не закрываю перед этим, то он другую ошибку выдает...


 
Andrewtitoff ©   (2008-01-29 10:48) [14]

2 KilkennyCat
Ааа.., в цикле, спасибо, но дело не в этом, ошибка была и до тока как я добавил третью переменную(для надежности)..., до этого я использовал тока две, закрывал файл, а потом с этой переменной асоциировал другой файл...


 
Andrewtitoff ©   (2008-01-29 10:50) [15]

2 KilkennyCat
while not eof(fN3) do
исправил, но это не решило проблемы... =(((


 
Игорь Шевченко ©   (2008-01-29 10:50) [16]

Значит ошибка в DNA


 
Плохиш ©   (2008-01-29 10:58) [17]


> Andrewtitoff ©   (29.01.08 10:24) [5]
> 2 korstin & Virgo_Style
> Да погуглил еще вчера, я так понял что 32  ошибка - это
> значит закрыт доступ к файлу

Вообще-то ошибка совместного доступа к файлу.

> Andrewtitoff ©   (29.01.08 09:45)  
> Здравствуйте, у меня в ниже приведенной процедуре, вызываемой
> по таймеру раз в сутки, возникает ошибка I/O Error 32, при
> чем возникает не сразу а со временем.., и как только один
> раз возникнет - то при каждом вызове возникает

Всё правильно, т.к. в коде ты её нигде не сбрасываешь, иди читай про IOResult, можно даже в справке по паскалю...


 
Andrewtitoff ©   (2008-01-29 11:01) [18]

2 Плохиш & All
ПОВТОРЯЮ НЕ ПРИ КАЖДОМ!!!...
При чем повторяю ошибка возникает не всегда, т.е. процедура вызвается 1 раз в сутки, я при тестировании ввожу некоторые данные, после чего перевожу часы на нужное время, затем опять ввожу и т.д..., так вот ошибка возникает раз так на 15- тый - 30 -тый, после чего сколько бы я время не переводил она выскакивает пока я не перезапущу программу... =((((


 
Andrewtitoff ©   (2008-01-29 11:02) [19]

2 Игорь Шевченко
Где?, можно поподробнее? =)))


 
Andrewtitoff ©   (2008-01-29 11:03) [20]

2 Плохиш ©
А как сбросить, и главное меня волнуе почему она вообще возникает...


 
Плохиш ©   (2008-01-29 11:08) [21]


> Andrewtitoff ©   (29.01.08 11:03) [20]

Я так понимаю, что читать про IOResult - не царское дело. Тогда возникает вопрос, нафига царю программировать, у него же голда не меряно, может и программиста нанять...


 
Andrewtitoff ©   (2008-01-29 11:10) [22]

2 Плохиш
Я немогу понять почему она возникает, этот файл используют две процедуры, вызываемые по таймеру в разное время: данная процедра в 00:01:00, и еще одна в 00:15:00,00:30:00,00:45:00,00:00:00...


 
Andrewtitoff ©   (2008-01-29 11:12) [23]

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


 
Плохиш ©   (2008-01-29 11:23) [24]


> Andrewtitoff ©   (29.01.08 11:10) [22]


> в 00:01:00


> и еще одна в 00:15:00,00:30:00,00:45:00,00:00:00

Дальше объяснять надо?


 
Andrewtitoff ©   (2008-01-29 11:26) [25]

2 Плохиш
Почитал я в инете по OIResult
но там описаны тока эти номера ошибок и ничего интересного что могло бы мне помоч в решении проблемы я ненашел, я конечно буду рыть еще в данном направлении, но было бы проще если бы вы мне подсказали...  =)))
Код ошибки Описание
100 Чтение за границами файла
101 Диск переполнен
102 Не была вызвана процедура AssignFile
103 Файл закрыт
104 Файл не открыт для ввода
105 Файл не открыт для вывода
106 Неверный формат данных для процедуры Read


 
Andrewtitoff ©   (2008-01-29 11:30) [26]

2 Плохиш ©
Да, надо!, размер файла кб~10-15максимум, порядка 50-ти записей моего типа, и обрабатывается все это дело в считанные секунды(в конце выдается мессадж), а тут целая минута разницы..., хотя конечно время вызова этой процедуры не так принципиально, можно и подвинуть.., а какой тогда промежуток сделать что бы они точно друг - другу не мешали?...


 
Плохиш ©   (2008-01-29 11:35) [27]


IOResult Routine

Returns the status of the last I/O operation performed.

Unit
System

Syntax

[Delphi] function IOResult(): Integer;

Description
IOResult returns the result of the last Delphi I/O routine when I/O-checking is off (that is, when using the {$I-} compiler option). If IOResult returns 0, the last I/O operation succeeded. Otherwise, IOResult returns an error code.

If an I/O error occurs and I/O-checking is off, all subsequent I/O operations are ignored until the internal error flag is cleared. Calling IOResult clears the internal error flag.

An alternative way to handle I/O errors is to use exception handling with the {$I+} compiler option.


 
Andrewtitoff ©   (2008-01-29 11:59) [28]

2 Плохиш ©

Процедура выполняется меньше секунды, что одна, что другая, так что я думаю дело не в этом....

А по руски можно в бвух словах, а то у меня с английским не очень, боюсь ошибиться в переводе... =)))
как я понял что "Если  IOError встречается и проверка отключена - то все результаты I/O операций игнорируются пока флаг очищен. Вызывается очищение IOResult в флаге"? где то так...  =)))


 
Сергей М. ©   (2008-01-29 12:07) [29]


> Процедура выполняется меньше секунды


Неужели юзер успевает за пол-секунды жмакнуть кнопку ОК диалоге "Новые сутки" ?)


>  FormShow_.Hide;
>  FormShow_.Show;


А это что за приседания ?


 
Virgo_Style ©   (2008-01-29 12:31) [30]

Сергей М. ©   (29.01.08 12:07) [29]
А это что за приседания ?


А это вместо OnShow вызывать... я уже спрашивал чуть выше.


 
Сергей М. ©   (2008-01-29 12:35) [31]


> Virgo_Style ©   (29.01.08 12:31) [30]


Угу, вижу)

Впендюрить обновление таблицы в обработчик OnShow - мудрейшее решение !


 
Andrewtitoff ©   (2008-01-29 13:16) [32]

2 Сергей М.

Нет, смоти текст программы в самом конце, мессадж выводится в конце процедуры, когда уже все файлы закрыты..., я имелл ввиду выполнение процедуры без нажатия "OK", какая разница когда юзер на нажмет кнопку?, пороцедура вызывается 1 раз в сутки... если я неправ в чем то поправь...

Там все и происходит в ONShow, это другая форма(не главная), а эта процедура в главной форме и вызывается по таймеру..., у меня в программе их несколько(ФОРМ)....


 
Virgo_Style ©   (2008-01-29 13:17) [33]

Сергей М. ©   (29.01.08 12:35) [31]

Обновление в OnShow, инициализация в OnActivate, изменение положения и размеров компонентов "вручную" в OnResize... Надо было во вредные советы добавить)


 
ANB ©   (2008-01-29 13:19) [34]


> Andrewtitoff ©   (29.01.08 09:45)

1. Выкинуть программу
2. Написать ее заново, используя родные ОСовские способы работы с файлами (на хэндлах или стримы) при этом чтение производить с флагом мультидоступа.

Судя по объему кода работы часа на 2. Ты уже больше времени на трепню в форуме потратил.


 
Andrewtitoff ©   (2008-01-29 13:29) [35]

2 Virgo_Style ©
Да ладно те стебаться, я же в ONShow формы обновляю содержимое таблицы, что в этом плохого?, что вы прицепились к этому, там же все замечательно работает, лучше подскажите как решить проблему с 32-ой ошибкой...

2 ANB ©
Ты неправ, я же говорил что формат файла поменять немогу, и как ты интересно определил обьем кода из приведенной мною одной процедуры?.., к твоему сведению у меня 15 юнитов в программе..., просто все остальное работает...


 
Сергей М. ©   (2008-01-29 13:31) [36]


> файлы моего типа используют и другие программы


Я так понимаю, чужие программы, т.е. не твоей разработки ?

Интересно, откуда эти программы знают размер структуры, описанной твоим типом MyString ?

Ты и сам-то этот размер не знаешь, что уж про других говорить)


 
Virgo_Style ©   (2008-01-29 13:35) [37]

Andrewtitoff ©   (29.01.08 13:29) [35]
Да ладно те стебаться


Да эт я так... больше над собой в молодости :o), чем над тобой))))

А ANB, между тем, прав... Формат файла менять он и не предлагает.


 
Andrewtitoff ©   (2008-01-29 13:36) [38]

2 Сергей М.
Нет, моей!, просто они уже отлажены и замечательно работают и у меня никакого желания нету переделывать ВСЕ из-за совета ANB, который считает что приведенная мною процедура - и есть моя программа...
Почему я незнаю размер, я же выше приводил описание типа  myString , см [10]....


 
Сергей М. ©   (2008-01-29 13:38) [39]


> Почему я незнаю размер


Ну так скажи, чему он равен, если знаешь !


 
Andrewtitoff ©   (2008-01-29 13:40) [40]

2 Virgo_Style
Тогда я непонимаю немного... =(((
Если неменяя формат файла - то в принципе можно, тока как это сделать без геммороя, я же в этой процедуре после перемещения файла читаю и анализирую содержимое файла...
while not eof(fN1) do
begin
read(fN3,s);
if (s.VPuska="")and(s.Remont<>"Простой") then
 begin
 str(c,ns);
 s.Npp:=ns;
 if c<10 then s.Npp:="00"+ns;
 if (c>9)and(c<100) then s.Npp:="0"+ns;
 c:=c+1;
 s.Remont:=sd;
 write(fN2,s);
 end;
end;

как быть с этим?


 
Andrewtitoff ©   (2008-01-29 13:52) [41]

2 Сергей М.
ShowMessage(inttostr(SizeOF(myString))) = 671...
хотя странно как то должен быть 653...
а, все верно, значит 671, там же еще служебные символы...


 
Anatoly Podgoretsky ©   (2008-01-29 13:53) [42]

> Andrewtitoff  (29.01.2008 09:45:00)  [0]

Полное пренебрежение обработкой исключительных ситуаций.


 
Anatoly Podgoretsky ©   (2008-01-29 13:54) [43]

> Andrewtitoff  (29.01.2008 10:24:05)  [5]

> Да погуглил еще вчера, я так понял что 32  ошибка - это значит закрыт доступ к файлу

Странный у тебя Гугл.


 
Andrewtitoff ©   (2008-01-29 13:59) [44]

2 Сергей М.
18 записей - 18 служебных символов в конце каждой записи...


 
Сергей М. ©   (2008-01-29 14:02) [45]


> там же еще служебные символы


Я не про них, а про packed record


 
Andrewtitoff ©   (2008-01-29 14:02) [46]

2 Anatoly Podgoretsky
Ну я как то не думал еще про них, вроде как файл всего две процедуры и в разное время используют...


 
Andrewtitoff ©   (2008-01-29 14:06) [47]

2 Сергей М.
В смысле?, чего то я опять недопонимаю...
type
   myString = record
        Npp : string[3];
  Zayavitel : string[12];
   Prichina : string[44];
      VPost : string[8];
    VViezda : string[8];
     VPuska : string[8];
    Prostoy : string[5];
     Remont : string[65];
REGNUM : string[50];
STREET : string[50];
HOUSE : string[50];
 CORP : string[50];
PARNUM : string[50];
REGION : string[50];
PLACE : string[50];
BRIGADE : string[50];
HOLDER : string[50];
BELONG : string[50];
         end;

один символ - один байт, 653 +18- служебный символ в конце каждой записи... итого 671 байт...


 
Andrewtitoff ©   (2008-01-29 14:15) [48]

я не паковал, а что это так важно?, чем просто record так плохо?, не такой уж и большой размер то..., правда я тока сейчас нагуглил про packed record, в паскале помоемк такого небыло, вотя и не знал...


 
Alien1769 ©   (2008-01-29 14:19) [49]


> в паскале помоемк такого небыло

ошибаешся


 
DiamondShark ©   (2008-01-29 14:20) [50]


> Andrewtitoff ©   (29.01.08 14:02) [46]
> вроде как файл всего две процедуры и в разное время используют...

Это тебе так кажется.
А в этом отношении операционной системе доверия больше, чем тебе, и ОС вовсе недвусмысленно сообщает, когда происходит попытка одновременного доступа.
Если ты не веришь своим глазам, то можешь и дальше продолжать толочь воду в ступе.


 
Slym ©   (2008-01-29 14:21) [51]

забористая трава...
1. [42] Полное пренебрежение обработкой исключительных ситуаций. +MaxInt
2. Если уж занялся написанием СУБД, делай это нормально: объек напиши реализующий логику/операции в таблице...


 
Slym ©   (2008-01-29 14:27) [52]

Танцы с бубном типа:
 str(c,ns);
 s.Npp:=ns;
 if c<10 then s.Npp:="00"+ns;
 if (c>9)and(c<100) then s.Npp:="0"+ns;

заменяем на
s.Npp:=Format("%.3d",[c]);

и без защиты от исключительных ситуаций работать будет по ситуации


 
Andrewtitoff ©   (2008-01-29 14:32) [53]

2 Alien1769
Не спорю, но я незнал, всегда писал просто record...

2 DiamondShark
Я понимаю, но где тогда еще используется, я уже приводил время когда какая процедура вызывается...
И свое предположение что иногда чюдестным образом таймер  с интервалом 1000мс срабатывает чаще чем 1 раз в секунду, тома меня все проигонорировали и ничего по этому поводу не сказали..., в этом случае действительно процедура будет вызвана дважды за 1 сек и фай млжет быть занят ею самой...

2 Slym
Да это СУБД то сложно назвать... =)))
А что такое +MaxInt
А таблица то при чем тут?, оно может и криво написано, но все отлично работает без багов по части вывода таблицы, тем более поля таблицы у меня нельзя редактировать, она только для отображения....


 
Slym ©   (2008-01-29 14:32) [54]

в глазах не ребит?
строка (MD+"\Z\"+copy(s.STREET,1,10)+".lft") вычисляется от 3 до 4 раз (а это 3 конкатенации + 1 копирование строк)


 
Slym ©   (2008-01-29 14:35) [55]

Andrewtitoff ©   (29.01.08 14:32) [53]
А что такое +MaxInt

в форумах пишут +1 (+ 1 голос) если согласны с автором поста
я же написал +MaxInt (+ 2147483647 голосов) т.е. дофига согласен с автором поста :)


 
Andrewtitoff ©   (2008-01-29 14:37) [56]

2 Slym
Согласен, спасибо, хотя работает же нормально..., я за дельфи то сел можно сказать пол года назад,  раньше когда то на паскале писал, потом большущий перерыв..., так что не обращайте внимания на глупости, а лучше поправьте!


 
Anatoly Podgoretsky ©   (2008-01-29 14:39) [57]

> Andrewtitoff  (29.01.2008 14:37:56)  [56]

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


 
Andrewtitoff ©   (2008-01-29 14:41) [58]

2 Slym ©
>в глазах не ребит?
Ну в принципе конечно не очень выглядит конечно, а что тут уж очень плохого то?, разве лучше кучу переменных что бы прога и так не  самая маленькая побольше еще стала? =)))


 
DiamondShark ©   (2008-01-29 14:54) [59]


> Andrewtitoff ©   (29.01.08 14:41) [58]
> 2 Slym ©
> >в глазах не ребит?
> Ну в принципе конечно не очень выглядит конечно, а что тут
> уж очень плохого то?,

Т.е. ты не понимаешь, как работают строковые операции? Т.е. ты не понимаешь, что подобное выражение приводит к частому перераспределению памяти кучи мелкими кусочками?


 
ANB ©   (2008-01-29 14:55) [60]


> и у меня никакого желания нету переделывать ВСЕ

Переделай ВСЕ, но только касающееся работы с файлами.
Причем структура файла никак не изменится.
А со стандартными паскалевскими функциями будешь постоянно выгребать проблемы.


 
Andrewtitoff ©   (2008-01-29 14:56) [61]

2 Anatoly Podgoretsky
Еще нет, подскажите как лучше это сделать?, а как трассировку то сделать?, я уже минут 15 [F7] держу он все еще по GEMMEM.INC прыгает...


 
Сергей М. ©   (2008-01-29 15:00) [62]


> как трассировку то сделать?, я уже минут 15 [F7] держу он
> все еще по GEMMEM.INC прыгает


Подержи еще недельку-другую - авось выйдешь из леса)

Книжки-то умные на эту тему когда почитать сподобишься ?


 
Andrewtitoff ©   (2008-01-29 15:00) [63]

2 ANB
Ну так подскажи как реализовать то что я написал в [40]?....

2 DiamondShark
Ну там же всего 3 раза повторяется copy(s.STREET,1,10), а остальной путь все равно меняется...


 
DiamondShark ©   (2008-01-29 15:01) [64]


> Andrewtitoff ©   (29.01.08 14:32) [53]
> 2 DiamondShark
> Я понимаю, но где тогда еще используется, я уже приводил
> время когда какая процедура вызывается...
> ..

Если ты предпочитаешь продолжать гадать на кофейной гуще, вместо следования рекомендациям, которых дали уже достаточно, что ж... хозяин -- барин.


> И свое предположение что иногда чюдестным образом таймер
>  с интервалом 1000мс срабатывает чаще чем 1 раз в секунду,
>  тома меня все проигонорировали и ничего по этому поводу
> не сказали..., в этом случае действительно процедура будет
> вызвана дважды за 1 сек и фай млжет быть занят ею самой.

Т.е. ты не понимаешь ещё и как таймер работает?
Правильно проигнорировали. Если у тебя программа однопоточная, то ничто на свете не заставит твои процедуры занять файл одновременно, ни таймер, ни лысый чорт.
Кстати, текста второй процедуры мы в глаза не видели. Может она там забывает файл закрыть...


 
Andrewtitoff ©   (2008-01-29 15:05) [65]

2 Сергей М
> Книжки-то умные на эту тему когда почитать сподобишься ?
честно говоря я в жизни не одной книжки по программированию не прочитал..., когда на паскале програмисся - было с кем поговорить, я считаю что всегда лучше спросить....

Неужели так сложно подсказать?...

В Паскале все несколько подругому было, там [F8] и все дела, а тут то это ни к чему не приведет..., он по .dproj попрыгает, а в юниты и даже неподумает  заглянуть... =(((


 
Сергей М. ©   (2008-01-29 15:06) [66]


> там [F8] и все дела


Что, и точек останова в тамошнем отладчике не существовало ?

Вот уж не ври)


 
Сергей М. ©   (2008-01-29 15:08) [67]


> я в жизни не одной книжки по программированию не прочитал


Это печально. Очень печально.


> считаю что всегда лучше спросить


Абсолютно неверно считаешь.


 
Andrewtitoff ©   (2008-01-29 15:12) [68]

2 DiamondShark
Подскажи пожалуйста про таймер!, у меня там интервал 1000 стоит - т.е. 1с, таймер у меня один в программе, процедуры обе вызываются из него одна(приведенная в самом начале)  в 00:01:00, вторая в 00:15:00,00:30:00,00:45:00,00:00:00....
Вот текст второй процедуры:

procedure checkP;
var
fP1 : file of myString;
fP2 : file of myString;
s : myString;
s1,s2 : string;
h1,h2 : integer;
m1,m2 : integer;
code:integer;
fp : longint;
begin
If FileExists(MD+"\z.lft")then
begin
if  FileExists(MD+"\p.lft") then
begin
 AssignFile(fP1,MD+"\z.lft");
 AssignFile(fP2,MD+"\p.lft");
 reset(fP1);
 reset(fP2);
  while not eof(fP2) do
  begin
  read(fP2,s);
  end;
  read(fP1,s);
  s1:=SysTime;
  if pos(":",s1)=2 then s1:="0"+s1;
 val(copy(s1,1,2),h1,code);
 val(copy(s1,4,2),m1,code);
  while not eof(fP1) do
  begin
  read(fP1,s);
   if (s.Remont<>"")and(s.Prostoy="")and(s.VPuska="")then
    begin
    s2:=s.VPost;
    val(copy(s2,1,2),h2,code);
    val(copy(s2,4,2),m2,code);
    if (h2<h1)and(s.Remont<>"Простой") then begin s.Remont:="";s.Zayavitel:=SysDate;write(fP2,s);fp:=filepos(fP1); seek(fP1,fp-1);s.Remont:="Простой"; write(fP1,s);seek(fP1,fp); end;
    if (h2=h1)and(s.Remont<>"Простой") then if m2<m1 then begin s.Remont:="";s.Zayavitel:=SysDate;write(fP2,s);fp:=filepos(fP1); seek(fP1,fp-1);s.Remont:="Простой"; write(fP1,s);seek(fP1,fp); end;
    end;
  end;
 closeFile(fP1);
 closeFile(fP2);
 h1:=CountStringFile(MD+"\p.lft");
 AssignFile(fP2,MD+"\p.lft");
 reset(fP2);
  for h2:=1 to h1 do
  begin
  seek(fP2,h2);
  read(fP2,s);
  str(h2,s1);
  s.Npp:=s1;
  if h2<10 then s.Npp:="00"+s.Npp;
  if (h2>9)and(h2<100) then s.Npp:="0"+s.Npp;
if s.VViezda<>"Hidden" then s.VViezda:="Visible";
  seek(fP2,h2);
  write(fP2,s);
  end;
 CloseFile(fP2);
end else
begin
 AssignFile(fP1,MD+"\z.lft");
 AssignFile(fP2,MD+"\p.lft");
 reset(fP1);
 rewrite(fP2);
 ClearString(s);
 s.BRIGADE:="Простой на";
 s.STREET:=SysDate;
 s.Zayavitel:="Начат в:";
 s.Prichina:=copy(DateTimeToStr(time),12,8);
 if pos(":",s.Prichina)=2 then s.Prichina:="0"+s.Prichina;
 write(fP2,s);
 read(fP1,s);
   s1:=SysTime;
  if pos(":",s1)=2 then s1:="0"+s1;
 val(copy(s1,1,2),h1,code);
 val(copy(s1,4,2),m1,code);
  while not eof(fP1) do
  begin
  read(fP1,s);
   if (s.Remont<>"")and(s.Prostoy="")and(s.VPuska="")then
    begin
    s2:=s.VPost;
    val(copy(s2,1,2),h2,code);
    val(copy(s2,4,2),m2,code);
    if (h2<h1)and(s.Remont<>"Простой") then begin s.Remont:="";s.Zayavitel:=SysDate;write(fP2,s);fp:=filepos(fP1); seek(fP1,fp-1);s.Remont:="Простой"; write(fP1,s);seek(fP1,fp); end;
    if (h2=h1)and(s.Remont<>"Простой") then if m2<m1 then begin s.Remont:="";s.Zayavitel:=SysDate;write(fP2,s);fp:=filepos(fP1); seek(fP1,fp-1);s.Remont:="Простой"; write(fP1,s);seek(fP1,fp); end;
    end;
  end;
 closeFile(fP1);
 closeFile(fP2);
 h1:=CountStringFile(MD+"\p.lft");
 AssignFile(fP2,MD+"\p.lft");
 reset(fP2);
  for h2:=1 to h1 do
  begin
  seek(fP2,h2);
  read(fP2,s);
  str(h2,s1);
  s.Npp:=s1;
  if h2<10 then s.Npp:="00"+s.Npp;
  if (h2>9)and(h2<100) then s.Npp:="0"+s.Npp;
if s.VViezda<>"Hidden" then    s.VViezda:="Visible";
  seek(fP2,h2);
  write(fP2,s);
  end;
 CloseFile(fP2);
end;
end;
if formShow_.Visible then
begin
FormShow_.Hide;
FormShow_.Show;
end;
end;

и соответственно таймер, что бы вопросов небыло...  :

procedure TFormMain.Timer1Timer(Sender: TObject);
begin
 t:=now;
 SysTime:=copy(DateTimeToStr(time),12,8);
 SysDate:=copy(DateTimeToStr(t),1,10);
 if pos(":",SysTime)=2 then SysTime:="0"+SysTime;
 FormMain.Label1.Caption:=DateTimeToStr(t);
 if ((copy(SysTime,4,2)="00")and(copy(SysTime,7,2)="00"))or((copy(SysTime,4,2)="15") and(copy(SysTime,7,2)="00"))or((copy(SysTime,4,2)="30")and(copy(SysTime,7,2)="00 "))or((copy(SysTime,4,2)="45")and(copy(SysTime,7,2)="00"))then checkP;
 if (copy(DateTimeToStr(time),12,8))=("0:01:00") then AssignNewSk;
 if form_New.Active then form_New.VPost.Caption:=copy(DateTimeToStr(time),12,8);
end;


 
Сергей М. ©   (2008-01-29 15:13) [69]


> тут то это ни к чему не приведет


Опять же не ври.

Ловишь брейкпойнт в начале трассируемого кода - и вперед ! Жми свою любимую [F8] - и никакие getmem.inc-дебри не страшны)


 
boriskb ©   (2008-01-29 15:13) [70]

> Andrewtitoff ©

Знаешь на что похоже?
Задумал я построить сарай.
Хоть и не смыслю нифига в строительстве, но "Ну не дом же - чо там строить то?" Тем более я в детстве зАмки из песка делал.
Построил.
Целых 2 месяца стоял. Я не нарадовался.
И вот по соседней дороге трактор проехал - у меня сарай и покосился. Даже не рухнул, но использовать уже толком нельзя.
Вот и пошел я за советом к строителям.
А они меня на смех: ну кто ж так строит? Это какая-никая наука. Переделывать все надо.
Я им - да некогда да и нензачем переделывать. Стоял - же? Функционировал. Вы только мне подскажите: может какой столб поглубже вкопать? Может балку потолще? Может гвозди вот здесь не на 80, а сотку надо брать....

Спрогнозируй результат такой дискуссии.
Что в конце получится?


 
Andrewtitoff ©   (2008-01-29 15:17) [71]

2 Сергей М.
>Что, и точек останова в тамошнем отладчике не существовало ?
существовали конечно, просто там вполне  мне хватало [F8].....

Это конечно все хорошо, тока почему вы мне нехотите помочь с моей конкретной проблемой?

А с трассировкой там тоже не все так просто..., я вот сейсас уже раз 40 вызвал процедуру - никакой ошибки, она возникает не так часто и в самый неподходящий момент... =(((


 
ANB ©   (2008-01-29 15:22) [72]


> Andrewtitoff ©   (29.01.08 14:56) [61]

Бряк поставь в нужном месте и нажми Ф9


 
Andrewtitoff ©   (2008-01-29 15:22) [73]

2 boriskb
Так я же говорю что я непротив переделать операции с файлами, тока я незнаю как это правильно сделать, смотри [40], а тип файла я переделать немогу, так как этот файл используется другими моими приложениями, да и программой уже люди пользуются...(а шошибка гдето 1-2 раза в неделю выскакивает....), так что все уже невозможно поменять, покрайне мере нужно сначала это исправить тогда что бы в то время когда я буду новую писать люди этой пользовались....


 
Andrewtitoff ©   (2008-01-29 15:25) [74]

2 ANB
Спасибо, тока я же говорю, что уже раз 50 вызвал процедуру - никакой ошибки..., так обычно всегда было..., а когда людям в пользование отдаешь начинается 1-2 раза в неделю..., а там половина бабушек сидят лет под 50-60, которые что такое мышка узнали пол года назад...


 
ANB ©   (2008-01-29 15:28) [75]


> Andrewtitoff ©   (29.01.08 15:17) [71]

1. Настрой программу так, чтобы она работала почаще - чтобы ловить ошибку
2. Книжки надо читать
3. Починай про болки трай эксепт и трай файналли и закрытие файлов аккуратно загони в файналли (скорее всего в этом и проблема).
4. При входе в обработчик таймера на всякий случай выключай его. А в файналли обратно включай.
Тогда может починится и без переделки.


 
Сергей М. ©   (2008-01-29 15:35) [76]


> существовали конечно, просто там вполне  мне хватало [F8].


Времена изменились. Теперь вот не хватает, так что ты теперь муха в янтаре)


> очему вы мне нехотите помочь с моей конкретной проблемой?


Кому, скажи на милось, охота в этом дерьме копаться ?)
В сто раз проще, зная ТЗ (а оно, чувтвуется, примитивное), переписать все это с нуля)


 
_xxx_   (2008-01-29 15:40) [77]

procedure TFormMain.Timer1Timer(Sender: TObject);
begin
---censored---
end;


ой ой ой..... что делается-то......... :-(


 
Игорь Шевченко ©   (2008-01-29 15:42) [78]


> Это конечно все хорошо, тока почему вы мне нехотите помочь
> с моей конкретной проблемой?


Ну не хотим.


 
Andrewtitoff ©   (2008-01-29 15:42) [79]

2 ANB
1)Так я и так сижу запустил ее и часы перевожу туда - сюда....
2) попробую, тока времени почти нет... =(((
подскажи кстати какую нить толковую книгу и где ее скачать можно
3)А в двух словах нельза рассказать для начала, а то пока я до книги дойду... =)))
4)Я уже думал над этим, так и зделаю, сразу по входе в процедуру, а по выходу включать, тока не таймер, а просто в условие еще одну переменную влеплю что бы во время выполнения процедуры она ненароком еще раз не вызвалась...


 
ANB ©   (2008-01-29 15:53) [80]


> тока не таймер, а просто в условие еще одну переменную влеплю
> что бы во время выполнения процедуры она ненароком еще раз
> не вызвалась...

По любому вызовется. Надежнее выключить таймер. Впрочем, таймер не сработает и так, если не вызывается обработка сообщений. Но лучше его рубануть, т.к. заранее все предусмотреть тяжело.

А часы переводить - отстой. Не тот объем. Заставь лучше прогу запускаться раз в 2 секунды и жди ошибку.


 
Andrewtitoff ©   (2008-01-29 15:54) [81]

2 _xxx_
А что не так?

2 Сергей М.
>Времена изменились. Теперь вот не хватает, так что ты теперь муха в янтаре)
=))) тут полностью согласен, во и пытаюсь хоть лапку высвободить... =)))

>Кому, скажи на милось, охота в этом дерьме копаться ?)
В сто раз проще, зная ТЗ (а оно, чувтвуется, примитивное), переписать все это с нуля)
В принципе может так оно и есть, тока мне не нужно просто рабочую программу в коде которой я ничего непонимаю..., я хочу ноть немного разобраться с дельфи, пока мне позволено заниматься этим в рабочее время(меня спросили можешь программу такую написать - я сказал что постараюсь, теперь обратного пути нет...) а так я получается и не работе не скучаю и толк хоть какой то есть...

А ТЗ в принципе не сложное, эта программа для лифтовой аварийной службы(ЛАС), в которой сущкствует база лифтов с адресами, рег номерами и т.д., оператор ЛАС выбирает нужний лифт, причину остановки и тд из списков а программа проверяет записи если они в течении суток не закрыты - то переносит в другой файл (простаивающие лифты), раз в сутки заводит новую суточную карту(та самая проблемная процедура...), ну и конечно же отображает эти списки суточной карты и простоя в таблице и распечатывает их, вот в принципе и ве основное что она делает...


 
ANB ©   (2008-01-29 15:57) [82]


> Andrewtitoff ©   (29.01.08 15:54) [81]

На простенькой СУБД это делается намного проще и надежнее.
А с файлами ты еще нагребешь проблем.


 
Andrewtitoff ©   (2008-01-29 15:59) [83]

2 ANB
Почему это она вызовется?
>Впрочем, таймер не сработает и так, если не вызывается обработка сообщений.
Ты про MessageBox?, если да, то все равно таймер срабатывает, я пробовал интервал менять...
>А часы переводить - отстой. Не тот объем. Заставь лучше прогу запускаться раз в 2 секунды и жди ошибку.
Да, чет я как то недодумался, действительно надо попробовать


 
Andrewtitoff ©   (2008-01-29 16:01) [84]

ANB ©
Нехочу..., да и разбираться с этим надо, мне бы с дельфи боле менее разобраться, а потом уже еще куда то лезть...


 
Сергей М. ©   (2008-01-29 16:04) [85]


> Andrewtitoff


Т.е., с учетом твоего же собственного ТЗ  ничто не мешает тебе переписать твою же программу "с нуля" ?


 
_xxx_   (2008-01-29 16:12) [86]


> 2 _xxx_А что не так?

Задумайся об использовании windows.GetSystemTime. Сэкономишь много строчек.  :)


 
Andrewtitoff ©   (2008-01-29 16:14) [87]

2 Сергей М.
Ну почти, есть только два условия, мне нужно будет поддерживать работоспособность этой программы пока я пишу новую, а это ездить в другой конец города, что занимает очень много времени и второе как я уже говорил что нельзя менять формат файла, иначе придется переписывать еще 3 уже отлаженные программы...


 
ANB ©   (2008-01-29 16:15) [88]


> Нехочу..., да и разбираться с этим надо, мне бы с дельфи
> боле менее разобраться, а потом уже еще куда то лезть...
>

Лучше день потерять, потом за 5 минут долететь.
:)
А потом придет к вам в контору нормальный программист и спросит "какой м... тут это все понакропал ?". И будет тебе стыдно.


 
Andrewtitoff ©   (2008-01-29 16:16) [89]

2 ANB ©
поставил на каждые десять секунд(когда на конце "0"), при чем получается что каждые 15 мин вызываются одновременно обе процедуры, 7 минут - полет нормальный...


 
Сергей М. ©   (2008-01-29 16:18) [90]


> Andrewtitoff ©   (29.01.08 16:14) [87]


Ну что тут сказать ? Ты сам себе вырыл глубоченную могилу)


 
Andrewtitoff ©   (2008-01-29 16:18) [91]

2 ANB ©
А что мне стыдиться, я же не программистом работаю, а Инженером ПТО в конторе монтирующей и обслуживающей лифты...  =)))


 
Style ©   (2008-01-29 16:22) [92]

Начинаю понимать курильщиков 8-)


 
Andrewtitoff ©   (2008-01-29 16:24) [93]

2 Сергей М.
Ясно... =((((
Ну зато хоть чему то научился пока писал...

2 _xxx_
пасибо, а чем оно от now отличается?, а оно дату тож возвращает или тока время?


 
ANB ©   (2008-01-29 16:36) [94]


> А что мне стыдиться, я же не программистом работаю, а Инженером
> ПТО в конторе монтирующей и обслуживающей лифты...  =)))

Ты же будешь смеятся (а мне будет стыдно), если я полезу лифт ремонтировать ? (хотя у меня есть заслуженные корочки на ремонт крановой техники и электрика 4 группы).


 
icWasya ©   (2008-01-29 16:45) [95]

to Andrewtitoff ©   (29.01.08 11:59) [28]

>А по руски можно в двух словах,
"Если  произошла ошибка ввода/вывода и проверка отключена {$I-} - то все операции ввода вывода игнорируются пока не будет очищен флаг ошибки. Вызовите IOResult для очистки флага ошибки ввода/вывода"

то есть
Var IOR:Integer;
{$I-}
AssignFile(FN1,"диск:/путь/имя.расширение");
Reset(FN1);
IOR := IOResult ;
If IOR = 32 then // файл занят, выйти из процедуры и зайти по-пожже
...


 
Andrewtitoff ©   (2008-01-29 16:49) [96]

2 All
Всем спасибо... =(((
В общем с чем пришел - с тем и ушел...
Кстити любителям трассировки и т.д.,уже  40 мину каждые 10 секунт процедура вызывается по таймеру, ошибки нет..., так что как тут отладить?....


 
Andrewtitoff ©   (2008-01-29 16:54) [97]

2 icWasya
Спасибо!, хоть кто то на пальцах мне дураку хоть что то подсказал..., а то почти все тут пальцы гнут мол выкинь свою прогу, а толком обьяснить ничего немогут или нехотят... =((((


 
Сергей М. ©   (2008-01-29 16:56) [98]


> Кстити любителям трассировки


Хамишь.


> что как тут отладить?


Займись наконец-то прямыми своими обязанностями.
Программер из тебя, как ни печально, никакой.


 
Andrewtitoff ©   (2008-01-29 16:56) [99]

2 icWasya
А IOR мне кажется лучше глобальной слелать, и везде еек использовать, я правильно мыслю?


 
Сергей М. ©   (2008-01-29 16:57) [100]


> Andrewtitoff ©   (29.01.08 16:54) [97]


Мертвому припарка


 
Сергей М. ©   (2008-01-29 16:59) [101]


> IOR мне кажется лучше глобальной слелать


Ты ее еще на Луну отправь - "глобальней" уж не будет


 
Andrewtitoff ©   (2008-01-29 16:59) [102]

Удалено модератором
Примечание: Не можно, а нужно


 
Сергей М. ©   (2008-01-29 17:04) [103]


> значит мне терпеть нужно


Тебе не "терпеть" нужно, а книжки почитать.
Нет книжек ? Гугли !
Нет Гугля ? Жми F1 !


> в мои обязанности входит работоспособность программы


Дык ведь она не работает).. Какая уж тут "работоспособность")

Тебя, беднягу, кто-то напряг со сроками сдачи продукта в штатную эксплуатацию ?


 
Andrewtitoff ©   (2008-01-29 17:12) [104]

2 Сергей М.
Уже да так как она уже сдана на обкатку, и ей пользуются, просто она 1-2 раза в неделю вывальвается с ошибкой и мне приходится ехать и перезапускать прогу, вручную переводьть время что бы создалась суточная карта на тот день, т.к. там сидят люди которые компьютер увидели пол года назад впервый раз...


 
ANB ©   (2008-01-29 17:12) [105]


> тока теперь в мои обязанности входит работоспособность программы.
> ..

Гы гы. Сам напросился.

ЗЫ. Каждый должен заниматься своим делом. А уж если решил быть программером - нужно учится им быть.
Не хочешь учится, скажи начальству, чтобы наняли программиста. Будет дешевле и лучше.


 
Alien1769 ©   (2008-01-29 17:16) [106]

Автору:
Выложи одну информацию:
1.На каких версиях ОС работают твои программы ?
2.На какой ты тестируешь ?
3.Режим работы твоих программ ?


 
Andrewtitoff ©   (2008-01-29 17:17) [107]

2 ANB
А зачем?, так и я потихоньку дельфи освою, дома все равно времени нет, а на работе - самое то!, и по поводу работы всегда можно наплести что очень занят написанием проги чтоб меня не трогали....


 
Плохиш ©   (2008-01-29 17:18) [108]


> Alien1769 ©   (29.01.08 17:16) [106]

А смысл? У него две программы пытаются один файл попользовать, а он не знает как это разрулить и думать не хочет, ждёт, что ему это тут сделают...


 
Сергей М. ©   (2008-01-29 17:18) [109]


> Уже да так как она уже сдана на обкатку


Готовься к большой охапке люлей.
Или ты хотел нахалявку выкрутиться ?


> мне приходится ехать и перезапускать прогу


Это, знаешь ли, твоя личная драма.

Если ты еще и взял на себя бездумно некие функции некоего специалиста по внедрению, то это вдвойне прискорбней)

Подводя итог, можно сказать, что сейчас ты пытаешься прикрыть свою задницу чужой грудью)


 
Плохиш ©   (2008-01-29 17:18) [110]


> так и я потихоньку дельфи освою

При прочтении сего рыдал...


 
Andrewtitoff ©   (2008-01-29 17:24) [111]

2 Alien1769
1) XP Professionan (неуверен, возможно на той на которой тестирую)
2)XP Media Center Edition версия 2002 Service Pack 2(английская с рулификатором)
3)Данная программа должна работать вообще без остановки(остановки только для сервисного обслуживания) круглые сутки
другие неважно(гдето 1 раз в месяц) они для обновления базы, конвертирования форматов и т.д..., они все работают и мы их нетрогаем...


 
Andrewtitoff ©   (2008-01-29 17:29) [112]

Плохиш ©
>А смысл? У него две программы пытаются один файл попользовать, а он не знает как это разрулить и думать не хочет, ждёт, что ему это тут сделают...

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

Смотри не захлебнись слезами...

2 Сергей М.
Ну люли - они нестрашные, а мне так лучше..., я смотрю вы тут все слишком умные собрались что бы обьяснять что то такому дураку как я...


 
Сергей М. ©   (2008-01-29 17:30) [113]


> конвертирования форматов


Опа !!

Выясняются неожиданные интимные подробности)

Оказывается, вопреки утверждению


> тип файла я переделать немогу, так как этот файл используется
> другими моими приложениями


формат контейнера таки может быть подвержен изменению !


 
Игорь Шевченко ©   (2008-01-29 17:31) [114]

Andrewtitoff ©   (29.01.08 17:29) [112]

http://ln.com.ua/~openxs/articles/smart-questions-ru.html

Читай наизусть до полного и окончательного просветления.


 
Alien1769 ©   (2008-01-29 17:31) [115]


> А смысл? У него две программы пытаются один файл попользовать,
>  а он не знает как это разрулить и думать не хочет, ждёт,
>  что ему это тут сделают...

Да, подумал что на "рабочих" машинах 98 винда с малой оперативкой и большим файлом подкачки.


 
boriskb ©   (2008-01-29 17:34) [116]

> я смотрю вы тут все слишком умные собрались что бы обьяснять
> что то такому дураку как я...


Точно-точно!! :)
Сволочи они. Пальцы все свои уже в узля завязали.
Плюнь.
Слюной.
И делай назло им.
Сам :)


 
Плохиш ©   (2008-01-29 17:35) [117]


> где у меня "две программы пытаются один файл попользовать"

I/O Error 32


 
ANB ©   (2008-01-29 17:38) [118]


> а мне так лучше..., я смотрю вы тут все слишком умные собрались
> что бы обьяснять что то такому дураку как я...

Дык это. Время программиста денег стоит.
Как пример : наш клиент (банк) присылает ошибку формата "у нас не работает". Если выясняется, что "не работает" из-за кривых ручек, то банк оплачивает потраченное мной время (иногда довольно продолжительно, причем чем хуже банк описал ошибку, тем оно больше).
У тебя так же - ты выложил КУСОК программы и код ошибки. Причем не знаешь, отчего она лезет. Тебе подробно объяснили, из-за чего она происходит. И дали полезные советы, как починить. К сожалению, из-за кривого способа решения задачи, намного проще все переписать. Не будем же мы ЗА ТЕБЯ запускать у себя твою прогу и искать ошибки ? Тем более они могут жить в неопубликованных местах.


 
Черный Шаман   (2008-01-29 17:46) [119]


> Virgo_Style ©   (29.01.08 13:17) [33]
>
> Сергей М. ©   (29.01.08 12:35) [31]
>
> Обновление в OnShow, инициализация в OnActivate, изменение
> положения и размеров компонентов "вручную" в OnResize...
>  Надо было во вредные советы добавить)


Вы хотите сказать, что хоть в одном университете на факультете информатики учат правильно писать программы? НЕТ! Там учат алгоритмизации, а уж программированию человеку приходится учится самому, или на примере старших товарищей, или на кривульках, сданных заказчику.

А ведь такие программы как в [0] оплачиваются и используются.


 
t   (2008-01-29 18:29) [120]

автору "Люди здеся усе добрые и хорошие, читай и впитывай, УЧИСЬ"


 
_xxx_   (2008-01-29 18:34) [121]


> Andrewtitoff ©   (29.01.08 16:24) [93]
2 _xxx_ пасибо, а чем оно от now отличается?, а
> оно дату тож возвращает или тока время?

и дату и время, в числовом массиве. Что избавит тебя от всех этих copy() и распарсивания строки.


 
@!!ex ©   (2008-01-29 18:49) [122]

Автор, к тому что тебе уже насоветовали(а насоветивали уже вагон), могу предложить отлавливать Exception и в excepte получать список блокирующих дескрипторов файла, сразу узнаешь, где проблема.



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

Текущий архив: 2008.03.02;
Скачать: CL | DM;

Наверх




Память: 0.84 MB
Время: 0.023 c
2-1202208254
031178
2008-02-05 13:44
2008.03.02
Код клавиши


2-1201985154
Бэтман
2008-02-02 23:45
2008.03.02
edit


15-1201366691
ZoldBerger
2008-01-26 19:58
2008.03.02
Исходники Delphi Decompiler а


2-1202376747
Dark
2008-02-07 12:32
2008.03.02
Rus>Eng


15-1201622881
Andrewtitoff
2008-01-29 19:08
2008.03.02
В чем ошибка?2